SegFault在gdb中调用Gdb中的BZ2_bzRead但不在valgrind中调用

时间:2015-12-11 19:41:24

标签: c++ gdb valgrind heap-corruption bzip2

我正在使用一个库,它似乎通过缓冲区逐行读取压缩文件。它似乎在gdb中的BZ2_bzRead中崩溃但在valgrind中没有崩溃,因为我有3个这样的读取器对象实例读取不同的文件。我检查过缓冲区,文件指针在gdb中的函数调用点都是有效的。

为了重现错误,我必须在我的代码中使用new创建一些虚拟对象,并且在某些固定元素之后,这似乎失败了。如果我不这样做,那么它似乎运行得非常好。

起初,我认为我以某种方式腐败了堆,但是valgrind似乎没有在memcheck中找到任何这样的东西。它只报告了fabs和lround上的一些未初始化的调用(据我所知,似乎没有任何这样的参数)。

有没有办法防止pyror中的segfault并使用try catch或valgrind或gdb或其他一些机制来捕获它以查看内存违规?

0 个答案:

没有答案