2011-03-17 25 views
4

我对windbg使用启动脚本,并且想要调试子进程(.childdbg 1)。但是,一旦启用它,我发现windbg会在创建子进程时自动中断。我不知道这是为什么发生的,但这里是我使用的脚本:windbg - 创建子进程时自动继续,并启用.childdbg 1

sxe -c ".echo ********** CLR 1st Chance Exception **********;!pe -nested;.echo ----------- CLRStack ----------;!clrstack;g" clr 
sxe -c ".echo Child Process Created;g" cpr 
sxe -c ".echo Child Process Exited;g" epr 
.load psscor2.dll 
.childdbg 1 

我通过以下命令调用此:

windbg.exe -Q -c "$<c:\path\startup.ini" Foo.exe 

最后,这里是在WinDbg中输出:

(1d14.191c): Break instruction exception - code 80000003 (first chance) 
eax=00000000 ebx=00000000 ecx=0022f86c edx=778670b4 esi=fffffffe edi=00000000 
eip=778c04f6 esp=0022f888 ebp=0022f8b4 iopl=0   nv up ei pl zr na pe nc 
cs=001b ss=0023 ds=0023 es=0023 fs=003b gs=0000    efl=00000246 
ntdll!LdrpDoDebuggerBreak+0x2c: 
778c04f6 cc    int  3 

回答

7

使用sxi ibp忽略初始断点事件 您可能还需要忽略进程退出sxi epr

+0

谢谢。看起来像alt-9是我如何在proccesses之间导航。 – JohnW 2011-03-18 02:21:49

+0

还有一个问题 - 我的父应用程序会产生两个孩子。我看到第一个对windbg可见,但第二个未列在'进程和线程'中。但是,Process Explorer将这两个进程显示为父级的子级。多于一个孩子需要其他东西吗? – JohnW 2011-03-18 02:33:13

+1

您也可以使用'|'命令列出/选择一个进程。你应该看到所有的子进程。除非它们已经存在。 – John 2011-03-18 03:58:24