gdb

来源:互联网 发布:java 日志级别 编辑:程序博客网 时间:2024/05/16 13:24
gdb --args program args
gdb program core/pid
set args cobox -> args[0]=cobox


x /nfu address u:bhwg x /3s argv[0]


info frame,source 查看当前函数语言
info locals 查看当前局部变量
list linenum, funcname 查看源代码


print &x, x = 4, $tmp = 4


set var x = 4, $tmp = 4,var x = strcmp(array, "apple"), $临时变量
set $os = (struct Foo *)malloc(sizeof(struct Foo)), $os->x = 111999, call strcpy($os->ar, "mouse sheet")


return rtnval 替代返回值


whatis x 显示x变量的类型


print *a@10 打印数组a的全部10个元素的值
print a[0]@10


ptype x 显示x的结构定义


watch i != 10 表达式变化时停止
break if i == 10


info breakpoints, watchpoints
delete $foo_bp, set $foo_bp = $bpnum, $bpnum 系统维护


continue 运行,直到下一个断点


finish 运行完函数,返回调用点


until 运行到下一行源代码或断点


backtrace


最后一次执行结果保存为$,倒第二次保存为$$


display x 每次停下来显示x的值


commands 2,遇到断点2执行的命令
>display x
>continue
>end


disable display 2


gcc -DDEBUG #ifdef DEBUG与#endif之间的代码执行


until 9,执行到第九行停止,until funcname,默认执行到下一行或遇到断点


ignore 让断点在前count次到达都不停下来


condition 2 i == 5,断点2仅在i等于5时有效
0 0
原创粉丝点击