【发布时间】:2011-09-12 12:41:31
【问题描述】:
我正在使用 Eclipse 为 ARM 处理器开发和远程调试一些软件。不幸的是,我正在编写的软件是多线程的,我无法调试它。如果我在线程代码中放置一个断点,我会收到以下消息:
Child terminated with signal = 5
Child terminated with signal = 0x5
GDBserver exiting
在做了相当多的谷歌搜索之后,我找到了一个建议使用这个的“解决方案”:
strip --strip-debug libpthread.so.0
不幸的是,我仍然收到终止错误。
非常感谢您帮助解决这个问题!
谢谢!
【问题讨论】:
-
我不确定这是否与多线程有关,因为通常使用 gdb 调试它通常可以正常工作。你是怎么调用strip命令的。 cc1.exe 和 gcc.exe 前缀很奇怪。我会在 bash 中作为普通命令调用。
-
@dmeister 这是我找到“解决方案”http://sourceware.org/bugzilla/show_bug.cgi?id=8963 的站点我调用它的方式是在 eclipse 中的 C 构建器的其他标志部分中添加,导致调用为:
arm-none-linux-gnueabi-gcc.exe -O0 -g3 -Wall -c -fmessage-length=0 strip --strip-debug libpthread.so.0 -
您可以将其作为单独的调用尝试,而不是将其添加到构建器中。请注意,这可能需要 root 权限,因为它会更改系统文件 (lbpthread.so.0)。
-
@dmeister 我将其添加为
strip --strip-debug libpthread.so.0作为构建后调用,但我一直收到与Child terminated with signal = 5相同的错误消息 -
我也尝试将它添加到 .gdbinit 中,但也没有用。我确实发现了这个额外的错误:
gdb: error initializing thread_db library
标签: c multithreading eclipse gdb gdbserver