c - 多线程调试C程序

标签 c debugging gdb

我想调试运行多个 TCP 服务器线程的 C 程序。我无法设置复杂的调试工具,因为我必须在嵌入式 linux(busy box)中进行调试。我希望它能原生支持 gdb。

所以我开始使用 gdb。一旦我输入运行,服务器似乎在后台运行,但 gdb 返回提示和“程序接收信号 SIG64(实时事件 64)”消息(我猜与 pthread 相关)。我知道它必须与主线程 fork 成几个线程有关。但我不知道如何调试它。任何起点都会很有帮助。

此外,是否有其他“跟踪”,例如调试器,我可以使用占用空间小的东西?

请帮忙

最佳答案

大多数情况下,使用调试器调试多线程应用程序很困难。最好的方法是要么尝试将错误隔离到单线程情况,要么在可疑位置使用调试打印,直到发现错误。

这对您的具体问题没有帮助,但这是我在使用多线程应用程序(尤其是嵌入式应用程序)时学到的最佳建议。

关于c - 多线程调试C程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7412540/

相关文章:

javascript - 有没有办法查看是什么在操纵 HTML 节点?

linux - QEMU 调试::警告:TCG 不支持请求的功能:CPUID.01H:ECX

c++ - std::vector _M_start 和 _M_finish 相同

gdb - 如何从核心转储(没有 GDB)中读取帧?

debugging - 我可以将哪些标志或环境变量传递给 Clang 以在 BSD 和 Linux 上进行最大程度的调试?

c - 如何使用时间从子级到父级的所有文件写入?

c - 随机对角二维数组输入

java - 如何使用maven和junit通过eclipse调试selenium webdriver

c++ - 从函数返回 'c_str'

c - 如何从二进制文件读取到字符串/数组和 c 中的 int?