Hi All,
Can you post your most tricky and useful commands while you run a debugger like gdb or dbx.
Hi All,
Can you post your most tricky and useful commands while you run a debugger like gdb or dbx.
thread apply all bt
or thread apply all print $pc
: For finding out quickly what all threads are doing.
Starting in gdb 7.0, there is reversible debugging, so your new favourite command are:
* reverse-continue ('rc') -- Continue program being debugged but run it in reverse
* reverse-finish -- Execute backward until just before the selected stack frame is called
* reverse-next ('rn') -- Step program backward, proceeding through subroutine calls.
* reverse-nexti ('rni') -- Step backward one instruction, but proceed through called subroutines.
* reverse-step ('rs') -- Step program backward until it reaches the beginning of a previous source line
* reverse-stepi -- Step backward exactly one instruction
* set exec-direction (forward/reverse) -- Set direction of execution.
Instead of launching GDB with "-tui" param you can also switch to text mode after a while using by typing "wh".
scripting gdb is a good trick, other than that I like set scheduler locking on / off to prevent the running of other threads when you are stepping in one.
info threads to list all the active threads, and f(#) -> # thread number you want to switch to
sometime i use gdb to convert from hex to decimal or binary, its very handy instead of opening up a calculator
Using the -command= option while firing up gdb. Same as -x . This command file can contain gdb commands [few breakpoints, few options etc]. Useful in case a particular exe needs to be put through successive debug runs using gdb.
This can be useful, I am sure it could be improved though, help welcome:
define mallocinfo
set $__f = fopen("/dev/tty", "w")
call malloc_info(0, $__f)
call fclose($__f)