如何在 macOS 上的堆栈跟踪中显示行号?

Sur*_*ine 5 debugging macos d

我正在 OS X El Capitan 上使用 dmd 2.072.1 编译我的命令行程序,并在使用 LLDB 进行调试时尝试获取行号以显示在堆栈跟踪中。目前堆栈跟踪如下所示:

core.exception.RangeError@Level.d(454): Range violation
----------------
4   Game                                0x000000010b108ac1 _d_arraybounds + 97
5   Game                                0x000000010b07f759 Level.__array + 41
6   Game                                0x000000010b0969c4 void Level.Level.GenerateBlocks() + 992
7   Game                                0x000000010b094c32 Level.Level Level.Level.__ctor(Renderer.Renderer, Level.Meshes, Level.Textures, bool, boo
Run Code Online (Sandbox Code Playgroud)

是否可以使用 LLDB 看到行号?如果是这样,如何?如果没有,我在使用 dmd 时有哪些选择?我正在使用 Emacs 开发我的 D 程序,但也为其他语言安装了 Xcode。

小智 0

我在 MacOS 上,遇到了同样的问题,我已经解决了。当我将所有 C 源文件编译为目标文件时,我包含了 -g 选项。然后,当将所有目标文件编译在一起以生成最终的可执行文件时,我还包含了 -g 选项。然后 lldb 显示了发生错误的正确行号!