GDB – What Does `handle SIG33 pass nostop noprint` Do?

debiangdblinux

In gdb, the usual instructions for debugging given are –

gdb $package

set logging on

set pagination 0

handle SIG33 pass nostop noprint

run

and of course than collecting backtraces and all. Of the above, what does

handle SIG33 pass nostop noprint

and where it should be used and where not ?

Best Answer

handle SIG33

tells gdb how to handle signal 33; in the version you give, pass means to pass the signal on, nostop tells the debugger not to stop when the signal is emitted, and noprint not to print anything.

This kind of directive is useful when debugging runtimes which use signals internally. Signal 33 is used on Android, by Bionic (for back-traces); if you don’t ignore it there you’ll end up stopping all the time. You’d see similar instructions with Flash (with signals 32 and 33 at least, IIRC).

Related Question