【问题标题】:Debugging in VS Code with lldb, how do I set a breakpoint on a symbol I don't have source for?使用 lldb 在 VS Code 中进行调试,如何在没有源代码的符号上设置断点?
【发布时间】:2019-05-21 08:46:01
【问题描述】:

我有某种内存管理错误,当然,在 100% 负载下每 3 天左右随机发生一次。这是在 OSX 上,但都是简单的、可移植的 C++11:

code(12404,0x70000aace000) malloc: *** error for object 0x105088e00: pointer being freed was not allocated
                         *** set a breakpoint in malloc_error_break to debug
  Abort trap: 6

我使用的是 Visual Studio Code,调试器是 lldb;我不知道 - 如何 - 在 malloc_error_break 上设置断点,以便在它发生时查看调用堆栈。

VS Code 允许您在源代码行设置断点,但我没有该系统库代码的源代码,只有符号。但是,如果我可以在那里中断,无论没有该函数的源代码,我都可以检查调用堆栈。

那么,如何在 OSX High Sierra 上的 Visual Studio Code 下的 lldb 中在没有源代码的任意符号处设置断点?

谢谢!

【问题讨论】:

    标签: visual-studio-code lldb vscode-debugger


    【解决方案1】:

    如果你去Debug->New Breakpoint->Function Breakpoint,可以通过输入函数名(malloc_error_break)来添加这个断点。

    【讨论】:

      【解决方案2】:

      不确定 Visual Studio 代码部分,但在 lldb 中您可以使用:

      br s -F malloc_error_break
      

      或者干脆

      b malloc_error_break
      

      【讨论】:

        猜你喜欢
        • 2022-01-11
        • 2014-07-06
        • 1970-01-01
        • 1970-01-01
        • 2011-04-26
        • 2018-10-16
        • 2016-02-28
        • 2017-02-12
        • 2019-11-04
        相关资源
        最近更新 更多