我有一个运行 eCos 的 MIPS 目标,它使用多个线程。对于调试,我使用 gdb 7.5 和 JTAG 探针。
我如何从 GDB 检查和回溯非当前线程。我确实有基线程地址,以及来自备用线程的程序计数器(如果需要,我可以正确找到其他信息)。
由于 gdb 不知道 eCos,因此诸如“信息线程”之类的命令不起作用。所以我很可能不得不手动在gdb中使用哪个线程上下文......
我们使用 Eclipse 的Code Confidence 工具,它允许通过 JTAG 进行 eCos 线程感知调试。它不是免费的,但运行良好,与新的 Eclipse 版本保持同步,John Dallaway 提供的支持非常好。如果您正在做任何认真的 eCos 开发,我强烈推荐它。