Мы пытались выследить некоторые проблемы с повреждением кучи в наших многопоточных приложениях на C++. В качестве одного из методов мы попытались добавить -lmcheck в строку библиотек приложения. Это приводит к сбою приложения с явным повреждением кучи в относительно коротком порядке.опция «-lmcheck» glibc и многопоточность
В нашем приложении используется как malloc/free, так и new/delete (в зависимости от ситуации).
Одна из наших команд задавалась вопросом, действительно ли -lmcheck был потокобезопасным и помещал мьютекс вокруг всех вызовов malloc/free. Аварии ушли.
Кто-нибудь знает, должен ли -lmcheck поддерживать многопоточность? Интересно, просто ли мы неправильно понимаем инструмент, который мы пытаемся использовать, и тем самым вызывая ненужное беспокойство.
Интересно. Означает ли это, что «исправление» опросчика, хотя оно, по-видимому, предотвратило аварии, на самом деле не является действительным, и что mcheck не может помочь ему с его приложением? – 2008-11-24 18:36:48