gdb使用技巧
发布日期:2021-10-10 05:31:20
浏览次数:30
分类:技术文章
本文共 679 字,大约阅读时间需要 2 分钟。
gdb调试技巧
gdb调试技巧
文章目录
多线程调试
在工程中,经常需要写多线程的程序,如果这些多线程的程序出现了问题,需要gdb的时候,我们需要用哪些命令呢?
- info thread 查看当前进程的线程信息,显示ID;
- thread ID 切换调试的线程为指定ID的线程;
- break test.cpp:55 thread all 在test.cpp文件第55行处设置断点,所有的线程都启作用;
- set scheduler-locking off|on|step
- off 不锁定任何线程,也就是所有线程都执行,这是默认值;
- on 锁定其他线程,只有当前线程可以执行;
源文件显示
有些时候,我们在gdb的时候,无法显示源文件。
- directory 设置源文件路径
条件断点
- break line-or-function if expr 例如:break 666 if testsize==100
设置变量
有时候,在调试程序时,我们不单单只是查看运行时的变量,我们还可以直接设置程序中的变量,以模拟一些很难在测试中出现的情况,比较一些出错,或是switch的分支语句。使用set命令可以修改程序中的变量。
另外,你知道gdb中也可以有变量吗?就像shell一样,gdb中的变量以$开头,比如你想打印一个数组中的个个元素,你可以这样:
- set $i = 0
x命令
- x/x 以十六进制输出
- x/d 以十进制输出
- x/c 以单字符输出
- x/i 反汇编 – 通常,我们会使用
x/10i $ip-20 来查看当前的汇编($ip是指令寄存器)
- x/s 以字符串输出
转载地址:https://blog.csdn.net/qq_22054285/article/details/86692260 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
做的很好,不错不错
[***.243.131.199]2024年03月11日 02时34分38秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
有至少一个用MySQL_Mysql有用的面试题
2019-04-21
mysql select同时update_MySQLSELECT同时UPDATE同一张表
2019-04-21
mysql删除后数据库没变化_mysql之delete删除记录后数据库大小不变
2019-04-21
python问题描述怎么写_python写文件有时候写不进去怎么办
2019-04-21
qpython3安装lxml_在python的lxml中使用xml目录?
2019-04-21
java 幂取模_快速幂取模算法
2019-04-21
java上传下载源码_javaweb简单实现文件上传与下载源代码
2019-04-21
java控制热敏打印机的例子.rar_stm32控制热敏打印机
2019-04-21
java clone equals_(原)java中对象复制、==、equals
2019-04-21
java滚动字幕实训报告_Java实习报告 (7000字).doc
2019-04-21
计算机二级java技巧,计算机二级报java难考吗
2019-04-21
拉格朗日matlab编程例题,Matlab习题讲解.doc
2019-04-21
case是不是php语言关键字,PHP语言 switch 的一个注意点
2019-04-21
linux php mkdir失败,linux – mkdir错误:参数无效
2019-04-21