2012-08-16 69 views
8

我将MonoTouch嵌入到Xcode项目中,并希望停止LLDB调试器处理SIGBUS信号,因为它们被单声道运行时使用。我怎样才能做到这一点?如何告诉LLDB调试器不要处理SIGBUS?

+1

根据http://stackoverflow.com/questions/10431579/permanently-configuring-lldb-in-xcode-4-3-2-not-to-stop-on-signals,“进程句柄SIGBUS -n true -p true -s false“应该可以做到这一点。 – 2012-08-16 13:41:52

回答

18

您可以控制lldb如何用“进程句柄”命令截获/传递信号。对于你的情况,你会想要做

(lldb) pro hand -p true -s false SIGBUS 
NAME  PASS STOP NOTIFY 
========== ===== ===== ====== 
SIGBUS  true false true 

现在的信号将被传递到你的过程中没有LLDB的方式获得。 “NOTIFY”字段指示lldb是否应该打印信号已收到 - 默认情况下是将它打印在调试器控制台中,但目前似乎没有发生。但信号正确传递,这是重要的一点。

+3

有什么办法可以在XCode中设置它? – ed22 2015-07-15 10:57:22

+1

添加一个断点,例如在main()上,然后在其断点操作中添加一条LLDB命令,并在其中添加此行,然后选中“断点后继续”复选框。 – uliwitness 2015-10-13 21:24:36

+1

要在Xcode中自动执行此操作,请将该命令添加到'〜/ .lldbinit-Xcode'中。如果你希望在命令行使用'lldb'的时候应用这个命令,把它加到'〜/ .lldbinit'中 – Buzzy 2015-10-28 21:04:35

相关问题