是否可以在 Xcode 下的 malloc_error_break
上设置自动(或永久)断点? (如果它在 Xcode 中而我错过了,请指出)。我希望它能够在 Xcode 下的任何地方工作 - 从 GDB 到 LLDB,再到新旧项目。我真的希望它能够在设备上工作,但这可能是拉伸(stretch)的( it appears something is broken 在设备上带有 malloc 保护)。
我想 .lldbinit
可能会有所帮助,但 LLDB 有点扼杀了这个想法。 LLDB 似乎不支持 .lldbinit
中设置的断点(根据 断点列表
)( http://lldb.llvm.org/tutorial.html )。 LLDB 还会忽略 .lldbinit-Xcode
中的断点(感谢 Rob)。
.gdbinit
也可能有用,但我们可能会遇到 Unable to set pending breakpoints in .gdbinit 中讨论的错误。 。这是苹果公司,他们的质量保证流程完全崩溃了,所以我不指望它能得到修复。
总而言之,以下内容在此 Mac(MacBook Pro、10.8)和 Xcode (4.5.2) 上不起作用:
riemann: jwalton$ cat ~/.lldbinit
# http://lldb.llvm.org/tutorial.html
# Not honored by LLDB
breakpoint set --name malloc_error_break
# Shot in the dark since the previous is not honored
breakpoint set pending --name malloc_error_break
riemann: jwalton$ cat ~/.gdbinit
set breakpoint pending on
set breakpoint malloc_error_break
set breakpoint pending auto
编辑(2013/02/07):另请参阅lldb equivalent of .gdbinit and future break? .
杰夫
最佳答案
更新
有一种简单的方法可以在 Xcode 中设置永久的、所有项目的断点。
打开任何项目。转到断点导航器。在 malloc_error_break
上创建符号断点。然后,右键单击导航器中的断点,并从弹出菜单中选择“将断点移至”>“用户”。 Xcode 将用户断点应用到所有项目。
参见step 2 of this blog post观看视频。
原版
LLDB 有自己的初始化文件,称为...(请打鼓)....lldbinit
。您也可以在那里设置断点。 “ session 415 - 使用 LLDB 进行调试”视频来自 WWDC 2012从 29 分 43 秒开始深入讨论该文件。您甚至可以创建一个 .lldbinit-Xcode
文件,LLDB 仅当在 Xcode 下运行时才会加载。
关于 GDB 待处理断点问题,我没有任何建议给您。
关于Xcode:malloc_error_break 上的自动(永久)断点?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13392665/