User talk:Mathieu: Difference between revisions

From KitwarePublic
Jump to navigationJump to search
m (tweak)
m (gdb and destructor)
Line 19: Line 19:
   
   
   assert( !VALGRIND_CHECK_READABLE( &variable, sizeof( variable ) ) );
   assert( !VALGRIND_CHECK_READABLE( &variable, sizeof( variable ) ) );
Yet another trick for debugging the destructor of a class:
Steps:
nm --defined-only -C vtkEnSight6Reader.o | grep '~'
copy the hexadecimal for those symbol then do
nm --defined-only vtkEnSight6Reader.o | grep 'my_symbol'
then you just need to add a breakpoint on that particular symbol, repeat if more than one destructor.

Revision as of 19:54, 12 October 2004

Some tricks I always forgot on MacOSX:

ldd -> otools -L

strace/ltrace -> ktrace / kdump


some valgrind 'feature' to gdb an unitialized var you need to use valgrind macro:

From [How to output address of the unitialized value? ]

Your best bet in that case is to inspect the code at the failing location and see if there is an obvious cause, and if not then to try inserting some assertions using the valgrind macros to try and work out what is uninitialised - assertions like this will do it:

  assert( !VALGRIND_CHECK_READABLE( &variable, sizeof( variable ) ) );


Yet another trick for debugging the destructor of a class: Steps:

nm --defined-only -C vtkEnSight6Reader.o | grep '~' copy the hexadecimal for those symbol then do

nm --defined-only vtkEnSight6Reader.o | grep 'my_symbol'

then you just need to add a breakpoint on that particular symbol, repeat if more than one destructor.