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 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:无锁编程基础
下一篇:linux下C/C++ 头文件以及库文件的搜索路径

发表评论

最新留言

做的很好,不错不错
[***.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
net mysql start3534_MySQL 5.7.14 net start mysql 服务无法启动-“NET HELPMSG 3534” 的奇怪问题... 2019-04-21
pta两个有序链表的合并_7-1 两个有序链表序列的合并 (20分) --- 内存问题再叙 2019-04-21
python问题描述怎么写_python写文件有时候写不进去怎么办 2019-04-21
qpython3安装lxml_在python的lxml中使用xml目录? 2019-04-21
java 幂取模_快速幂取模算法 2019-04-21
java build path jre_java-如何在安装了jre 7后为Jre 6设置路径? 2019-04-21
java上传下载源码_javaweb简单实现文件上传与下载源代码 2019-04-21
java socket udp 广播_1.Java 的屏幕广播(基于UDP),2.多线程下载器 2019-04-21
java控制热敏打印机的例子.rar_stm32控制热敏打印机 2019-04-21
java clone equals_(原)java中对象复制、==、equals 2019-04-21
java滚动字幕实训报告_Java实习报告 (7000字).doc 2019-04-21
php7 memcached.exe,PHP7 下安装 memcache 和 memcached 扩展 2019-04-21
计算机二级java技巧,计算机二级报java难考吗 2019-04-21
php foreach 数据库,php – 使用foreach将数据库检索的数据排列在HTML表中 2019-04-21
拉格朗日matlab编程例题,Matlab习题讲解.doc 2019-04-21
case是不是php语言关键字,PHP语言 switch 的一个注意点 2019-04-21
linux php mkdir失败,linux – mkdir错误:参数无效 2019-04-21