zl程序教程

您现在的位置是:首页 >  其他

当前栏目

Gdb多线程调试

2023-09-14 09:16:07 时间

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 //打印字符串不省略打印