Activity log for bug #1983472

Date Who What changed Old value New value Message
2022-08-03 12:19:43 Dirk Zimoch bug added bug
2022-08-03 12:29:17 Dirk Zimoch description VxWorks even in version 6.9 does not know the printf format specifier %z. It will instead print a literal z (and shift all arguments to the next format o course). This is related to bug #1740426 but not exactly the same. Affected code in EPICS 7 (as found by grep %z): modules/pvData/src/factory/FieldCreateFactory.cpp: sprintf(buffer, "%s<%zu>", ScalarTypeFunc::name(getElementType()), size); modules/pvData/src/factory/FieldCreateFactory.cpp: sprintf(buffer, "%s[%zu]", ScalarTypeFunc::name(getElementType()), size); modules/pvData/testApp/pv/testPVData.cpp:#define SHOW(T) testDiag("sizeof(" #T ")==%zu", sizeof(T)) modules/pvData/testApp/pv/performstruct.cpp: printf("# %zu sample %f +- %f %s\n", count, mean/mult, std/mult, unit); modules/pvData/testApp/pv/performstruct.cpp: sprintf(buf, "field%zu", i); modules/pvAccess/pvtoolsSrc/pvlist.cpp: "Broadcast address #%zu: %s.", i, inetAddressToString(broadcastAddresses[i]).c_str()); modules/pvAccess/pvtoolsSrc/pvlist.cpp: LOG(logLevelDebug, "UDP Tx (%zu) -> %s", sendBuffer.getPosition(), strBuffer); modules/pvAccess/src/remote/blockingUDPTransport.cpp: LOG(logLevelDebug, "UDP Tx (%zu) %s -> %s.", modules/pvAccess/src/remote/blockingUDPTransport.cpp: LOG(logLevelDebug, "Sending %zu bytes %s -> %s.", modules/pvAccess/src/remote/blockingUDPTransport.cpp: LOG(logLevelDebug, "Sending %zu bytes %s -> %s.", modules/pvAccess/src/remote/blockingUDPTransport.cpp: "Broadcast address #%zu: %s. (%sunicast)", i, inetAddressToString(list[i]).c_str(), modules/pvAccess/src/remote/transportRegistry.cpp: LOG(logLevelDebug, "Context still has %zu transport(s) active and closing...", temp.size()); modules/pvAccess/src/remote/codec.cpp: "Transport to %s still has %zu channel(s) active and closing...", modules/pvAccess/src/remote/codec.cpp: "Transport to %s still has %zu client(s) active and closing...", modules/pvAccess/src/server/responseHandlers.cpp: LOG(logLevelError, "Monitor Logic Error: send outside of window %zu", _window_closed.size()); modules/pvAccess/src/ioc/reftrackioc.cpp: printf(" %s : %zu (delta %zd)\n", modules/pvAccess/src/ioc/reftrackioc.cpp: printf(" %s : %zu\n", it->first.c_str(), it->second.current); modules/pvAccess/testApp/remote/testmonitorfifo.cpp: testDiag("Spamming %zu", nfree); modules/pvAccess/testApp/remote/testmonitorfifo.cpp: testDiag("nfree=%zu %c", nfree, (nfree>0)?'T':'F'); modules/pvAccess/testApp/remote/testmonitorfifo.cpp: testDiag("Spamming %zu", nfree); modules/pvAccess/testApp/remote/testmonitorfifo.cpp: testDiag("Count %d nfree=%zu %c", c, nfree, (nfree>0)?'T':'F'); modules/pvAccess/testApp/remote/testChannelConnect.cpp: sprintf(buf, "test%zu", (i+1)); modules/pva2pva/pdbApp/pdbgroup.cpp: printf(" Atomic Get/Put:%s Monitor:%s Members:%zu\n", modules/pva2pva/pdbApp/pvalink_jlif.cpp: printf(" #disconn=%zu prov=%s", pval->lchan->num_disconnect, pval->lchan->providerName.c_str()); modules/pva2pva/pdbApp/pvalink.cpp: fprintf(stderr, "pvaLink leaves %zu channels open\n", modules/pva2pva/pdbApp/pvalink.cpp: printf("conn=%c %zu disconnects, %zu type changes", modules/pva2pva/pdbApp/pvalink.cpp: printf(" %zu/%zu channels connected used by %zu links\n", modules/pva2pva/testApp/testpdb.cpp: testDiag("Cnt %s = %zu (%ld)", it->first.c_str(), it->second.current, it->second.delta); modules/pva2pva/testApp/testpdb.cpp: testDiag("Cnt %s = %zu (%ld)", it->first.c_str(), it->second.current, it->second.delta); modules/libcom/test/epicsErrlogTest.c: testOk(pvt.count >= N && pvt.count<=N+2, "Logged %u messages, expected %zu", pvt.count, N+1); modules/libcom/test/yajl_test.c: fprintf(stderr, "%zu is an invalid buffer size\n", modules/libcom/test/yajl_test.c: "failed to allocate read buffer of %zu bytes, exiting.", VxWorks even in version 6.9 does not know the printf format specifier %z. It will instead print a literal z (and shift all arguments to the next format of course). This is related to bug #1740426 but not exactly the same. Affected code in EPICS 7 (as found by grep %z): modules/pvData/src/factory/FieldCreateFactory.cpp: sprintf(buffer, "%s<%zu>", ScalarTypeFunc::name(getElementType()), size); modules/pvData/src/factory/FieldCreateFactory.cpp: sprintf(buffer, "%s[%zu]", ScalarTypeFunc::name(getElementType()), size); modules/pvData/testApp/pv/testPVData.cpp:#define SHOW(T) testDiag("sizeof(" #T ")==%zu", sizeof(T)) modules/pvData/testApp/pv/performstruct.cpp: printf("# %zu sample %f +- %f %s\n", count, mean/mult, std/mult, unit); modules/pvData/testApp/pv/performstruct.cpp: sprintf(buf, "field%zu", i); modules/pvAccess/pvtoolsSrc/pvlist.cpp: "Broadcast address #%zu: %s.", i, inetAddressToString(broadcastAddresses[i]).c_str()); modules/pvAccess/pvtoolsSrc/pvlist.cpp: LOG(logLevelDebug, "UDP Tx (%zu) -> %s", sendBuffer.getPosition(), strBuffer); modules/pvAccess/src/remote/blockingUDPTransport.cpp: LOG(logLevelDebug, "UDP Tx (%zu) %s -> %s.", modules/pvAccess/src/remote/blockingUDPTransport.cpp: LOG(logLevelDebug, "Sending %zu bytes %s -> %s.", modules/pvAccess/src/remote/blockingUDPTransport.cpp: LOG(logLevelDebug, "Sending %zu bytes %s -> %s.", modules/pvAccess/src/remote/blockingUDPTransport.cpp: "Broadcast address #%zu: %s. (%sunicast)", i, inetAddressToString(list[i]).c_str(), modules/pvAccess/src/remote/transportRegistry.cpp: LOG(logLevelDebug, "Context still has %zu transport(s) active and closing...", temp.size()); modules/pvAccess/src/remote/codec.cpp: "Transport to %s still has %zu channel(s) active and closing...", modules/pvAccess/src/remote/codec.cpp: "Transport to %s still has %zu client(s) active and closing...", modules/pvAccess/src/server/responseHandlers.cpp: LOG(logLevelError, "Monitor Logic Error: send outside of window %zu", _window_closed.size()); modules/pvAccess/src/ioc/reftrackioc.cpp: printf(" %s : %zu (delta %zd)\n", modules/pvAccess/src/ioc/reftrackioc.cpp: printf(" %s : %zu\n", it->first.c_str(), it->second.current); modules/pvAccess/testApp/remote/testmonitorfifo.cpp: testDiag("Spamming %zu", nfree); modules/pvAccess/testApp/remote/testmonitorfifo.cpp: testDiag("nfree=%zu %c", nfree, (nfree>0)?'T':'F'); modules/pvAccess/testApp/remote/testmonitorfifo.cpp: testDiag("Spamming %zu", nfree); modules/pvAccess/testApp/remote/testmonitorfifo.cpp: testDiag("Count %d nfree=%zu %c", c, nfree, (nfree>0)?'T':'F'); modules/pvAccess/testApp/remote/testChannelConnect.cpp: sprintf(buf, "test%zu", (i+1)); modules/pva2pva/pdbApp/pdbgroup.cpp: printf(" Atomic Get/Put:%s Monitor:%s Members:%zu\n", modules/pva2pva/pdbApp/pvalink_jlif.cpp: printf(" #disconn=%zu prov=%s", pval->lchan->num_disconnect, pval->lchan->providerName.c_str()); modules/pva2pva/pdbApp/pvalink.cpp: fprintf(stderr, "pvaLink leaves %zu channels open\n", modules/pva2pva/pdbApp/pvalink.cpp: printf("conn=%c %zu disconnects, %zu type changes", modules/pva2pva/pdbApp/pvalink.cpp: printf(" %zu/%zu channels connected used by %zu links\n", modules/pva2pva/testApp/testpdb.cpp: testDiag("Cnt %s = %zu (%ld)", it->first.c_str(), it->second.current, it->second.delta); modules/pva2pva/testApp/testpdb.cpp: testDiag("Cnt %s = %zu (%ld)", it->first.c_str(), it->second.current, it->second.delta); modules/libcom/test/epicsErrlogTest.c: testOk(pvt.count >= N && pvt.count<=N+2, "Logged %u messages, expected %zu", pvt.count, N+1); modules/libcom/test/yajl_test.c: fprintf(stderr, "%zu is an invalid buffer size\n", modules/libcom/test/yajl_test.c: "failed to allocate read buffer of %zu bytes, exiting.",