您的位置:首页 > 编程语言 > C语言/C++

No symbol "xxx" in current context

2015-12-22 16:55 901 查看
gdb调试时报找不到符号(No symbol "pthread_cond_t" in current context.),可用如下方式让其显示出来。

首先:另外创建个源文件,对gdb中无法显示类型信息的类型定义变量,如foo.c文件。用
-g选项编译

bash$ cat foo.c
#include <pthread.h>
pthread_cond_t p;
pthread_mutex_t m;
bash$ gcc -g -c foo.c


然后:使用add-symbol-file将foo.o文件的符号添加至hello二进制文件中

(gdb) add-symbol-file foo.o
add symbol table from file "foo.o" at
.text_addr = 0x0
(y or n) y
Reading symbols from /data/home/jakciehan/tmp/pthread_test/foo.o...done.
(gdb) p *(pthread_mutex_t *)(0xbfa4bc74)
$1 = {
__data = {
__lock = 2,
__count = 0,
__owner = 8205,
__kind = 0,
__nusers = 1,
{
__spins = 0,
__list = {
__next = 0x0
}
}
},
__size = "\002\000\000\000\000\000\000\000\r \000\000\000\000\000\000\001\000\000\000\000\000\000",
__align = 2
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  c++ gdb 调试