在 gdb 中,通常给出的调试指令是 -
gdb $package
set logging on
set pagination 0
handle SIG33 pass nostop noprint
run
当然,除了收集回溯等。上述中,什么是
handle SIG33 pass nostop noprint
哪些地方应该使用,哪些地方不应该使用?
答案1
handle SIG33
告诉我们gdb
如何处理信号 33;在您给出的版本中,pass
意味着传递信号,nostop
告诉调试器在发出信号时不要停止,并且noprint
不要打印任何内容。
这种指令在调试内部使用信号的运行时时非常有用。 Signal 33 由 Bionic 在 Android 上使用(用于回溯);如果你不忽略它,你最终会一直停下来。您会看到 Flash 的类似指令(至少具有信号 32 和 33,IIRC)。