我正试图通过一个大项目> 100k loc,但只关心与lib的交互。有没有办法让lldb打破一次源文件中的所有函数声明?
到目前为止,我已经尝试过了
br s -f <file> --func-regex .*
来自gdb to lldb和gdb solution的信息,但这似乎打破了文件中的所有函数调用,导致4911行源文件的5129匹配。
可能的解决方案是进行源正则表达式匹配以通过
查找函数调用br s -f --source-pattern-regexp
但鉴于C ++的荒谬解析规则,一个匹配所有情况的正则表达式是不可能的。
答案 0 :(得分:2)
GET /private HTTP/1.1
Host: <My Machine Name>:8000
Authorization: Bearer <Access Token>
Content-Type: application/json
Cache-Control: no-cache
Postman-Token: 87dd4307-2a1c-b36e-0377-129cf60b676d
规范确实将断点搜索限制为由{
"statusCode": 400,
"error": "Bad Request",
"message": "Bad HTTP authentication header format"
}
定义的编译单元,因此它最终包括编译单元包含的所有模板实例,如果使用任何{{1}正如你所发现的那样,东西通常很多。
调试器通常知道声明函数的位置(它是调试信息的一部分)所以我们可以添加一个选项来将-f视为&#34;声明文件&#34;不是&#34; comp单位名称&#34;。然后你可以这样说:
-f
这很简单。如果您愿意,请向http://bugreporter.apple.com提交针对此效果的增强请求。
如果您遵循编写以下功能的惯例:
<file>
然后你就可以在&#34; ^ {&#34;上做一个源正则表达式。这是编码约定的主要原因,它使函数的开头很容易被选中。
如果模板实例主要来自std,你可以找到.o文件并做类似的事情(这是在OS X上):
std::
这将生成此.o文件中的非std函数列表,然后您可以将(lldb) break set -f foo.h -f foo.cpp --match-declaration-file --func-regex .*
添加到每行的开头并将其输入。