小编dse*_*ert的帖子

gdb:无法找到新线程:系统更新后的一般错误

我在ARM板上运行基于OpenEmbedded的Linux,我的应用程序正在运行.我曾经运行内核2.6.35,gdb 6.8和gcc 4.3.最近我将系统更新到内核2.6.37,gdb 7.4(也试过7.3)和gcc 4.6.

现在,我的应用程序不能再调试(在ARM板上),每当我尝试在gdb中运行它时,我得到错误"gdb:找不到新线程:泛型错误".该应用程序使用pthreads并链接到pthreads(readelf将libpthread.so.0列为依赖项).到目前为止我发现的建议解决方案都建议链接到我已经在做的pthread.我发现的另一个建议是使用LD_PRELOAD =/lib/libpthread.so.0,这对我没有任何影响.

调试应用程序的x86版本没有问题.

编辑:要回答第一个答案中提出的问题,我在目标(ARM)上使用gdb,即没有交叉gdb.我还没有剥离libpthread.so.0(/lib/libpthread-2.9.so:ELF 32位LSB共享对象,ARM,版本1(SYSV),动态链接(使用共享库),用于GNU/Linux 2.6. 16,未剥离).glibc保持在2.9版本,更新包括重新编译整个linux映像

EDIT2:删除/ lib/libthread-db*允许调试(带有后续警告,显然某些功能不起作用)

EDIT3:使用set debug libthread-db 1我得到:

Starting program: /home/root/app
Trying host libthread_db library: libthread_db.so.1.
Host libthread_db.so.1 resolved to: /lib/libthread_db.so.1.
td_ta_new failed: application not linked with libthread
thread_db_load_search returning 0
Trying host libthread_db library: libthread_db.so.1.
Host libthread_db.so.1 resolved to: /lib/libthread_db.so.1.
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/libthread_db.so.1".
warning: Unable to set global thread event mask: generic error
Warning: find_new_threads_once: find_new_threads_callback: cannot get thread info: generic error …
Run Code Online (Sandbox Code Playgroud)

gdb arm pthreads

5
推荐指数
1
解决办法
7302
查看次数

标签 统计

arm ×1

gdb ×1

pthreads ×1