如何告诉LLDB调试器不处理SIGBUS?

Erg*_*wun 14 xcode xamarin.ios lldb

我在一个Xcode项目中嵌入了MonoTouch,并希望阻止LLDB调试器处理SIGBUS信号,因为它们被单声道运行时使用.我怎样才能做到这一点?

Jas*_*nda 28

您可以使用"process handle"命令控制lldb如何截取/传递信号.对于你的情况,你想要做

(lldb) pro hand -p true -s false SIGBUS
NAME        PASS   STOP   NOTIFY
==========  =====  =====  ======
SIGBUS      true   false  true 
Run Code Online (Sandbox Code Playgroud)

现在信号将被传递到您的过程,而不会阻碍lldb."NOTIFY"字段指示lldb是否应该打印信号被接收 - 默认情况下它将在调试器控制台中打印,但现在似乎没有发生.但信号正确传递,这是重要的一点.

  • 有没有办法在XCode中设置它? (3认同)
  • 添加一个断点,例如在 main() 上,然后在它的断点操作中添加一个包含这一行的 LLDB 命令,然后选中“断点后继续”复选框。 (2认同)
  • 将其添加到 `~/.lldbinit` 不起作用,因为它给出错误 `error: No current target; 在您拥有有效的目标和进程之前无法处理信号。 (2认同)