在多线程c ++应用程序中调试分段错误的常用方法有哪些?

时间:2012-03-04 16:31:51

标签: c++ debugging segmentation-fault

我是线程新手,并使用pthread组合了一个基本的命令行应用程序。我使用pthread_create传递一个结构作为最后的参数;启动一个调用“void * thread_routine(void * arg)”的新线程。我做了一些值得注意的观察。       - 该程序并不总是提供相同的结果       - 大约10%的时间程序错误

在c ++中调试多线程应用程序时有哪些好的技巧?

3 个答案:

答案 0 :(得分:0)

注意您的共享内存访问并使用日志记录查找错误。

答案 1 :(得分:0)

Segfault只是冰山的可见部分。这可能是竞争条件的结果,在这种情况下,您应该专注于确保线程正确同步。然后剩余的段错误应该与单线程应用程序不同。

答案 2 :(得分:0)

您可以使用适用于多线程程序的调试支持工具,例如GDB。 看看这些链接: