小编use*_*453的帖子

setcontext() Valgrind 读取大小 8 无效

我目前面临一个非常奇怪的问题。我正在构建一个库并将其链接到我的程序。一切运行良好,没有分段错误(也用 gdb 检查),但是当我用 Valgrind 运行程序时,它会变得疯狂,行如下:

==11972== Invalid read of size 8
==11972==    at 0x509509C: setcontext (setcontext.S:73)
==11972==    by 0x509764F: ??? (in /lib/x86_64-linux-gnu/libc-2.15.so)
==11972==  Address 0x541f060 is 128 bytes inside a block of size 936 alloc'd
==11972==    at 0x4C2B3F8: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==11972==    by 0x402090: environment_get (env.c:99)
==11972==    by 0x401ED6: environment_new (env.c:36)
==11972==    by 0x40124B: thr_new (thr.c:156)
==11972==    by 0x400EBE: main (itest1.c:31)
Run Code Online (Sandbox Code Playgroud)

但程序运行良好,并且setcontext有一个正确分配的参数,没有任何问题。我有什么理由担心这些线条吗?

谢谢

c valgrind

5
推荐指数
1
解决办法
897
查看次数

标签 统计

c ×1

valgrind ×1