2017-02-13 11 views
0

, когда я использую функцию Fread, программа получает сообщение об ошибке с __lll_unlock_wake_private получения SIGSEGV, то GDB сообщения являются следующие:SIGSEGV в __lll_unlock_wake_private

(gdb) bt 
#0 0x00000000 in ??()   
#1 0x009b77b6 in __lll_unlock_wake_private() from /lib/libc.so.6   
#2 0x00931c3b in _L_unlock_134() from /lib/libc.so.6     
#3 0x00931bd8 in fread() from /lib/libc.so.6    
#4 0x08049654 in init_global_list() at main.c:235      
#5 0x0804b4e9 in init_prog() at main.c:1085     
#6 0x0804c53f in main (argc=1, argv=0xf0) at main.c:1591     

Я хочу знать, как функция __lll_unlock_wake_private работает?

ответ

0

Я хочу знать, как работает функция __lll_unlock_wake_private?

Вы можете увидеть его источник here.

Но наиболее вероятная причина, по которой вы получили SIGSEGV, - это то, что вы назвали fread с параметром потока NULL.

Если выполнить следующие команды: gdbframe 4, list, вы должны быть в состоянии увидеть сайт вызова, и посмотреть, какие ценности вы прошли в fread.

+0

большое спасибо – yefeng

 Смежные вопросы

  • Нет связанных вопросов^_^