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
}