Привет всем, у меня есть десктопное приложение, которое вылетает, когда происходят какие-то сложные расчеты.
Можно ли как-то протестировать это, т.е узнать сколько памяти есть, какие места, может оно какие-то сторонние процедуры запускает?
Вообще какие варианты в тестировании могут быть?
Вам нужен набор утилит Sysinternals Suite (
https://docs.microsoft.com/en-us/sysinternals/downloads/sysinternals-suite).
Внутри есть утилита procdump.
Что с ней делать:
1) Запускаете своё приложение и пока ничего в нём не делаете.
2) Запускаете консоль с правами администратора.
3) Запускаете procdump со следующими параметрами:
procdump -e -ma <PID>
PID процесса можно узнать через Task Manager или Process Explorer. Вам нужен PID тестируемого приложения.
4) Воспроизводите проблему. Когда приложение упадёт, procdump снимет дамп памяти процесса на момент падения.
Что делать с этим дампом:
1) Устанавливаете себе WinDBG. Его можно найти в Windows SDK.
2) Подключаете отладочные символы от тестируемого приложения.
3) Загружаете собранный дамп.
4) Дальше открываете стеки всех потоков и находите поток, в котором произошло падение.
5) В стеке будет прямо указана причина падения.