Как лучше всего найти повреждение кучи, которое возникает только при тестировании производительности?

Программное обеспечение, над которым я работаю (написанное на C ++), в настоящий момент имеет проблему повреждения кучи. Наша команда по тестированию производительности продолжает получать ошибки WER, когда количество пользователей, вошедших в систему, достигает определенного порогового значения, но дампы, которые они мне дали, просто показывают повреждения в неинтересных областях (например, когда std :: string освобождает базовую память) .

Я пробовал использовать Appverifier, и это вызвало ряд проблем, которые я исправил. Однако сейчас я нахожусь в ситуации, когда тестировщики могут максимально загрузить машину с помощью Appverifier и получить чистый запуск, но все же получить повреждение кучи при работе без Appverifier (я думаю, поскольку они могут получить больше пользователей и т.д. без). Это означало, что мне не удалось получить дамп, который действительно показывает проблему.

Есть ли у кого-нибудь еще идеи относительно полезных методов или технологий, которые я могу использовать? Я провел как можно больше анализа дампов повреждений кучи без приложения-верификатора, но я не вижу общих тем. Ни один поток не делает ничего интересного одновременно с аварийным завершением работы, а аварийный поток невиновен, что заставляет меня думать, что повреждение произошло некоторое время назад.

9
задан Benj 4 August 2011 в 12:22
поделиться