Xcode:malloc_error_break 上的自动(永久)断点?

标签 xcode gdb breakpoints lldb

是否可以在 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/

相关文章:

c - 如何在 Xcode 中清除屏幕

xcode - 如何在 Xcode 项目中打印 "Build Settings"的列表?

google-chrome - 无法在 Chrome 开发者工具的 if else 语句处设置断点

ios - Xcode 5.0删除项目的方法

ios - UINavigationController 方法将 View Controller 添加到导航堆栈?

gdb - gdb如何工作?

linux - 指令内存地址是否改变?

c++ - 尝试调试 TensorFlow C++ 代码时 GDB 退出/崩溃

c++ - 断点命中后的 Visual Studio 2008 查看对话框

google-chrome - 无法在 Chrome DevTools 中设置所需的断点?