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
问题解决。
作者:马 岩(Furzoom) (http://www.cnblogs.com/furzoom/)
版权声明:本文的版权归作者与博客园共同所有。转载时请在明显地方注明本文的详细链接,未经作者同意请不要删除此段声明,感谢您为保护知识产权做出的贡献。
版权声明:本文的版权归作者与博客园共同所有。转载时请在明显地方注明本文的详细链接,未经作者同意请不要删除此段声明,感谢您为保护知识产权做出的贡献。