【问题标题】:ThreadSanitizer only prints 2 framesThreadSanitizer 只打印 2 帧
【发布时间】:2018-12-31 07:28:04
【问题描述】:

由于某种原因,ThreadSanitizer 在我的日志中生成的调用堆栈总是正好是两帧(#0、#1)。有没有限制帧数的隐藏设置?

问候

【问题讨论】:

  • 使用它时,我会在错误转储中获得所有堆栈帧。没有隐藏的“仅两帧”设置。您能否提供minimal reproducible example 以及您正在使用的编译器以及您传递给编译器的确切命令行选项的信息,以便我们尝试重现。?
  • 我从来没有用过这个,但我找到了文档。它有一个名为“历史大小”的选项,默认为两个。也许这就是你要找的。 github.com/google/sanitizers/wiki/ThreadSanitizerFlags
  • 我很想知道这是否解决了您的问题...

标签: c++ gcc thread-sanitizer


【解决方案1】:

简而言之,堆栈中有一个库从第 2 帧开始就没有被检测。这似乎导致 Tsan 也忽略了堆栈的其余部分。

历史设置没有帮助。

还是谢谢。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-04-11
    • 2022-11-26
    • 1970-01-01
    • 2018-04-23
    • 1970-01-01
    • 2019-03-31
    • 1970-01-01
    • 2017-12-25
    相关资源
    最近更新 更多