我正在尝试通过GDB在C++的模板函数中设置断点。我尝试了三种可能的方法。
- break fileName:functionName => 对于非模板函数(特定于一个函数),此方法有效。
- rbreak fileName:. => 在给定文件中所有函数处设置断点,但似乎对于模板函数无效。
- break fileName:lineNumber => 对于非模板和模板函数都起作用,但问题在于我必须每次修改此行号。
我的总体目标是使用像下面这样的脚本通过GDB跟踪整个代码流,但我的代码中也有很多模板函数。
以下是示例GDB脚本:set logging on
b func2
commands
silent
bt 1
continue
end
b func1
commands
silent
bt 1
set logging off
continue
end
- 一种选择是使用rbreak filename:。
- 运行一次代码,然后
- 不退出GDB再次运行代码。这次它会识别函数并使断点生效。
请帮忙提供一个合适的解决方案,或者让我知道是否有遗漏的地方吗? 非常感谢任何帮助/建议,这将大大简化我的调试过程。
先行致谢!