В настоящее время я делаю следующее для анализа утечки памяти:
- Я открываю оба дампа, используя Windbg.
- Я запускаю скрипт heap_stat, скрипт на основе Python длясоставляя сводку объектов, используемых в куче.
- Я копирую результаты обоих сценариев heap_stat и вставляю их в лист Excel, где анализируются результаты.
Я хотел бы автоматизировать это, начиная с окончательного листа Excel, используя VBA, следующим образом:
- Запустите два экземпляра внешней программы (
Windbg.exe
) и откройте с них оба дампа. - В этих
Windbg
экземплярах запустите необходимые команды (.load pykd.pykd
, затем .py heap_stat.py -stat
). - Дождитесь завершения сценария
heap_stat.py
и скопируйте результат вЛист Excel. - Добавьте некоторые необходимые
Match()
функции рабочего листа и формулы Excel для завершения анализа.
Чтобы сделать это, мне нужно:
- Запустить внешнюю программу из VBA.Это можно сделать с помощью команды
Shell
. - Внутри этой внешней программы запустите две другие команды.(Запуск одной команды прост, как объяснено здесь , но как насчет двух?) В случае, если это невозможно:
Windbg
позволяет объединять команды, используя точку с запятой, чтобы их можно было пропустить.Чтобы выполнить это, я думаю об уловке, объясненной в упомянутом URL. - Подождите, пока все будет закончено.Это можно сделать, используя эту ссылку .
- Прочитать вывод.
Моя проблема: возможно ли прочитать вывод?Я знаю, что можно дождаться завершения команды, чтобы убедиться, что результат в порядке или есть ошибка, но я не нахожу способ прочитать фактический результат, выданный командой.
Кто-нибудь знает, возможно ли это (легко) осуществить?