Stéphane Payrard
2008-Sep-04 14:39 UTC
[dtrace-discuss] dtrace with parrot : ustack() gets only hexa adresses
Ha someone be successful using dtrace on parrot? When I am using ustack(), I get only hexa addresses instead of function names. When I am using bt in gdb, I got stack trace with names so I would expect the same with dtrace. I get the same results with leopard and nexanta. Is there some compiler option used when compiling parrot that breaks ustack()? The code for parrot is accessible from : http://www.parrotcode.org/ I track my progress with parrot and dtrace in : http://www.perlfoundation.org/parrot/index.cgi?dtrace The relevant part of the parrot Makefile is : AS = as CC = /usr/bin/gcc-4.0 CC_INC = -I./include C_LIBS = -lm -lgmp -lreadline -lpcre -framework OpenGL -framework GLUT -lcrypto -lintl CC_SHARED CFLAGS = $(CC_INC) -I/opt/local/include -fno-common -no-cpp-precomp -pipe -Wdeclaration-after-statement -I/opt/local/include -pipe -fno-common -Wno-long-double -DHASATTRIBUTE_CONST -DHASATTRIBUTE_DEPRECATED -DHASATTRIBUTE_MALLOC -DHASATTRIBUTE_NONNULL -DHASATTRIBUTE_NORETURN -DHASATTRIBUTE_PURE -DHASATTRIBUTE_UNUSED -DHASATTRIBUTE_WARN_UNUSED_RESULT -falign-functions=16 -fvisibility=hidden -maccumulate-outgoing-args -W -Wall -Waggregate-return -Wcast-align -Wcast-qual -Wchar-subscripts -Wcomment -Wdisabled-optimization -Wendif-labels -Wextra -Wformat -Wformat-extra-args -Wformat-nonliteral -Wformat-security -Wformat-y2k -Wimplicit -Wimport -Winit-self -Winline -Winvalid-pch -Wmissing-braces -Wmissing-field-initializers -Wno-missing-format-attribute -Wmissing-include-dirs -Wpacked -Wparentheses -Wpointer-arith -Wreturn-type -Wsequence-point -Wno-shadow -Wsign-compare -Wstrict-aliasing -Wstrict-aliasing=2 -Wswitch -Wswitch-default -Wtrigraphs -Wundef -Wunknown-pragmas -Wno-unused -Wvariadic-macros -Wwrite-strings -Wbad-function-cast -Wdeclaration-after-statement -Wimplicit-function-declaration -Wimplicit-int -Wmain -Wmissing-declarations -Wmissing-prototypes -Wnested-externs -Wnonnull -I/sw/include -DHAS_GETTEXT -g -Wno-shadow -DHAVE_COMPUTED_GOTO $(CC_SHARED) LINK_DYNAMIC LINK = c++ LINKFLAGS = -undefined dynamic_lookup -L/opt/local/lib -L/sw/lib LD = c++ LDFLAGS = -L/opt/local/lib -L/Users/stef/svn/parrot/blib/lib -L/sw/lib -- cognominal stef
Philip Beevers
2008-Sep-04 15:22 UTC
[dtrace-discuss] dtrace with parrot : ustack() gets only hexaadresses
I know nothing about parrot (although it looks interesting!) - but from this set of slides (http://www.jnthn.net/papers/2005-lpw-parrot-slides.pdf) and your compilation flags, it looks like your parrot runtime dispatches parrot opcodes by using computed gotos rather than true C function calls. Thus I guess it would make sense that ustack() doesn''t work as expected, as these aren''t regular symbols. Interesting that gdb appears to work though - a complete guess, but as the computed goto appears to be a gcc-specific, perhaps gdb has specialised support for this too. -- Philip Beevers Chief Architect - Fidessa mailto:philip.beevers at fidessa.com phone: +44 1483 206571 ******************************************************************************************************************************************************************************************** This message is intended only for the stated addressee(s) and may be confidential. Access to this email by anyone else is unauthorised. Any opinions expressed in this email do not necessarily reflect the opinions of Fidessa. Any unauthorised disclosure, use or dissemination, either whole or in part is prohibited. If you are not the intended recipient of this message, please notify the sender immediately. Fidessa plc - Registered office: Dukes Court, Duke Street, Woking, Surrey, GU21 5BH, United Kingdom Registered in England no. 3781700 VAT registration no. 688 9008 78 Fidessa group plc - Registered Office: Dukes Court, Duke Street, Woking, Surrey, GU21 5BH, United Kingdom Registered in England no. 3234176 VAT registration no. 688 9008 78