gdb
gdb --args yourprogram
常用命令
r(run):从头开始运行
c(continue):继续运行
b(breakpoint) filepath:line or namespace::function(type):断点
s(step):运行当前行代码,会进入子函数
n(next):运行当前行代码,不会进入子函数
bt(backtrace):查看当前函数栈
until [line]:运行直到推出循环体,或者到指定行号
d(delete) n:删除第n个断点
disable n:暂停第n个断点
clear n:清除第n行的断点
info [threads, breakpoints]:查看线程,断点信息
info proc map:查看所有内存地址还有对应的链接库或者可执行文件
t(thread) n:进入第n个线程
Ctrl+A+X可以开关图形化界面
p(print) x:输出x
watch x:监控x,当x发生变化的时候停住并显示x
display x:单步调试时,每一次都重新打印x
q(quit):退出gdb
pdb
python3 -m pdb yourprogram
or add "import pdb;pdb.set_trace()" in your program
用法和gdb很相似
但是没有图形化界面,也不能调试多线程