【发布时间】:2011-07-14 14:51:55
【问题描述】:
我正在为嵌入式 Linux 编写 C++ 应用程序。我有一个问题,即在主线程以外的线程中发生的运行时错误(例如未处理的异常和分段错误)未显示在控制台中。在这种情况下,我的应用程序将突然终止而没有任何错误消息。有什么方法可以将错误消息发送到父主线程的默认控制台? (我的嵌入式 linux 不支持gdb)
【问题讨论】:
-
将它们写入日志? - 你可以互斥一个大字符缓冲区,让线程写入它,将它转储到日志中。
-
我可以想象编写一个线程包装器来捕获
unhandled exceptions并将它们写入日志文件,但是应该如何将真正的runtime-errors像segmentation faults捕获/转储到日志文件中? -
@Dudero:Linux 使用一种称为信号处理的机制,通过它可以捕获各种硬件错误。
-
@DeadMG:谢谢,这听起来很有趣,我会用谷歌搜索它:)
标签: c++ multithreading embedded-linux runtime-error