
gdb
文章平均质量分 61
金士顿
这个作者很懒,什么都没留下…
展开
-
gdb: “No symbol table is loaded”
gdb: “No symbol table is loaded”Ask Questionup vote68down votefavorite15I keep getting this error mesage when trying to add a breakpoint in gdb.I've used these commands to compile:gcc -g ...转载 2018-08-31 15:26:55 · 2478 阅读 · 0 评论 -
在gdb中自定义函数,打印QString
http://blog.chinaunix.net/uid-52437-id-2108896.htmlGDB的print命令只能打印基本数据类型,像QString这样的复杂类型就不行了。如果在调试过程中(命令行,或者xcode中)不能看QString的值,岂不是很不爽。幸好,gdb提供了扩展功能,可以自定义宏命令。把自定义的命令放到$HOME/.gdbinit文件中,每次启动gdb时就可以...转载 2019-07-10 14:55:31 · 908 阅读 · 0 评论 -
gdb中看内存(x命令)
你可以使用examine命令(简写是x)来查看内存地址中的值。x命令的语法如下所示:x/<n/f/u> <addr>n、f、u是可选的参数。n是一个正整数,表示显示内存的长度,也就是说从当前地址向后显示几个地址的内容。f 表示显示的格式,参见上面。如果地址所指的是字符串,那么格式可以是s,如果 地址是指令地址,那么格式可以是i。u 表示从当前地址往后请求的字节数,如果不指...转载 2018-11-16 13:29:38 · 2134 阅读 · 0 评论 -
gdb调试时显示数组
可以用下面的方法来显示数组p *array@len 其中p相当于print,array就是数组首地址,也可以是数组名,len是想要显示的数组的长度。比如我有一个数组的定义int a[] = {1, 2, 3, 4, 5}; 那么想要显示的时候就可以写:p *a@5 这样就会显示数组a中的所有元素。也可以使用display在一部调试的时候都显示:...转载 2018-11-15 14:13:02 · 2431 阅读 · 0 评论 -
使用gdb调试死锁线程
1.调试文件 lock.c #include <stdio.h>#include <pthread.h>#include <unistd.h>void *work_thread(void *arg){ pthread_mutex_t mutex; pthread_mutex_init(&mutex, 0); usleep(100...转载 2018-10-24 09:38:53 · 1047 阅读 · 0 评论 -
gdb模板类设置函数断点
template<class T>class threadpool(gdb) b thread_pool.h:threadpool<task>::threadpoolBreakpoint 2 at 0x4013e7: file thread_pool.h, line 38.(gdb) b thread_pool.h:threadpool<task>...原创 2018-10-15 13:51:29 · 3267 阅读 · 0 评论 -
GDB笔记(二):条件断点、命令列表、监视点 | Lesca技术宅
GDB笔记(二):条件断点、命令列表、监视点 | Lesca技术宅2012-12-08 WUCANADA 来源 阅 9930 转 14转藏到我的图书馆微信 分享: GDB笔记(二):条件断点、命令列表、监视点 Posted by lesca on 2011/05/21 Leave a comment (0) Go to comments 条件断点 b...转载 2018-10-11 19:40:02 · 10088 阅读 · 1 评论 -
gdb设置与清除断点
四、设置与清除断点break / b 可以用来在调试的程序中设置断点,该命令有如下四种形式//使程序恰好在执行给定行之前停止break line-number//使程序恰好在进入指定的函数之前停止break function-name//如果condition(条件)是真,程序到达指定行或函数时停止break line-or-function if co...转载 2018-09-20 13:38:58 · 12616 阅读 · 1 评论 -
gdb调试时查看内存
主要解释的是u 按十六进制格式显示无符号整型。 0xb8的无符号十进制整数是184,这个转化不太好理解原创 2018-09-04 19:51:53 · 640 阅读 · 0 评论 -
gdb几种设置断点的方式
gdb几种设置断点的方式方式1、根据函数名,查找符号(symbol)设置断电此种方式最为简单,阅读源代码,了解函数如何调用,在需要暂停运行的函数入口进行断点设置。但并不是所有函数,任何时候都能设置断点的。比如优化后的静态函数,inline函数。在特定的情况下,通过函数名进行断点设置便不可为,而又需要查看运行时该函数的运行情况,这时就需要使用第二种方式。例子:b func_name方式2、...转载 2018-09-04 17:00:33 · 53998 阅读 · 1 评论 -
gdb optimized out
转载地址:https://blog.youkuaiyun.com/zhangxiao93/article/details/51934354gdb optimized out问题print变量中出现<optimized out>。解决添加编译选项-O0,意思是不进行编译优化,gdb在默认情况下会使用-O2。使用-O0选项调试的时候就会顺畅了,发布项目的时候不用再使用 -O0参数...转载 2018-09-04 11:07:04 · 432 阅读 · 0 评论 -
Linux -gdb如何显示宏定义的值
本文大概阐述如何让gdb能够显示宏定义的值以及对应的原理gcc默认编译的时候,gdb调试过程中是不能看到宏定义的,"p 宏名" 会显示错误,如下:(gdb) p CLIENT6_BEGIN_FLGNo symbol "CLIENT6_BEGIN_FLG" in current context.(gdb)其中 #define CLIENT6_BEGIN_FLG "<Client...转载 2018-08-31 17:33:02 · 4407 阅读 · 0 评论 -
gdb中x的用法
用gdb查看内存格式: x /nfu <addr>说明x 是 examine 的缩写n表示要显示的内存单元的个数f表示显示方式, 可取如下值x 按十六进制格式显示变量。d 按十进制格式显示变量。u 按十进制格式显示无符号整型。o 按八进制格式显示变量。t 按二进制格式显示变量。a 按十六进制格式显示变量。i 指令地址格式c 按字符格式显示变量。f 按...转载 2019-08-07 18:11:44 · 336 阅读 · 0 评论