永久配置 LLDB(在 Xcode 4.3.2 中)不停止信号
Posted
技术标签:
【中文标题】永久配置 LLDB(在 Xcode 4.3.2 中)不停止信号【英文标题】:Permanently configuring LLDB (in Xcode 4.3.2) not to stop on signals 【发布时间】:2012-05-12 23:31:01 【问题描述】:我正在尝试让 LLDB(在 Xcode 4.3.2 中使用 OS X 应用程序运行)在某些信号上不停止。如果我输入
process handle SIGUSR2 -n true -p true -s false
在调试控制台上它工作正常,LLDB 不再在 SIGUSR2 上停止。
但是,如果我把
command process handle SIGUSR2 -n true -p true -s false
进入 ~/.lldbinit 它似乎被忽略了。此文件中的其他命令(例如别名)工作正常。
如何让 LLDB 在某些信号上永不停止?
【问题讨论】:
我不认为你想做的事情是可行的,没有明确的过程是一个运行时的概念。也许“设置列表”下有一个有用的设置可以设置? 谢谢,这就解释了为什么将命令添加到 ~/.lldbinit 不起作用:) 【参考方案1】:万一其他人有这个问题,我终于通过在NSApplicationMain()
中添加一个断点来解决它(对于普通的 C 程序,main()
当然也可以)。
我将断点操作设置为process handle SIGUSR2 -n true -p true -s false
,并启用了“评估后自动继续”选项。
如果有人有更优雅的解决方案,我很乐意听到。
【讨论】:
以防万一...不要忘记将符号更改为UIApplicationMain
for ios。
对于 Swift 使用“UIApplicationMain”
无论您是否忽略信号都不会阻止 xcode 停止 :((顺便说一句,您最好使用 sigaction() 忽略信号)
@puzzle 你能解释一下或提供一个关于process handle [signal] -n true -p true -s false
行的链接吗?只是为了理解我正在复制/粘贴的内容:)
@itMaxence 如果您在 lldb 控制台中输入 help process handle
,您将获得所有可能参数的解释。以上是关于永久配置 LLDB(在 Xcode 4.3.2 中)不停止信号的主要内容,如果未能解决你的问题,请参考以下文章