Для windows есть прикольный способ отладки перезаписи кучи
https://docs.microsoft.com/en-us/windows-hardware/drivers/debugger/gflags
При этом способе менеджер кучи вставляет страницы недоступные для чтения/записи между каждым елементом кучи, поэтому как только кто-то попытается перезаписать что-либо сработает access violation и мы сразу учидим в креше кто именно пишет, а значит где проблема. Этот подход хорош еще тем, что его можно использовать в продакшене. Да памяти будет использоваться больше, но зато оно будет не намного сильнее тормозить и при этом проблему удастся найти сразу.
Если ли аналог этого подхода для Linux ?
Я знаю про valgrind, люблю его итд. Но его нельзя использовать на продакшене — это тестовый тул все-таки.
Здравствуйте, Jakop, Вы писали:
J>Для windows есть прикольный способ отладки перезаписи кучи https://docs.microsoft.com/en-us/windows-hardware/drivers/debugger/gflags
J>При этом способе менеджер кучи вставляет страницы недоступные для чтения/записи между каждым елементом кучи, поэтому как только кто-то попытается перезаписать что-либо сработает access violation и мы сразу учидим в креше кто именно пишет, а значит где проблема. Этот подход хорош еще тем, что его можно использовать в продакшене. Да памяти будет использоваться больше, но зато оно будет не намного сильнее тормозить и при этом проблему удастся найти сразу.
J>Если ли аналог этого подхода для Linux ?
J>Я знаю про valgrind, люблю его итд. Но его нельзя использовать на продакшене — это тестовый тул все-таки.
Есть addesss sanitizer , намного быстрее valgrind,
я бы рекомендовал включить все sanitizer и потестировать,
хотя все-таки это не для production, но для подачи реальной нагрузки подходит.