valgrind报错VEX temporary storage exhausted

valgrind的使用请参考: 使用valgrind进行内存泄漏和非法内存操作检测

最近在使用valgrind进行内存泄漏检测是时,竟然报错,如下:

VEX temporary storage exhausted.
Pool = TEMP,  start 0x3967c4e8 curr 0x39b387b8 end 0x39b41027 (size 5000000)

vex: the `impossible' happened:
   VEX temporary storage exhausted.
Increase N_{TEMPORARY,PERMANENT}_BYTES and recompile.
vex storage: T total 541066736 bytes allocated
vex storage: P total 640 bytes allocated

valgrind: the 'impossible' happened:
   LibVEX called failure_exit().

host stacktrace:
==21606==    at 0x3805DB16: ??? (in /usr/lib/valgrind/memcheck-amd64-linux)
==21606==    by 0x3805DC24: ??? (in /usr/lib/valgrind/memcheck-amd64-linux)
==21606==    by 0x3805DE51: ??? (in /usr/lib/valgrind/memcheck-amd64-linux)
==21606==    by 0x3805DE7A: ??? (in /usr/lib/valgrind/memcheck-amd64-linux)
==21606==    by 0x38077772: ??? (in /usr/lib/valgrind/memcheck-amd64-linux)
==21606==    by 0x3811C718: ??? (in /usr/lib/valgrind/memcheck-amd64-linux)
==21606==    by 0x3811C784: ??? (in /usr/lib/valgrind/memcheck-amd64-linux)
==21606==    by 0x382E2F2A: ??? (in /usr/lib/valgrind/memcheck-amd64-linux)
==21606==    by 0x3826C644: ??? (in /usr/lib/valgrind/memcheck-amd64-linux)
==21606==    by 0x3811A0A4: ??? (in /usr/lib/valgrind/memcheck-amd64-linux)
==21606==    by 0x38079B97: ??? (in /usr/lib/valgrind/memcheck-amd64-linux)
==21606==    by 0x380ACDCA: ??? (in /usr/lib/valgrind/memcheck-amd64-linux)
==21606==    by 0x380AE9B0: ??? (in /usr/lib/valgrind/memcheck-amd64-linux)
==21606==    by 0x380BDCBC: ??? (in /usr/lib/valgrind/memcheck-amd64-linux)

sched status:
  running_tid=1

其实这是一个libVEX的错误,临时的解决办法就是,使用valgrind时,添加命令行参数

--vex-guest-max-insns=25

问题解决。


参考:https://bugs.kde.org/show_bug.cgi?id=375839#c6

你可能感兴趣的:(Linux)