No symbol "xxx" in current context

来源:互联网 发布:dota2饰品交易知乎 编辑:程序博客网 时间:2024/06/05 03:50

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) yReading 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}




0 1
原创粉丝点击