首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用Valgrind时的一般保护故障

使用Valgrind时的一般保护故障
EN

Stack Overflow用户
提问于 2020-05-27 14:58:47
回答 1查看 463关注 0票数 0

为没有添加代码而提前道歉,因为我没有权限这样做。

我有一个程序,在启动Valgrind massif工具后,在不同的时间范围内从2-10秒开始,在某些系统上崩溃。使用gdb运行相同的应用程序或按原样运行应用程序不会导致任何崩溃。

这工作得很好- valgrind --tool=massif --pages-as-heap=yes ./<prog> <prog_args>

这会导致程序中止,并显示SIGSEGV valgrind --tool=massif --stacks=yes ./<prog> <prog_args>

当程序以Valgrind终止时,回溯顶部的函数如下所示,行号指向带有标志的if条件语句:

代码语言:javascript
复制
<enum_type>
tmr_fn(ctx *ctx, tmr_t *tmr, const char *fn, unsigned int ln)
{
    int ret = ENUM_0
    if (ctx == NULL || tmr == NULL)
        return (ENUM_ERR);

    if (tmr->flags & 0x1) {
        tmr->flags |= 0x2;
        return (0);
    }
...
}

我试着寻找答案,但还没有找到任何有用的东西。任何帮助或指示都将是非常棒的!

EN

回答 1

Stack Overflow用户

发布于 2020-05-28 16:37:22

运行程序时,memcheck指示未初始化的值。我发现tmr结构已经声明了,但是memset还没有完成,并且有一些无用的值。这会导致在释放例程中调用的tmr_fn中出现问题。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62037171

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档