【问题标题】:What free tools or strategies can help debug a multi-threading corruption bug?哪些免费工具或策略可以帮助调试多线程损坏错误?
【发布时间】:2010-04-30 00:35:00
【问题描述】:

我有一个多线程的客户端服务器应用程序。服务器端失败,std::list 损坏导致 SEGV。我怀疑存在某种跨线程计时问题,两个线程同时更新 std::list 并导致它被损坏。

请建议免费工具来追踪这一点或可能有帮助的策略。

【问题讨论】:

    标签: multithreading segmentation-fault stdlist


    【解决方案1】:

    如果您知道由于并发访问而损坏的共享数据结构,则在数据结构上放置一个互斥锁,以便一次只能访问一个线程,然后再试一次。

    您需要确保并发线程不能更新任何共享数据。多线程读取是可以的,但需要注意多线程读取和一个或多个写入。

    您能指定您使用的操作系统和编译器吗?

    【讨论】:

    • 我有一个互斥锁,这就是为什么我对为什么会发生损坏感到困惑。某些东西的行为不像我想的那样,因此我需要工具的帮助来追踪它。我正在使用 g++ v3.4.6 和 Centos 4。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-04-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多