No symbol "xxx" in current context

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
}




發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章