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 //打印字符串不省略打印
相关文章
- qtcpsocket多线程_qtcpsocket接收数据
- idea怎么远程debug_idea 多线程调试
- Java中的多线程和多进程
- 使用多线程实现文件的下载_多线程写同一个文件
- Junit单元测试不支持多线程的问题详解编程语言
- Linux多线程:恐惧的解决之道——死锁(linux多线程死锁)
- Linux线程实战:一步步掌握多线程技术(linux线程实例)
- Mastering Multithreaded Applications with Linux: Boost Your Programming Skills(linux多线程应用)
- Linux系统中的GDB调试使用技巧(linux中的gdb)
- 通信多线程通信Redis的福音(是redis多线程)
- 多线程并发调用Redis遭遇的阻塞(多线程调用redis阻塞)
- 多线程安全操作Redis存储数据(多个线程操作redis)
- 多线程开发中如何善用Redis(多线程使用redis)
- 使用Redis轻松解决多线程问题(redis采用多线程问题)