参考教程:https://mp.weixin.qq.com/s/w_Z2ftOnb4VtB4jUaMF0fw
- 运行gdb:gdb 可执行文件,例如gdb /root/abacus-develop/build/abacus
- 用gdb调试程序:r (run)
- 断点:b 文件:行数,例如b /abacus/source/module_cell/module_symmetry/symmetry.cpp:1049
- 查看所有断点:i b (info breakpoints)(可以看到每个断点的编号)
- 删除断点:clear
- 删除特定断点:delete 断点编号。可以一次操作多个,比如delete 1-4
- 设置变量断点(当变量值改变时停下,显示下一行的内容):watch 变量名
- 查看变量的值
- 单次:p 变量名 或 print 变量名
- 每个断点都显示:display 变量名
- 查看显示列表: info display (可以看到每个显示项的编号)
- 取消显示:undisplay 编号
- 查看数组的值(p/print/display)
- display *数组名@区间长度,例如 display *rotpos@12
- 继续,往下运行一步:n (next)
- 继续,直至下一个断点:c (continue)
- 查看调用堆栈:bt (backtrace),同where