永久配置 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 中)不停止信号的主要内容,如果未能解决你的问题,请参考以下文章

lldb 断点命令在 XCode 8 中不起作用

如何在 macOS 中更新 lldb

永久删除 Xcode 配置文件

Xcode - 创建 LLDB 目标时出错

使用 Xcode/LLDB 打印/调试 libc++ STL

如何在 xcode 中设置 lldb 的发现路径