__lll_mutex_lock_wait出现的分析

原创 2007年08月21日 13:24:00

1、如果出现__lll_mutex_lock_wait,程序僵死这是毫无疑问。
2、1如果出现:
 __lll_mutex_lock_wait () from /lib/tls/libc.so.6
     并且出现_L_mutex_lock_2507
   基本上是处于内存错误(因为内存释放的时候也会调用pthread_mutex_lock),这种情况比较好查,用valgrint检测一下就ok了。

2、2 如果出现:
       __lll_mutex_lock_wait () from /lib/tls/libpthread.so.0
 并且出现 L_mutex_lock_35 ()
   可能是出现死锁的情况。
   也可能是boost的编译链接过程中没用到 -pthread 选项,而是用了-lpthread选项可能出现这种情况。
   或者boost的单线程版本和多线程版本使用错误。


解决方案:

    大部分的情况下是死锁。而内存错误的几率很小。

    1、内存错误。

              用valgrind检测程序的内存,(valgrind可以检测各种内存问题,如内存泄漏,内存越界等)
   2、死锁。

          2.1)用-g选项编译程序。

         2.1)用【pstack   <进程id>】 命令就可以看到当前程序运行的堆栈,从而看出程序死锁在哪行代码。再接下来把代码改了,就完了

相关文章推荐

一个 Linux 上分析死锁的简单方法

内容 简介 产生死锁的四个必要条件 使用 pstack 和 gdb 工具对死锁程序进行分析 总结 参考资料 简介: 本文主要介绍一种在 Linux 上分析死锁问题的简单...

__lll_mutex_lock_wait的错误原因

1. x86_64栈(glib 2.4): (gdb) bt #0  0x00002b9405ea1c38 in __lll_mutex_lock_wait () from /lib64/li...

Linux开发调试经验整理(二)——信号处理函数陷阱:调用malloc导致死锁

关于信号处理signal()、sigaction()等的使用,相信很多人都已熟悉。 这里主要想讲一下信号处理函数使用上的一个常见陷阱:信号处理函数必须是可重入函数。如果信号处理函数不可重入,那么可能导...
  • icycode
  • icycode
  • 2015年11月04日 23:18
  • 4799

linux程序lock_wait_private死锁问题

http://www.cnblogs.com/liuhao/p/3756536.html 一个DBA同事昨天在执行一个命令行工具的时候发现程序hang住,问题挺有意思,值得记录下...

localtime死锁——多线程下fork子进程

介绍localtime非信号安全,并且在多线程下,fork子进程出现死锁的原因

GDB调试多线程

1.进入gdb试图 2.attach进程 3.

【那些年遇到的面试题】死锁

 死锁 (deallocks): 是指两个或两个以上的进程(线程)在执行过程中,因争夺资源而造成的一种互相等待的现象,若无外力作用,它们都将无法推进下去。此时称系统处于死锁状态或系统产生了死锁,这...

内存释放时的死锁bug导致lock_wait

http://www.chawenti.com/articles/6761.html 通常我们认为一旦内存写溢出,程序就很容易崩溃。所以服务器上通常会对一些重要进程做脚本保护,一...

phread_con_wait和pthread_mutex_lock实现的生产者消费者模型

条件变量是利用线程间共享的全局变量进行同步的一种机制, 主要包括两个动作:一个线程等待"条件变量的条件成立"而挂起; 另一个线程使"条件成立"(给出条件成立信号)。 为了防止竞争,条...

C++11中的mutex, lock,condition variable实现分析

本文分析的是llvm libc++的实现:http://libcxx.llvm.org/ C++11中的各种mutex, lock对象,实际上都是对posix的mutex,condition的封装。不...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:__lll_mutex_lock_wait出现的分析
举报原因:
原因补充:

(最多只允许输入30个字)