同じexeの複数のインスタンスのpidを列挙する単純なpowershellスクリプトを作成し、以下のように例外が発生したときにダンプしました
脚本
$b=($a= Get-Process fkiss).count
0..($b-1)|%{$c = ("-e 1 -n 10 {0}" -f $a[$_].Id);Start-Process procdump $c}
このコードを2回コンパイルしてダブルクリックしました
#include <stdio.h>
#include <windows.h>
void main (void){
int i=0,a=2,b=0;
while (i < 20) {
__try {
Sleep(6000);
printf("%d\n",a/b);
}__except(EXCEPTION_EXECUTE_HANDLER) {
b=2;
printf("%d\n",a/b);
Sleep(6000);
}
i++;
b=0;
}
}
ディレクトリに20個のダンプを取得しました
powershell -c (get-childitem *.dmp).count
20
そして、それらは使用する両方のインスタンスを反映します
for %I in (dir *.dmp) do dumpchk %I | grep -i "-e 1 -n "
出力
>dumpchk fkiss.exe_160126_045712.dmp | grep -i "-e 1 -n "
Loading dump file fkiss.exe_160126_045712.dmp
*** "E:\sysint\procdump.exe" -e 1 -n 10 3084
*** "E:\sysint\procdump.exe" -e 1 -n 10 3084
>dumpchk fkiss.exe_160126_045714.dmp | grep -i "-e 1 -n "
Loading dump file fkiss.exe_160126_045714.dmp
*** "E:\sysint\procdump.exe" -e 1 -n 10 3108
*** "E:\sysint\procdump.exe" -e 1 -n 10 3108
>dumpchk fkiss.exe_160126_045724.dmp | grep -i "-e 1 -n "
Loading dump file fkiss.exe_160126_045724.dmp
*** "E:\sysint\procdump.exe" -e 1 -n 10 3084
*** "E:\sysint\procdump.exe" -e 1 -n 10 3084