утилита, выискивающая неправильные close
От: DmitryShm Россия  
Дата: 13.03.15 20:18
Оценка:
Подскажите пожалуйста утилиту под linux, которая подсказывала бы неправильные вызовы close на уже закрытых дескрипторах. Недавно в проекте очень неприятный баг нашли, когда данные "читались" из файла, дескриптор которого ранее был ошибочно закрыт.

Последовательность воспроизведения ошибки такая. В некой забагованной библиотеке вызывается open для работы с портом ввода-вывода устройства. Когда работа завершается, вызывается соотв. close. Потом тот же самый дескриптор (по значению) перевыдается по вызову fopen в другой части программы, там читаются данные из файла. Во время чтения этих данных, по ошибке, в забагованной бибилиотеке вызывается close по тому же (по значению) дескрипотру. Из файла начинает читаться мусор.

Было бы неплохо иметь утилиту под linux, которая обнаруживала подобные ошибке в заданном процессе. Например мы не нашли опции у valgrind, которые находили бы такие огрехи.
c c++ i/o
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.