gdb

1. 指令

https://github.com/gnipbao/iblog/blob/master/static/gdb-refcard.pdf

2. 断点/监视点

  • 条件断点
  1. (gdb) break my_func if i!=0
  • watchpoints
    • 并发问题常用

3. 可视化

  1. tui
    1. gdb —tui commands
  1. gdb --tui --args ~/llvm/llvm-project/debug/bin/opt -S -load-pass-plugin ./build/lib/libMBAAdd.so -passes=mba-add ./inputs/input_for_mba.ll -o out.ll
  2. (lldb) b MBAAdd::run
  3. (lldb) r
  1. 2. 上下键,移动代码试图
  2. 3. ctrl(按住)+p 上条指令;ctrl+n 下条指令
  3. 4. ctrl-x 2:让TUI显示两个窗口
  4. 5. ctrl-x o:更换激活的窗口
  5. 6. ctrl-x ssingleKey mode(和gdb相同的指令)和tui模式切换
  1. gdb pretty printer

4. 调试脚本