随笔分类 -  GDB

摘要:直接使用gdb调试Qt应用时,Qt的一些数据类型没法友好的显示出来,而qtcreator可以很好的展示出来,qtcreator也是通过gdb来调试的,在展示数据时,其实是gdb通过python脚本来处理后显示的,这些python脚本位于/usr/share/qtcreator/debugger这个位 阅读全文
posted @ 2023-10-13 18:08 thammer 阅读(805) 评论(0) 推荐(0) 编辑
摘要:使用gdbserver进行远程调试,跟踪调试板子上的程序时,发现target remote后,想下几个断点,发现ctrl+c无法暂停程序,因此断点也下不了了。只能在连接前,提前下好断点,这明显是恶心的,因为分析问题过程中有随机下断点的需求。但是我记得之前这个程序,在同样的硬件上是可以后期下断点的。g 阅读全文
posted @ 2023-08-17 19:07 thammer 阅读(542) 评论(0) 推荐(0) 编辑
摘要:目标机器是一台arm64的板子,由builroot构建。首先添加一项运行配置,可以通过**运行 >编辑配置**来,也可以通过锤子旁边的下拉框来。 ![img.png](https://img2023.cnblogs.com/blog/689637/202306/689637-202306130919 阅读全文
posted @ 2023-06-13 09:53 thammer 阅读(967) 评论(0) 推荐(0) 编辑
摘要:​ 有时候碰到程序有问题时,需要借助gdb来分析,但是直接把带调试信息的elf发布出去又不太合适,这时就需要从中分离符号文件,单独发布strip过的elf文件。使用gdb时,只需要加载符号文件就行了。 ​ 首先生成带调试信息的elf文件: gcc -g3 main.c -o main.dbg ​ 然 阅读全文
posted @ 2023-02-17 17:57 thammer 阅读(518) 评论(0) 推荐(0) 编辑
摘要:​ valgrind包含多个工具,通过--tool=xxx指定,最被大家熟知是memcheck,主要解决内存泄露,越界访问,未初始化却去引用等问题,它是默认选项,如果未指定--tool,默认就是memcheck了。而在多线程编程中,最常见的bug有:数据竞争(data race),死锁,错误的使用P 阅读全文
posted @ 2020-10-29 17:51 thammer 阅读(2837) 评论(0) 推荐(0) 编辑
摘要:http://blog.csdn.net/wangxmin2005/article/details/8128192 gdb调试过程中出现行号错位的情况,原因一般有两个: 1. 编译器的优化可能把某些语句给优化掉了。 解决这种情况很简单,makefile中-O2这类的编译优化去掉,换成最简单的g++ 阅读全文
posted @ 2017-08-26 17:43 thammer 阅读(912) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示