永久配置LLDB(在Xcode 4.3.2中)不停止信号

44

我试图让在 Xcode 4.3.2 中运行的 LLDB(与 macOS 应用程序一起运行)不停止某些信号。如果我在调试控制台中输入

process handle SIGUSR2 -n true -p true -s false

它可以正常工作,LLDB 不再停在 SIGUSR2 上。

但是,如果我将

command process handle SIGUSR2 -n true -p true -s false

放入 ~/.lldbinit 文件中似乎被忽略了。该文件中的其他命令(例如别名)正常工作。

如何使 LLDB 永远不会停在某些信号上?


1
我认为你想做的事情是不可行的,除非有一个明确的过程。这个过程是一个运行时的概念。也许在“设置列表”下面有一个有用的设置可以设置? - blueberryfields
谢谢,这就解释了为什么将该命令添加到~/.lldbinit中无效 :) - puzzle
1个回答

61

如果有其他人也有这个问题,我最终通过在NSApplicationMain()中设置断点(对于纯C程序,当然也可以使用main())来解决它。

我将断点操作设置为process handle SIGUSR2 -n true -p true -s false,并启用了“评估后自动继续”选项。

Xcode 4断点截图

如果有更优雅的解决方案,我很乐意听取建议。


7
以防万一,请不要忘记将符号更改为UIApplicationMain,以适用于iOS。 - user500
2
对于Swift,请使用“UIApplicationMain”。 - brunobowden
1
无论你是否忽略信号,Xcode 都不会停止 :( (顺便说一句,最好使用 sigaction() 来忽略信号) - itMaxence
1
@puzzle,你能解释一下或者提供一个关于process handle [signal] -n true -p true -s false这行代码的链接吗?只是为了理解我正在复制粘贴什么 :) - itMaxence
2
如果您在lldb控制台中输入“help process handle”,您将获得所有可能参数的解释。 - puzzle
显示剩余4条评论

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接