Если вы не можете использовать Valgrind, чтобы выяснить, где ваша память повреждена из-за большой нагрузки, которую она вызывает, вы все равно можете протестировать с более легкими решениями.
Для серверного приложения, где Valgrind не был применим (поскольку платформа была на Solaris 8), у меня был довольно хороший результат с mpatrol (http://mpatrol.sf.net), но особенно с dmalloc (http://dmalloc.com).
В некоторой степени вы можете использовать их без перекомпиляции (просто перекомпоновка для dmalloc, предварительная загрузка библиотеки для mpatrol). Они заменят примитивы памяти для выполнения дополнительных проверок использования памяти (неверный аргумент для этих примитивов, чтение по одному, повреждение кучи, ...) Некоторые из этих проверок будут запущены именно тогда, когда проблема возникает, в то время как другие будет запущен немного позже, чем фактический плохой код. Настроив, какие проверки включены, и, когда применимо, частоту проверки, вы можете работать почти на полной скорости, выполняя основные проверки.
Я рекомендую перекомпилировать с dmalloc, чтобы получить так называемый 'FUNC_CHECK', для меня это добавило много точности в обнаружении ошибок с незначительными затратами на производительность.