我正在使用 dmd 2.072.1 在 OS X El Capitan 上编译我的命令行程序,并尝试在使用 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
LLDB是否可以显示行号?如果可以,如何操作?如果不行,使用dmd时有哪些替代方案?我使用Emacs开发D程序,但也安装了Xcode用于其他语言。
-g
编译。请参考 https://dlang.org/dmd-osx.html#switch-g。 - Bauss-debug
和-gc
。我刚刚注意到我的堆栈跟踪粘贴的第一行包含行号,我以前怎么没看到它呢 :-/ 但问题仍然存在,因为其他行没有包含行号。 - SurvivalMachine