|
|
1
4
这是一个bug(相当长的时间),用于枚举的name->debug information lookup accelerator表是如何构建的。列出枚举类型时,不列出枚举值。这确实是为了节省输出调试信息大小-调试信息变得相当大很快,因此有一个不断增加的信息之间的紧张关系和更多的信息的效用。到目前为止,这个还没有上升到包容的程度。 无论如何,在“所有调试信息中搜索与‘ezero’匹配的任何名称”的过程都会非常缓慢,即使是对于大小合适的项目也是如此,对于大型项目来说也会变得非常糟糕。因此,lldb总是使用这些名称->调试信息表进行第一级访问。 因为加速器表按名称包含EnUM类型(而且对于名称也更重要),解决方法是: (lldb)表达式枚举::ezero (int)0美元=0 当然,如果你有真正的匿名枚举,那么你很不走运,直到这个信息被添加到加速器表。 顺便说一句,调试器控制台窗口中的xcode符号完成是使用xcode sourcekit索引器而不是lldb完成的。因此,xcode提供的补全并不是lldb对程序知识的反映。 gdb不使用编译器生成的加速表(在新的dwarf 5标准之前,这是apple的扩展),而是通过扫描调试信息手动构建索引。这使得它们可以为调试器认为最好的东西建立索引。OTHH,它使得调试器启动对于大型项目来说有点慢。 |
|
|
Zohar81 · 显示内核空间中远程线程的回溯跟踪 8 年前 |
|
|
Denis · 正在调试MPI应用程序时关闭xterm 9 年前 |
|
|
matt · Xcode调试器(lldb)从内存地址获取对象描述 9 年前 |
|
Mecki · 为什么otool会截断我的反汇编输出? 9 年前 |