gdb:找不到新线程:一般错误

当我运行的GDB针对加载链接到pthread的.so的程序时,GDB报告错误“无法找到新线程:一般错误”。

请注意,我运行的可执行文件没有与pthreads链接。

任何线索?

$ gdb --args lua -lluarocks.require
GNU gdb (GDB) 7.0-ubuntu
Copyright (C) 2009 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later 
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.  Type "show copying"
and "show warranty" for details.
This GDB was configured as "x86_64-linux-gnu".
For bug reporting instructions, please see:
<http://www.gnu.org/software/gdb/bugs/>...
Reading symbols from /usr/bin/lua...(no debugging symbols found)...done.
(gdb) run
Starting program: /usr/bin/lua -lluarocks.require
Lua 5.1.4  Copyright (C) 1994-2008 Lua.org, PUC-Rio
> require 'ev'
[Thread debugging using libthread_db enabled]
Cannot find new threads: generic error
(gdb) q
A debugging session is active.

    Inferior 1 [process 4986] will be killed.

Quit anyway? (y or n) y

这个函数被调用require 'ev'

http://github.com/brimworks/lua-ev/blob/master/lua_ev.c#L25-65

有关我的系统的其他信息:

$ uname -a
Linux localhost 2.6.31-20-generic #58-Ubuntu SMP Fri Mar 12 04:38:19 UTC 2010 x86_64 GNU/Linux
$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description:    Ubuntu 9.10
Release:    9.10
Codename:   karmic

这也适用于:

LD_PRELOAD = / lib / libpthread.so.0 gdb --args ./app


64位的Ubuntu用户应该这样做:

LD_PRELOAD=/lib/x86_64-linux-gnu/libpthread.so.0 gdb --args ./app

您也可以在包含以下文本的主目录中创建.gdbinit

set env LD_PRELOAD /lib/libpthread.so.0
链接地址: http://www.djcxy.com/p/19063.html

上一篇: gdb: Cannot find new threads: generic error

下一篇: How do YOU manage Perl modules when using a package manager?