SegFault в ferror при вызове BZ2_bzRead в gdb, но не в valgrind

Я использую библиотеку, которая, кажется, читает из сжатого файла построчно через буфер. Кажется, что происходит сбой в BZ2_bzRead в GDB, но не в Valgrind, когда у меня есть 3 экземпляра таких объектов чтения, читающих разные файлы. Я проверил этот буфер, указатель файла действителен в точке вызова функции в GDB.

Чтобы воспроизвести ошибку, я должен создать несколько фиктивных объектов, используя new в моем коде, и после определенных фиксированных элементов это, похоже, не работает. Если я не делаю этого, то, кажется, работает отлично.

Сначала я подумал, что я каким-то образом испортил кучу, но, похоже, valgrind не улавливает ничего подобного в memcheck. это только сообщает о некоторых неинициализированных вызовах на fabs и lround (кажется, что нет такого параметра, насколько я мог бы сказать).

Есть ли способ предотвратить segfault в ferror и перехватить его заранее, используя try catch или valgrind или gdb или какой-то другой механизм, чтобы увидеть нарушения памяти?

0

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …