目前我正在做以下分析内存泄漏:
-
我用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
命令。
-
在这个外部程序中,启动另外两个命令。(如前所述,启动一个命令很容易
here
但是两个呢?)如果这是不可能的:
托管代码中设置断点
允许使用分号连接命令,以便可以跳过。为了执行这个操作,我正在考虑这个技巧,上面提到的url中解释了这一点。
-
等待一切完成。这可以用
this link
.
-
读取输出。
我的问题是:是否可以读取输出?我知道可以等待命令完成,验证结果是否正常,或者是否有错误,但是我找不到读取命令抛出的实际输出的方法。
有人知道这是否可行吗?