2016-01-25 75 views
0

我做了powershell腳本,用WinDbg調試.dmp文件。 下面是部分WinDbg的運行時:WinDbg跳過所有消息,同時調試轉儲

$arguments = '-y srv*c:\symbols*https://msdl.microsoft.com/download/symbols -z ' + $dmpfile + ' -c ".ecxr; kc; q" -logo ' + $logfile 
      Start-Process -wait $windbg $arguments 

但有時我遇到喜歡的消息: 「的命令行參數不能指定多於一種調試啓動」和我的腳本停止,不能處理。我需要跳過消息並繼續下一個轉儲文件。 如何運行WinDbg來調試minidump文件並跳過這些消息?

+2

嘗試使用雙引號轉義$ dmpfile。 ... bols -z「'+ $ dmpfile +'」-c「.e ... – kerem

+0

你的字符串'$ arguments'中有一個不成對的雙引號,我計數爲3.我建議看看'$ arguments'看起來似乎是如何導致這個問題。 – Matt

+0

@kerem沒有幫助 –

回答

2

把所有的爭論在一個txt文件,並把它作爲一個腳本文件,-c ,這樣你就不必用引號匹配

輸出樣本腳本文件,我在一個隨機用來奮鬥轉儲和記錄文件的內容

PS C:\Users\HP\Documents> cat .\script.txt 
.logopen /t 
.sympath "E:\symbols" 
lm 
.ecxr 
kc 
q 
PS C:\Users\HP\Documents> ls *.dmp  
-a---   1/26/2016 12:57 AM  961218 test.dmp  
PS C:\Users\HP\Documents> ls *.log 
PS C:\Users\HP\Documents> Start-Process -wait cdb.exe '-z test.dmp -c "$$>a< script.txt"' 
PS C:\Users\HP\Documents> ls *.log  
-a---   1/26/2016 1:15 AM  3416 dbgeng_0bb4_2016-01-26_01-15-58-593.log 
PS C:\Users\HP\Documents> grep -v def .\dbgeng_0bb4_2016-01-26_01-15-58-593.log 
Opened log file 'dbgeng_0bb4_2016-01-26_01-15-58-593.log' 
Symbol search path is: E:\symbols 
start end  module name 
768a0000 76969000 user32  (pdb symbols)   e:\symbols\user32.pdb\xxx\user32.pdb 
77b50000 77c8c000 ntdll  (pdb symbols)   e:\symbols\ntdll.pdb\xxx\ntdll.pdb 
Minidump doesn't have an exception context 
Unable to get exception context, HRESULT 0x80004002  
ntdll!KiFastSystemCallRet 
user32!NtUserGetMessage 
*** WARNING: Unable to verify checksum for notepad++.exe 
*** ERROR: Module load completed but symbols could not be loaded for notepad++.exe 
user32!GetMessageW 
WARNING: Stack unwind information not available. Following frames may be wrong. 
notepad__ 
notepad__ 
kernel32!BaseThreadInitThunk 
ntdll!__RtlUserThreadStart 
ntdll!_RtlUserThreadStart 
quit: