【问题标题】:What are some common ways to debug segmentation faults in multi-threaded c++ applications?在多线程 c++ 应用程序中调试分段错误的常用方法有哪些?
【发布时间】:2012-03-04 16:31:51
【问题描述】:

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

在 C++ 中调试多线程应用程序时,有哪些好的技巧可以使用?

【问题讨论】:

  • 我想你会在programmers.stackexchange.com上得到更多的答案
  • 与调试任何其他段错误的方式相同。

标签: c++ debugging segmentation-fault


【解决方案1】:

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

【讨论】:

    【解决方案2】:

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

    【讨论】:

      【解决方案3】:

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2011-01-08
        • 2011-12-29
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-03-23
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多