![`handle SIG33 pass nostop noprint` 在 gdb 中使用时会做什么](https://linux22.com/image/9512/%60handle%20SIG33%20pass%20nostop%20noprint%60%20%E5%9C%A8%20gdb%20%E4%B8%AD%E4%BD%BF%E7%94%A8%E6%97%B6%E4%BC%9A%E5%81%9A%E4%BB%80%E4%B9%88.png)
在 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)。