Ungrund
2007-Oct-09 11:38 UTC
[dtrace-discuss] Too small size for signature in case of C++ code
Hi! I faced with the problem that dtrace can''t complete the generation of my own USDT if the real function signature is longer then 127 chars. I see the> #define DT_TYPE_NAMELEN 128 /* reasonable size for ctf_type_name() */in usr/src/lib/libdtrace/common/dt_parser.h. Why the dtrace uses so small constant and how can I bypass this problem? -- This message posted from opensolaris.org
Adam Leventhal
2007-Oct-09 17:58 UTC
[dtrace-discuss] Too small size for signature in case of C++ code
On Tue, Oct 09, 2007 at 04:38:26AM -0700, Ungrund wrote:> I faced with the problem that dtrace can''t complete the generation of my own USDT if the real function signature is longer then 127 chars. > I see the > > #define DT_TYPE_NAMELEN 128 /* reasonable size for ctf_type_name() */ > in usr/src/lib/libdtrace/common/dt_parser.h. > > Why the dtrace uses so small constant and how can I bypass this problem?We''ve increased this in the past but it could probably stand to be increased again. What''s the specific error you''re hitting? Adam -- Adam Leventhal, FishWorks http://blogs.sun.com/ahl
Ungrund
2007-Oct-10 07:48 UTC
[dtrace-discuss] Too small size for signature in case of C++ code
Hi, Adam! The typical problem:> uname -aSunOS *** 5.10 Generic_120012-14 i86pc i386 i86pc> cat test.dprovider testprov { probe some_event(int); };> dtrace -h -s test.d -o test.hfrom src/Engine.cpp: ... if ( TESTPROV_SOME_EVENT_ENABLED()) { TESTPROV_SOME_EVENT(23); } ...> /usr/sbin/dtrace -G -64 -s test.d Engine.o ... other objs > ... SUNWspro/bin/CC -o ... test.o ...Undefined first referenced symbol in file __1cGEngine2t5B6MrknHtbricksFtypesEUUID_n0BJcpphelperHSafePtr4nKLOMStorage___rn0BHstoragePMessageStorageT4n0D_n0BIprotocolQStra test.o __1cGEngine2t6MrknHtbricksFtypesEUUID_n0BJcpphelperHSafePtr4nKLOMStorage___rn0BHstoragePMessageStorageT4n0D_n0BIprotocolQStrate test.o ld: fatal: Symbol referencing errors. No output written to ... So, the decorated signature for class Engine costructor was truncated to 127 symbols. Thanks for your help! Ungrund -- This message posted from opensolaris.org
Adam Leventhal
2007-Oct-16 22:16 UTC
[dtrace-discuss] Too small size for signature in case of C++ code
Excellent. If you haven''t already can you please file a bug? Be sure to include a prototypical test case. Thanks. Adam On Wed, Oct 10, 2007 at 12:48:11AM -0700, Ungrund wrote:> Hi, Adam! > > The typical problem: > > > uname -a > SunOS *** 5.10 Generic_120012-14 i86pc i386 i86pc > > cat test.d > provider testprov { > probe some_event(int); > }; > > > dtrace -h -s test.d -o test.h > > from src/Engine.cpp: > ... > if ( TESTPROV_SOME_EVENT_ENABLED()) { > TESTPROV_SOME_EVENT(23); > } > ... > > > /usr/sbin/dtrace -G -64 -s test.d Engine.o ... other objs > > ... SUNWspro/bin/CC -o ... test.o ... > > Undefined first referenced > symbol in file > __1cGEngine2t5B6MrknHtbricksFtypesEUUID_n0BJcpphelperHSafePtr4nKLOMStorage___rn0BHstoragePMessageStorageT4n0D_n0BIprotocolQStra test.o > __1cGEngine2t6MrknHtbricksFtypesEUUID_n0BJcpphelperHSafePtr4nKLOMStorage___rn0BHstoragePMessageStorageT4n0D_n0BIprotocolQStrate test.o > ld: fatal: Symbol referencing errors. No output written to ... > > So, the decorated signature for class Engine costructor was truncated to 127 symbols. > > > Thanks for your help! > > Ungrund > > > -- > This message posted from opensolaris.org > _______________________________________________ > dtrace-discuss mailing list > dtrace-discuss at opensolaris.org-- Adam Leventhal, FishWorks http://blogs.sun.com/ahl