gdb之display显示格式
gdb # display/x count //以十六进制的形式打印出整数。
gdb # display/u count //以无符号、十进制的形式打印出整数。
/fmt | 功 能 |
---|---|
/x | 以十六进制的形式打印出整数。 |
/d | 以有符号、十进制的形式打印出整数。 |
/u | 以无符号、十进制的形式打印出整数。 |
/o | 以八进制的形式打印出整数。 |
/t | 以二进制的形式打印出整数。 |
/f | 以浮点数的形式打印变量或表达式的值。 |
/c | 以字符形式打印变量或表达式的值。 |
1.调试方法
# ps aux| grep proname //找出进程的pid
# gdb -p pid //使用gdb attach可以调试正在运行的进程
# info threads //查看具体的线程id
# thread x //切换线程到具体的线程x
# b func
# set scheduler-locking off //让所有的线程运行.gdb默认调试状态下只有当前的线程在运行,所以先要让整个程序运行起来。
# c //让线程运行,等待程序停在下一个断点处
# display/x len //显示16进制
//取消显示,这样取消无法重新显示,只能重新属于命令
# undisplay num
如:
# undisplay 1
//关闭/打开display显示
# disable display 5 //关闭5号变量值打印
# enable display 5 //打开5号变量值打印
# disbale display //关闭所有变量值打印
# enable display //打开所有变量值打印
//显示多个参参数
# display {num,count,str}
# finsh //结束此函数
# return //return此函数
2。查看本地变量数据实用技巧
# set print pretty on //按格式打印struct结构体时
# set print union //打印struct时按格式打印内部的union
# set print array //按格式打印数组
# set print element 0 //打印字符串不省略打印