【问题标题】:SIGSEGV in __lll_unlock_wake_private__lll_unlock_wake_private 中的 SIGSEGV
【发布时间】:2017-02-13 02:15:02
【问题描述】:

当我使用函数 fread 时,程序出错,__lll_unlock_wake_private 获取 sigsegv,gdb 消息如下:

(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 是如何工作的?

【问题讨论】:

    标签: segmentation-fault gdb


    【解决方案1】:

    我想知道函数 __lll_unlock_wake_private 是如何工作的?

    你可以看到它的来源here

    但您得到SIGSEGV 的最可能原因是您使用NULL 流参数调用了fread

    如果您执行以下gdb 命令:frame 4list,您应该能够看到调用站点,并查看您传递给fread 的值。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多