【发布时间】:2016-10-07 02:11:00
【问题描述】:
我正在尝试逐步完成一个 >100k loc 的大型项目,但只关心与 lib 的交互。有没有办法让 lldb 中断一次源文件中的所有函数声明?
到目前为止我已经尝试过
br s -f <file> --func-regex .*
包含来自 gdb to lldb 和 gdb solution 的信息,但这似乎破坏了文件中的所有函数调用,导致 4911 行源文件出现 5129 次匹配。
一种可能的解决方案是进行源正则表达式匹配以通过以下方式查找函数调用
br s -f --source-pattern-regexp
但鉴于 C++ 荒谬的解析规则,匹配所有情况的正则表达式是不可能的。
【问题讨论】:
-
您可以将要中断的函数列表作为中断命令放入文件中。应该很容易从您的头文件创建。使用 -x 标志运行 gdb:
gdb -x command_file_name -
问题是我想要一个更通用的解决方案,并且打破头文件中的函数并不能充分涵盖函数未在头文件中声明的情况,例如在源文件中声明的情况和作为函数指针传递。
-
祝你好运。让我们知道您的发现。