锘??xml version="1.0" encoding="utf-8" standalone="yes"?>亚洲欧洲精品一区二区三区不卡 ,91久久久久久,国产亚洲综合精品http://m.shnenglu.com/woaidongmao/category/16864.html鏂囩珷鍧囨敹褰曡嚜浠栦漢鍗氬錛屼絾涓嶅枩鏍囬鍓嶅姞-[杞創(chuàng)]錛屽洜鍏朵笐闄嬶紝瑙佽皡錛亊zh-cnTue, 10 May 2011 05:33:16 GMTTue, 10 May 2011 05:33:16 GMT60VC6 Release涓嬶紝浜х敓 MiniDump鐨勭紪璇戣緗?/title><link>http://m.shnenglu.com/woaidongmao/archive/2011/05/10/146100.html</link><dc:creator>鑲ヤ粩</dc:creator><author>鑲ヤ粩</author><pubDate>Tue, 10 May 2011 05:05:00 GMT</pubDate><guid>http://m.shnenglu.com/woaidongmao/archive/2011/05/10/146100.html</guid><wfw:comment>http://m.shnenglu.com/woaidongmao/comments/146100.html</wfw:comment><comments>http://m.shnenglu.com/woaidongmao/archive/2011/05/10/146100.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://m.shnenglu.com/woaidongmao/comments/commentRss/146100.html</wfw:commentRss><trackback:ping>http://m.shnenglu.com/woaidongmao/services/trackbacks/146100.html</trackback:ping><description><![CDATA[<p>1銆丟enerate debug蹇呴』閫変笂錛屽惁鍒欐病鏈夎皟璇曚俊鎭?/p> <p><a href="http://m.shnenglu.com/images/cppblog_com/woaidongmao/WindowsLiveWriter/VC6_B498/image_2.png"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://m.shnenglu.com/images/cppblog_com/woaidongmao/WindowsLiveWriter/VC6_B498/image_thumb.png" width="681" height="457"></a> </p> <p> </p> <p>2銆佹妸浼樺寲disable錛屽惁鍒欏鏄撲駭鐢熶唬鐮佸湴鍧鍋忕Щ錛?/p> <p>3銆佺敤program database浜х敓PDB鏂囦歡錛?/p> <p><a href="http://m.shnenglu.com/images/cppblog_com/woaidongmao/WindowsLiveWriter/VC6_B498/image_4.png"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://m.shnenglu.com/images/cppblog_com/woaidongmao/WindowsLiveWriter/VC6_B498/image_thumb_1.png" width="681" height="457"></a> </p> <p> </p> <p>4銆佸皢dll, exe, pdb錛屽姞涓婄増鏈彿錛岄槻姝笅嬈″紑鍙戠紪璇戞椂鎶婅佺殑PDB鍐叉帀銆?/p> <p>5銆佸彂甯冪殑鐗堟湰錛岃緭鍑哄埌涓涓浐瀹氱洰褰曪紝闃叉浜轟負(fù)鍒犻櫎Debug錛?Relase瀵艱嚧涓㈠け</p> <p><a href="http://m.shnenglu.com/images/cppblog_com/woaidongmao/WindowsLiveWriter/VC6_B498/image_6.png"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://m.shnenglu.com/images/cppblog_com/woaidongmao/WindowsLiveWriter/VC6_B498/image_thumb_2.png" width="681" height="457"></a> </p> <p>6銆佸浜庡凡緇忕ǔ瀹氱殑鐗堟湰dll, exe錛岀紪璇戞椂錛屽彲灝嗕紭鍖栧紑鍚傦紙铏界劧鍋剁劧鏈変唬鐮佸湴鍧鍋忕Щ錛屼絾鏄繕鍙互鎺ュ彈錛?/p> <p>7銆佺敓鎴怣iniDump鏃訛紝鐢∕iniDumpWithDataSegs鏂瑰紡錛岃繖鏍鳳紝鍏ㄥ眬鍙橀噺鐨勫間篃鍙煡鐪?/p><img src ="http://m.shnenglu.com/woaidongmao/aggbug/146100.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://m.shnenglu.com/woaidongmao/" target="_blank">鑲ヤ粩</a> 2011-05-10 13:05 <a href="http://m.shnenglu.com/woaidongmao/archive/2011/05/10/146100.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>璋冭瘯Release鍙戝竷鐗堢▼搴忕殑Crash閿欒http://m.shnenglu.com/woaidongmao/archive/2011/05/10/146092.html鑲ヤ粩鑲ヤ粩Tue, 10 May 2011 03:58:00 GMThttp://m.shnenglu.com/woaidongmao/archive/2011/05/10/146092.htmlhttp://m.shnenglu.com/woaidongmao/comments/146092.htmlhttp://m.shnenglu.com/woaidongmao/archive/2011/05/10/146092.html#Feedback0http://m.shnenglu.com/woaidongmao/comments/commentRss/146092.htmlhttp://m.shnenglu.com/woaidongmao/services/trackbacks/146092.htmlSetUnhandledExceptionFilter + StackWalker
 
    榪欎釜鏂規(guī)闇瑕佽嚜宸卞姩鎵嬪線宸ョ▼閲屾坊鍔犱唬鐮佷簡銆傝瀹炵幇涓婇潰鐨勬兂娉曪紝闇瑕佸仛涓や歡浜嬫儏錛?span lang="EN-US">1銆侀渶瑕佸湪crash鏃舵湁鏈轟細(xì)瀵圭▼搴忓爢鏍堣繘琛屽鐞嗭紱2銆佸鍫嗘爤淇℃伅榪涜鏀墮泦銆?span lang="EN-US">
 
    1銆?span lang="EN-US">SetUnhandleExceptionFilter鍑芥暟
 
    Windows騫沖彴涓嬬殑C++紼嬪簭寮傚父閫氬父鍙垎涓轟袱縐嶏細(xì)緇撴瀯鍖栧紓甯革紙Structured Exception錛屽彲浠ョ悊瑙d負(fù)涓庢搷浣滅郴緇熺浉鍏崇殑寮傚父錛夊拰C++寮傚父銆傚浜庣粨鏋勫寲寮傚父澶勭悊錛?span lang="EN-US">SEH錛夛紝鍙互鎵懼埌寰堝璧勬枡錛屽湪姝や笉緇嗚銆傚浜?span lang="EN-US">crash閿欒錛屼竴鑸敱鏈姝e父鎹曡幏鐨勫紓甯稿紩璧鳳紝Windows鎿嶄綔緋葷粺鎻愪緵浜嗕竴涓?span lang="EN-US">API鍑芥暟鍙互鍦ㄧ▼搴?span lang="EN-US">crash涔嬪墠鏈夋満浼?xì)澶勭悊杩欎簺寮傚父锛尀鏄?span lang="EN-US">SetUnhandleExceptionFilter鍑芥暟銆傦紙C++涔熸湁涓涓被浼煎嚱鏁?span lang="EN-US">set_terminate鍙互澶勭悊鏈鎹曡幏鐨?span lang="EN-US">C++寮傚父銆傦級
 
    SetUnhandleExceptionFilter鍑芥暟澹版槑濡備笅錛?span lang="EN-US">
 
    LPTOP_LEVEL_EXCEPTION_FILTER WINAPI SetUnhandledExceptionFilter(
      __in          LPTOP_LEVEL_EXCEPTION_FILTER lpTopLevelExceptionFilter
    );
 
    鍏朵腑 LPTOP_LEVEL_EXCEPTION_FILTER 瀹氫箟濡備笅錛?span lang="EN-US">
 
    typedef LONG (WINAPI *PTOP_LEVEL_EXCEPTION_FILTER)(
        __in struct _EXCEPTION_POINTERS *ExceptionInfo
    );
    typedef PTOP_LEVEL_EXCEPTION_FILTER LPTOP_LEVEL_EXCEPTION_FILTER;
 
    綆鍗曟潵璇達(dá)紝SetUnhandleExceptionFilter鍏佽鎴戜滑璁劇疆涓涓嚜宸辯殑鍑芥暟浣滀負(fù)鍏ㄥ眬SEH榪囨護鍑芥暟錛屽綋紼嬪簭crash鍓嶄細(xì)璋冪敤鎴戜滑鐨勫嚱鏁拌繘琛屽鐞嗐傛垜浠彲浠ュ埄鐢ㄧ殑鏄?_EXCEPTION_POINTERS 緇撴瀯綾誨瀷鐨勫彉閲?span lang="EN-US">ExceptionInfo錛屽畠鍖呭惈浜嗗寮傚父鐨勬弿榪頒互鍙婂彂鐢熷紓甯哥殑綰跨▼鐘舵侊紝榪囨護鍑芥暟鍙互閫氳繃榪斿洖涓嶅悓鐨勫兼潵璁╃郴緇熺戶緇繍琛屾垨閫鍑哄簲鐢ㄧ▼搴忋?span lang="EN-US">
 
    鍏充簬 SetUnhandleExceptionFilter 鍑芥暟鐨勫叿浣撶敤娉曞拰紺轟緥璇峰弬鑰?span lang="EN-US">MSDN銆?span lang="EN-US">
 
 
 
    2銆?span lang="EN-US">StackWalker
    鐜板湪鎴戜滑宸茬粡鏈夋満浼?xì)鍙互鍦?span lang="EN-US">crash涔嬪墠瀵圭▼搴忕姸鎬佷俊鎭繘琛屽鐞嗕簡錛屽彧闇瑕佺敓鎴愬茍淇濆瓨鍫嗘爤淇℃伅灝卞ぇ鍔熷憡鎴愪簡銆?span lang="EN-US">Windows鐨?span lang="EN-US">dbghelp.dll搴撴彁渚涗簡涓涓嚱鏁板彲浠ュ緱鍒板綋鍓嶅爢鏍堜俊鎭細(xì)StackWalk64錛堝湪Win2K浠ュ墠鐗堟湰涓負(fù)StackWalk錛夈傝鍑芥暟澹版槑濡備笅錛?span lang="EN-US">
 
    BOOL WINAPI StackWalk64(
      __in          DWORD MachineType,
      __in          HANDLE hProcess,
      __in          HANDLE hThread,
      __in_out      LPSTACKFRAME64 StackFrame,
      __in_out      PVOID ContextRecord,
      __in          PREAD_PROCESS_MEMORY_ROUTINE64 ReadMemoryRoutine,
      __in          PFUNCTION_TABLE_ACCESS_ROUTINE64 FunctionTableAccessRoutine,
      __in          PGET_MODULE_BASE_ROUTINE64 GetModuleBaseRoutine,
      __in          PTRANSLATE_ADDRESS_ROUTINE64 TranslateAddress
    );
    璇ュ嚱鏁扮殑鍏蜂綋鐢ㄦ硶鍙互鍙傝?span lang="EN-US">MSDN銆傚湪榪欓噷鎺ㄨ崘涓涓墰浜哄啓濂界殑StackWalker錛屽彲浠ョ洿鎺ユ嬁鏉ョ敤錛屽紑婧愮殑銆?span lang="EN-US">StackWalker鎻愪緵浜嗕竴涓熀綾伙紝緇欏嚭浜嗗嚑涓畝鍗曠殑鎺ュ彛錛屽彲浠ユ柟渚垮湴鐢熸垚鍫嗘爤淇℃伅錛屽茍涓旀敮鎸佷竴緋誨垪VC鐗堟湰錛岄潪甯稿ソ鐢ㄣ傛垜浠彲浠ヨ嚜宸卞啓涓涓瓙綾伙紝騫墮噸杞借櫄鍑芥暟OnOutput錛屽氨鍙互灝嗗爢鏍堜俊鎭緭鍑轟負(fù)鐗瑰畾鏍煎紡浜嗐?span lang="EN-US">StackWalker鐨勫湴鍧涓猴細(xì)http://www.codeproject.com/KB/threads/StackWalker.aspx銆?/span>
 
    涓嶈繃瀵逛簬Release鐗堟湰鏉ヨ錛?span lang="EN-US">StackWalk64鍑芥暟鑾峰緱鐨勫爢鏍堜俊鎭湁鍙兘涓嶅畬鏁淬傚鏋滃紓甯告槸鐢?span lang="EN-US">MFC鐨勬ā鍧楁姏鍑猴紝閭d箞鑾峰緱鐨勫爢鏍堝彲鑳界己灝戝墠闈㈣皟鐢ㄦā鍧椾俊鎭傚彟澶栵紝StackWalk64闇瑕佹渶鏂扮殑dbghelp.dll鏂囦歡鏀寔鎵嶈兘宸ヤ綔錛涜姝g‘杈撳嚭crash鐨勫嚱鏁板悕鍜岃鍙鳳紝闇瑕佽pdb鏂囦歡鏀寔銆備互涓婁笉瓚蟲湁鍙兘褰卞搷杈撳嚭淇℃伅鐨勫畬鏁存у拰鏁堟灉錛岃屽浜庡彂甯冨湪澶栫殑紼嬪簭錛岃甯︿笂pdb鏂囦歡鍑犱箮涓嶅彲鑳斤紝鍥犳榪欎釜鏂規(guī)榪樻槸鏈夌己鎲劇殑錛屾瘮杈冮傜敤浜庢湰鍦扮殑release鐗堟湰璋冭瘯銆?span lang="EN-US">
 
褰撴垜浠妸鑷繁鐨?span lang="EN-US">release鐗堟湰紼嬪簭鍙戝竷鍑哄幓浠ュ悗錛屼竴鑸兘鏄湪鐢ㄦ埛鐨勬満鍣ㄤ笂榪愯銆傝繖縐嶆儏鍐典笅錛屽浜庣鍥涚鏂規(guī)錛屽洜涓洪渶瑕?span lang="EN-US">pdb鏂囦歡鎵嶈兘澶熸紜敓鎴愬爢鏍堣皟鐢ㄧ殑鍑芥暟琛屽彿鍙婁唬鐮佽鍙鳳紝鍥犳鏂規(guī)鍥涘彧閫傜敤浜庢湰鍦?span lang="EN-US">release鐗堢殑璋冭瘯錛屽惁鍒欏彧鑳界敓鎴愪笉瀹屾暣鐨勫爢鏍堜俊鎭傚浜庡墠涓夌鏂規(guī)錛屽叾瀹炲彧闇瑕佺敤鎴峰憡鐭ュ穿婧冨湴鍧錛岀劧鍚庡湪鏈湴鏌ユ壘crash鍦板潃灝卞彲浠ヤ簡錛屼絾鏄畾浣?span lang="EN-US">crash鐨勮繃紼嬮潪甯鎬笉鏂逛究錛屽鏋?span lang="EN-US">crash鐨勬儏鍐墊瘮杈冨錛屽墠涓夌鏂規(guī)閮戒笉鍚堥傘傝屼笖錛屽墠涓夌鏂規(guī)鍧囦笉鑳界敓鎴愬爢鏍堣皟鐢ㄤ俊鎭紝瀵逛簬debug鐨勪綔鐢ㄦ湁闄愩?span lang="EN-US">
 
    涓嬮潰鎴戜滑灝辨潵鐪嬩竴涓洿鍔犲畬鍠勭殑瑙e喅鏂規(guī)銆?span lang="EN-US">
 
 
 
    鏂規(guī)浜旓細(xì)SetUnhandledExceptionFilter + Minidump
 
    SetUnhandleExceptionFilter鍑芥暟鎴戜滑宸茬粡浠嬬粛榪囦簡錛屾湰鏂規(guī)鐨勬濊礬榪樻槸瑕佸埄鐢ㄦ垜浠嚜宸辯殑寮傚父澶勭悊鍑芥暟錛屾潵鐢熸垚minidump鏂囦歡銆?span lang="EN-US">
 
    1銆?span lang="EN-US">Minidump姒傚康
 
    minidump錛堝皬瀛樺偍鍣ㄨ漿鍌級鍙互鐞嗚В涓轟竴涓?span lang="EN-US">dump鏂囦歡錛岄噷闈㈣褰曚簡鑳藉甯姪璋冭瘯crash鐨勬渶灝忔湁鐢ㄤ俊鎭傚疄闄呬笂錛屽鏋滀綘鍦?緋葷粺灞炴?span lang="EN-US"> -> 楂樼駭 -> 鍚姩鍜屾晠闅滄仮澶?span lang="EN-US"> -> 璁劇疆 -> 鍐欏叆璋冭瘯淇℃伅 涓夋嫨鈥?/span>灝忓唴瀛樿漿鍌?span lang="EN-US">(64 KB)鈥?/span>鐨勮瘽錛屽綋緋葷粺鎰忓鍋滄鏃墮兘浼?xì)鍦?span lang="EN-US">C:\Windows\Minidump\璺緞涓嬬敓鎴愪竴涓?span lang="EN-US">.dmp鍚庣紑鐨勬枃浠訛紝榪欎釜鏂囦歡灝辨槸minidump鏂囦歡錛屽彧涓嶈繃榪欎釜鏄唴鏍告佺殑minidump銆?span lang="EN-US">
 
   鎴戜滑瑕佺敓鎴愮殑鏄敤鎴鋒佺殑minidump錛屾枃浠朵腑鍖呭惈浜嗙▼搴忚繍琛岀殑妯″潡淇℃伅銆佺嚎紼嬩俊鎭佸爢鏍堣皟鐢ㄤ俊鎭瓑銆傝屼笖涓轟簡絎﹀悎鍏?span lang="EN-US">mini鐨勭壒鎬э紝dump鏂囦歡鏄帇緙╄繃鐨勩?span lang="EN-US">
 
    2銆佺敓鎴?span lang="EN-US">minidump鏂囦歡
 
    鐢熸垚minidump鏂囦歡鐨?span lang="EN-US">API鍑芥暟鏄?span lang="EN-US">MiniDumpWriteDump錛岃鍑芥暟闇瑕?span lang="EN-US">dbghelp.lib鏀寔錛屽叾鍘熷瀷濡備笅:
 
    BOOL WINAPI MiniDumpWriteDump(
      __in          HANDLE hProcess,
      __in          DWORD ProcessId,
      __in          HANDLE hFile,
      __in          MINIDUMP_TYPE DumpType,
      __in          PMINIDUMP_EXCEPTION_INFORMATION ExceptionParam,
      __in          PMINIDUMP_USER_STREAM_INFORMATION UserStreamParam,
      __in          PMINIDUMP_CALLBACK_INFORMATION CallbackParam
    );
 
    鍦ㄦ垜浠殑寮傚父澶勭悊鍑芥暟涓姞鍏ヤ互涓嬩唬鐮侊細(xì)
 
    HANDLE hFile = ::CreateFile( _T("E:\\dumpfile.dmp"), GENERIC_WRITE, 0, NULL, CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL);
     if( hFile != INVALID_HANDLE_VALUE)
     {
         MINIDUMP_EXCEPTION_INFORMATION einfo;
         einfo.ThreadId = ::GetCurrentThreadId();
         einfo.ExceptionPointers = pExInfo;
         einfo.ClientPointers = FALSE;
 
        ::MiniDumpWriteDump(::GetCurrentProcess(), ::GetCurrentProcessId(), hFile, MiniDumpNormal, &einfo, NULL, NULL);
        ::CloseHandle(hFile);
     }
 
    鍏朵腑錛?span lang="EN-US">pExInfo鍙橀噺涓哄紓甯稿鐞嗗嚱鏁?span lang="EN-US">PEXCEPTION_POINTERS綾誨瀷鐨勫弬鏁般傚叿浣撹鍙傝?span lang="EN-US">MSDN銆?span lang="EN-US">
 
    3銆佽皟璇?span lang="EN-US">minidump
 
    璋冭瘯dump鏂囦歡棣栧厛闇瑕?span lang="EN-US">pdb鏂囦歡錛屽洜姝ゆ垜浠?span lang="EN-US">build紼嬪簭鏃墮渶瑕佽緗?span lang="EN-US"> Debug Infomation Format 涓?span lang="EN-US"> 鈥淧rogram Database錛?span lang="EN-US">/Zi錛?span lang="EN-US">鈥?/span>銆傚叾嬈★紝鎴戜滑榪樿紜繚鎵鐢ㄧ殑dump鏂囦歡涓庢簮浠g爜銆?span lang="EN-US">exe銆?span lang="EN-US">pdb鏂囦歡鐗堟湰鏄竴鑷寸殑錛岃繖瑕佹眰鎴戜滑蹇呴』緇存姢濂界▼搴忕増鏈俊鎭?span lang="EN-US">
 
    璋冭瘯minidump鏈鏂逛究鐨勭幆澧冨氨鏄?span lang="EN-US">VS浜嗭紝鎴戜滑鍙灝?span lang="EN-US">.dmp銆?span lang="EN-US">.exe銆?span lang="EN-US">.pdb鏂囦歡鏀懼湪涓涓礬寰勪笅錛屼繚璇佹簮浠g爜鏂囦歡鐨勮礬寰勪笌緙栬瘧鏃剁殑璺緞涓鑷村氨鍙互浜嗭紝鍓╀笅鐨勫氨鏄?span lang="EN-US">VS甯垜浠畬鎴愩傚弻鍑?span lang="EN-US">.dmp鏂囦歡鎴栬呭湪鏂囦歡鎵撳紑宸ョ▼涓夋嫨鈥渄ump files鈥?/span>錛屽姞杞?span lang="EN-US">dump鏂囦歡錛岀劧鍚庢寜F5榪愯灝辮兘鐩存帴鎭㈠crash鏃剁殑鐜板満浜嗭紝浣犲彲浠ュ畾浣?span lang="EN-US">crash鐨勪唬鐮侊紝鍙互鏌ョ湅璋冪敤鍫嗘爤錛屽彲浠ユ煡鐪嬬嚎紼嬪拰妯″潡淇℃伅...涓鍒囬兘璺熶綘璁劇疆鏂偣璋冭瘯涓鏍鳳紝澶己澶т簡錛佺湅涓埅鍥懼惂銆?span lang="EN-US">
 
    闇瑕佹敞鎰忕殑鏄紝瀵逛簬release鐗堢殑紼嬪簭鏉ヨ錛屽緢澶氫唬鐮佹槸緇忚繃緙栬瘧鍣ㄤ紭鍖栬繃鐨勶紝鍥犳瀹氫綅鐨勬椂鍊欏彲鑳戒細(xì)鏈夋墍鍋忓樊錛屽ぇ瀹跺彲浠ヨ冭檻璁劇疆閫夐」鍘繪帀浠g爜浼樺寲銆?span lang="EN-US">
 
    鍏朵粬鍙互璋冭瘯minidump鐨勫伐鍏瘋繕鏈?span lang="EN-US">WinDbg絳夛紝澶у鍙互鏌ラ槄鐩稿叧璧勬枡銆?span lang="EN-US">

 



鑲ヤ粩 2011-05-10 11:58 鍙戣〃璇勮
]]>
浣跨敤MiniDumpWriteDump API 鏉ョ敓鎴愮▼搴忕殑Dumphttp://m.shnenglu.com/woaidongmao/archive/2011/05/10/146086.html鑲ヤ粩鑲ヤ粩Tue, 10 May 2011 03:08:00 GMThttp://m.shnenglu.com/woaidongmao/archive/2011/05/10/146086.htmlhttp://m.shnenglu.com/woaidongmao/comments/146086.htmlhttp://m.shnenglu.com/woaidongmao/archive/2011/05/10/146086.html#Feedback0http://m.shnenglu.com/woaidongmao/comments/commentRss/146086.htmlhttp://m.shnenglu.com/woaidongmao/services/trackbacks/146086.htmlMiniDumpWriteDump鏄?span lang="EN-US">MS DbgHelp.dll 涓竴涓?span lang="EN-US">API, 鐢ㄤ簬瀵煎嚭褰撳墠榪愯鐨勭▼搴忕殑Dump. 榪欎釜dll紼嬪簭緋葷粺涓氨鏈?span lang="EN-US">, 浣嗘槸寰堝杞歡, 閮藉湪鑷繁鐨勫畨瑁呯洰褰曚笅淇濆瓨浜嗚繖涓?span lang="EN-US">.dll鐨勬渶鏂扮殑鐗堟湰.

涓轟簡嫻嬭瘯榪欎釜API, 鍙傝冪綉涓婁竴浜涜祫鏂?span lang="EN-US">, 鍐欎簡涓涓畝鍗曠殑C++ 紼嬪簭. 鐩殑鏄綋鏈夊紓甯稿彂鐢熺殑鏃跺?span lang="EN-US">, 鑷姩鐢熸垚Dump鏂囦歡渚涗箣鍚庣殑鍒嗘瀽. 鏈変簡Dump鏂囦歡, 鎴戜滑灝卞彲浠ヤ嬌鐢?span lang="EN-US">WinDBG絳夎皟璇曞櫒鏉ュ垎鏋愬紓甯稿彂鐢熸椂鐨勬儏鍐?span lang="EN-US">. 鍏跺疄榪欎釜鍔熻兘寰堝杞歡閮芥湁, 姣斿QQ, 欖斿吔涓栫晫, 絳夌瓑. 瀹冧滑鍦ㄥ嚭鐜頒簡寮傚父鐨勬椂鍊欎細(xì)寮瑰嚭涓涓璇濇, 璁╃敤鎴瘋緭鍏ュ紓甯稿彂鐢熸椂鐨勬儏鍐?span lang="EN-US">, 鐒跺悗鎶婂紓甯哥殑dump鏂囦歡鐢?span lang="EN-US">email鍙戝洖, 渚涘紑鍙戣呬滑鍒嗘瀽淇敼bug.

涓嶈繃鏈変竴鐐?span lang="EN-US">, 榪欓噷闇瑕佺▼搴忕殑璋冭瘯絎﹀彿鏂囦歡(pdb鏂囦歡). 瀵逛簬Debug鐗堟潵璇?span lang="EN-US">, 鏄敓鎴愮殑, 浣嗘槸Release鐗堟潵璇撮粯璁ゆ槸涓嶇敓鎴愮殑. 鍙互璁劇疆VC鐨勭紪璇戝櫒, 璁╁畠鍦?span lang="EN-US">Release鐗堢殑鏃跺欎篃鐢熸垚璋冭瘯淇℃伅. 榪欏甫鏉ヤ竴涓柊鐨勯棶棰?span lang="EN-US">, 鍥犱負(fù).pdb閲岄潰鏄繚瀛樹簡婧愭枃浠剁殑淇℃伅鐨?span lang="EN-US">, 涓轟簡閬垮厤娉勫瘑, 鍙互閲囩敤VS涓殑CVPack宸ュ叿, 浠庝腑鍘婚櫎鏁忔劅鐨勪俊鎭?span lang="EN-US">.

紼嬪簭闇瑕佷嬌鐢?b>Dbghelp.h 鍜?Dbghelp.lib . 瀹冧滑鍙互浠?span lang="EN-US">MSDN鎵懼埌.

//鏈涓昏鐨勫嚱鏁?span lang="EN-US">, 鐢熸垚Dump
static void DumpMiniDump(HANDLE hFile, PEXCEPTION_POINTERS excpInfo)
{
if (excpInfo == NULL)
//濡傛灉娌℃湁浼犲叆寮傚父, 姣斿鏄湪紼嬪簭閲岄潰璋冪敤鐨?span lang="EN-US">, 鐢熸垚涓涓紓甯?/span>
{
// Generate exception to get proper context in dump
__try
{
OutputDebugString(_T("raising exception\r\n"));
RaiseException(EXCEPTION_BREAKPOINT, 0, 0, NULL);
}
__except(DumpMiniDump(hFile, GetExceptionInformation()),
EXCEPTION_CONTINUE_EXECUTION)
{
}
}
else
{
OutputDebugString(_T("writing minidump\r\n"));
MINIDUMP_EXCEPTION_INFORMATION eInfo;
eInfo.ThreadId = GetCurrentThreadId();
//鎶婇渶瑕佺殑淇℃伅娣昏繘鍘?/span>
eInfo.ExceptionPointers = excpInfo;
eInfo.ClientPointers = FALSE;

    // 璋冪敤, 鐢熸垚Dump. 98涓嶆敮鎸?span lang="EN-US">
// Dump
鐨勭被鍨嬫槸灝忓瀷鐨?span lang="EN-US">, 鑺傜渷絀洪棿. 鍙互鍙傝?span lang="EN-US">MSDN鐢熸垚鏇磋緇嗙殑Dump.
MiniDumpWriteDump(
GetCurrentProcess(),
GetCurrentProcessId(),
hFile,
MiniDumpNormal,
excpInfo ? &eInfo : NULL,
NULL,
NULL);
}
}

涓嬮潰鐨勬槸紼嬪簭閮ㄥ垎:

int _tmain(int argc, _TCHAR* argv[])
{
// 鍒涘緩涓涓?span lang="EN-US">Dump鏂囦歡
HANDLE hFile = CreateFile( _T("MiniDump.dmp"), GENERIC_READ | GENERIC_WRITE,
0, NULL, CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL );
int code;
__try
{  
// 鎶婅嚜宸卞疄鐜扮殑main鍑芥暟鍖呰涓涓?span lang="EN-US">, 鏀懼湪try .. except 鍧椾腑. 榪欐牱鍑虹幇浜嗗紓甯稿彲浠ヨ嚜鍔ㄧ敓鎴?span lang="EN-US">dump
main_wrapper(argc, argv);
}
__except( code=GetExceptionCode(), DumpMiniDump(hFile, GetExceptionInformation() ),       EXCEPTION_EXECUTE_HANDLER )
//鍑虹幇浜嗗紓甯?span lang="EN-US">, 璁板綍寮傚父鐨?span lang="EN-US">code, 鐢熸垚dump!!
{
printf("%x\n", code);
wchar_t msg[512];
wsprintf(msg, L"Exception happened. Exception code is %x", code);
MessageBox(NULL, msg, L"Exception", MB_OK);
//鏄劇ず娑堟伅緇欑敤鎴?/span>
}
CloseHandle( hFile );
//鍏抽棴Dump鏂囦歡
getchar();
return 0;
}

鏈涓嬮潰鏄袱涓祴璇曠殑鍑芥暟, main_wrapper鍑芥暟灝嗚皟鐢?span lang="EN-US">test1, test1灝嗕細(xì)鐢熸垚涓涓紓甯?span lang="EN-US">(闈炴硶鍐呭瓨鍐?span lang="EN-US">)

void test1() {
int *p;
p = (int*)0x100;
*p = 0;
//鍐?span lang="EN-US">0x100鍦板潃, 榪欎釜鏄潪娉曠殑
}

void main_wrapper(int argc, _TCHAR* argv[]) {
test1();
}

榪愯, 寮傚父琚崟鑾蜂簡:

clip_image001

鍚屾椂, dump鏂囦歡涔熺敓鎴愪簡:

clip_image002

鐢?span lang="EN-US">WinDBG鎵撳紑Dump鏂囦歡, 鍙互娓呮鐨勭湅鍑哄紓甯稿嚭鐜扮殑鎯呭喌:

clip_image003


浠庝腑鍙互姣旇緝娓呮鐨勭湅鍒板紓甯稿彂鐢熺殑鎯呭喌(Exception code), 寮傚父鍑虹幇鐨勫湴鍧(test1鍑芥暟, 鍋忕Щ0x28). 鍥犱負(fù)榪欐嫻嬭瘯鐨勬槸Debug鐗?span lang="EN-US">, 鏈変繚瀛樹簡婧愪唬鐮佺殑.pdb鏂囦歡, 鎵浠?span lang="EN-US">WinDbg鎶婃簮浠g爜涔熷垪鍑烘潵浜?span lang="EN-US">. 榪欐牱鍙互闈炲父瀹規(guī)槗鐨勫彂鐜伴棶棰?span lang="EN-US">.

============================================

鍙傝?span lang="EN-US">:
DbgHelp
涓殑DumpAPI渚嬪瓙: http://www.debuginfo.com/examples/src/effminidumps/MiniDump.cpp
CrashReport:
紼嬪簭鍑虹幇寮傚父鐨勬椂鍊欐樉紺哄彂閫侀敊璇殑瀵硅瘽妗?span lang="EN-US">, 騫舵妸Dump鏂囦歡鍙戦佸埌鎸囧畾鐨勫湴鍧. http://code.google.com/p/crashrpt/
XCrashReport:
涓庝笂闈㈢殑綾諱技鐨勪竴涓紑婧愰」鐩?span lang="EN-US">. http://www.codeproject.com/KB/debug/XCrashReportPt1.aspx



鑲ヤ粩 2011-05-10 11:08 鍙戣〃璇勮
]]>
絎﹀彿鏂囦歡&mdash;&mdash;Windows 搴旂敤紼嬪簭璋冭瘯蹇呭http://m.shnenglu.com/woaidongmao/archive/2011/05/10/146084.html鑲ヤ粩鑲ヤ粩Tue, 10 May 2011 03:02:00 GMThttp://m.shnenglu.com/woaidongmao/archive/2011/05/10/146084.htmlhttp://m.shnenglu.com/woaidongmao/comments/146084.htmlhttp://m.shnenglu.com/woaidongmao/archive/2011/05/10/146084.html#Feedback0http://m.shnenglu.com/woaidongmao/comments/commentRss/146084.htmlhttp://m.shnenglu.com/woaidongmao/services/trackbacks/146084.html涓銆佷綍璋撶鍙鋒枃浠訛紵

銆銆絎﹀彿鏂囦歡錛?span lang="EN-US">Symbol Files錛夋槸涓涓暟鎹俊鎭枃浠訛紝瀹冨寘鍚簡搴旂敤紼嬪簭浜岃繘鍒舵枃浠訛紙姣斿錛?span lang="EN-US">EXE銆?span lang="EN-US">DLL絳夛級璋冭瘯淇℃伅錛屼笓闂ㄧ敤鏉ヤ綔璋冭瘯涔嬬敤錛屾渶緇堢敓鎴愮殑鍙墽琛屾枃浠跺湪榪愯鏃跺茍涓嶉渶瑕佽繖涓鍙鋒枃浠訛紝浣嗕綘鐨勭▼搴忎腑鎵鏈夌殑鍙橀噺淇℃伅閮借褰曞湪榪欎釜鏂囦歡涓傛墍浠ヨ皟璇曞簲鐢ㄧ▼搴忔椂錛岃繖涓枃浠舵槸闈炲父閲嶈鐨勩傜敤 Visual C++ 鍜?span lang="EN-US"> WinDbg 璋冭瘯紼嬪簭鏃墮兘瑕佺敤鍒拌繖涓枃浠躲?span lang="EN-US">
銆銆鍦?span lang="EN-US"> Windows 緋葷粺涓紝絎﹀彿鏂囦歡浠?span lang="EN-US"> .pdb 涓烘墿灞曞悕錛屾瘮濡傦細(xì)姣忎釜 Windows 鎿嶄綔緋葷粺涓嬫湁涓涓?span lang="EN-US"> GDI32.dll 鏂囦歡錛岀紪璇戝櫒鍦ㄧ紪璇戣 DLL 鐨勬椂鍊欎細(xì)浜х敓涓涓?span lang="EN-US"> GDI32.pdb 鏂囦歡錛屼竴鏃︿綘鎷ユ湁浜嗚繖涓?span lang="EN-US"> PDB 鏂囦歡錛岄偅涔堜究鍙互鐢ㄥ畠鏉ヨ皟璇曞茍璺熻釜鍒?span lang="EN-US"> GDI32.dll 鍐呴儴銆傝鏂囦歡鍜屼簩榪涘埗鏂囦歡鐨勭紪璇戠増鏈瘑鍒囩浉鍏籌紝姣斿淇敼浜?span lang="EN-US"> DLL 鐨勮緭鍑哄嚱鏁幫紝鍐嶇紪璇戣 DLL錛岄偅涔堝師鍏堢殑 PDB 鏂囦歡灝辮繃鏃朵簡錛屼笉鑳藉啀鐢ㄨ佺殑 PDB 鏂囦歡鏉ュ仛璋冭瘯宸ヤ綔,鑰屽繀欏諱嬌鐢ㄦ渶鏂扮殑 PDB 鏂囦歡鐗堟湰銆?span lang="EN-US">
銆銆Visual C++ 緙栬瘧浠g爜鍚庝細(xì)鍦?span lang="EN-US"> Debug 鎴栬?span lang="EN-US"> Release 鐩綍涓嬬敓鎴愪竴涓?span lang="EN-US"> PDB 鏂囦歡銆備竴鑸儏鍐典笅錛岀鍙鋒枃浠跺寘鎷互涓嬬殑鏁版嵁淇℃伅錛?span lang="EN-US">

  1. 鍏ㄥ眬鍙橀噺錛?span lang="EN-US">Global variables錛夛紱
  2. 灞閮ㄥ彉閲忥紙Local variables錛夛紱
  3. 鍑芥暟鍚嶅拰瀹冧滑鐨勫叆鍙e湴鍧錛?span lang="EN-US">Function names and the addresses of their entry points錛夛紱
  4. FPO 鏁版嵁錛?span lang="EN-US">Frame Pointer Omission)錛?span lang="EN-US">Frame Pointer 鏄竴縐嶇敤鏉ュ湪璋冪敤鍫嗘爤錛?span lang="EN-US">Call stack錛変腑鎵懼埌涓嬩竴涓皢瑕佽璋冪敤鐨勫嚱鏁扮殑鏁版嵁緇撴瀯婧愪唬鐮佺殑琛屽簭鍙鳳紙Source-line numbers錛夛紱

浜屻佸浣曞緱鍒板拰瀹夎絎﹀彿鏂囦歡?

  1. 鍏堢‘瀹氫綘鐨勬搷浣滅郴緇燂紙OS錛夌増鏈紱
  2. 鍒板井杞綉绔欎笅杞界浉搴旂殑絎﹀彿鏂囦歡錛?
  3. 瀹夎絎﹀彿鏂囦歡錛屽浜庣鍙鋒枃浠剁殑瀹夎浣嶇疆娌℃湁鐗硅礉瑕佹眰錛屽彲浠ュ畨瑁呭湪浠諱綍鐩綍涓紱
  4. 璁劇疆鐜鍙橀噺錛屼嬌寰楄皟璇曞伐鍏鳳紙姣斿錛?span lang="EN-US">Visual C++銆?span lang="EN-US">WinDbg銆?span lang="EN-US">Ntsd銆?span lang="EN-US">DrWatson 絳夛級鑳芥壘鍒扮鍙鋒枃浠訛紱

瀹夎絎﹀彿鏂囦歡鐨勬敞鎰忎簨欏癸細(xì)

銆銆濡傛灉鏄墜鍔ㄥ畨瑁呯鍙鋒枃浠訛紝鏈変竴鐐瑰緢閲嶈錛岄偅灝辨槸瀹夸富鏈猴紙Hostt Computer錛変笂鐨勭鍙鋒枃浠跺繀欏諱笌鐩爣鏈哄櫒錛?span lang="EN-US">Target Computer
錛変笂鐨?span lang="EN-US"> Windows 鐗堟湰鐩稿尮閰嶃?span lang="EN-US">
銆銆榪欓噷鎵璋撶殑瀹夸富鏈烘寚鐨勬槸榪愯璋冭瘯浼?xì)璇濈殑鏈哄櫒锛屽湪鍏稿瀷鐨勫弻绯痪l熻皟璇曚細(xì)璇濈幆澧冧腑錛屽涓繪満鍙互鏄繛鎺ュ埌鐩爣鏈哄櫒鐨勪換浣曟満鍣ㄣ傜洰鏍囨満鍣ㄦ寚鐨勬槸鍙戠敓杞歡緇勪歡銆佺郴緇熸湇鍔°佸簲鐢ㄧ▼搴忔垨鎿嶄綔緋葷粺榪愯澶辮觸鐨勬満鍣ㄣ備篃鍗蟲槸闇瑕佽璋冭瘯鐨勬満鍣紝瀹冩槸璋冭瘯浼?xì)璇濆呄x敞鐨勭劍鐐廣傜洰鏍囨満鍣ㄥ彲浠ヨ繎鍦ㄥ挮灝猴紝涔熷彲浠ヤ綅浜庡畬鍏ㄤ笉鍚岀殑鍦版柟銆傛湁鏃舵垜浠篃灝嗙洰鏍囨満鍣ㄧО涔嬩負(fù)鈥斺?/span>琚皟璇曡咃紙debuggee錛夛紝閭d箞涓庝箣瀵瑰簲錛屽涓繪満鍒欏彲浠ョО涓鴻皟璇曡咃紙debugger錛夈?span lang="EN-US">

涓夈佸湪 Visual C++ 浣跨敤絎﹀彿鏂囦歡鐨勬柟娉?/span>

鍦?span lang="EN-US"> Visual C++ 6.0 涓殑浣跨敤鏂規(guī)硶錛?span lang="EN-US">

  1. 鎵撳紑 Visual C++ 6.0 鐨?span lang="EN-US"> Workspace 鏂囦歡錛?span lang="EN-US">*.dsw錛夛紱
  2. 榪涘叆 Tools 鑿滃崟錛岄夋嫨 Options 鑿滃崟欏?span lang="EN-US"> (Tools->Options)錛?
  3. 鍗曞嚮 Directoties 鏍囩錛?
  4. 鍦?span lang="EN-US"> 鈥淪how directories for鈥?/span>涓嬫媺鍒楄〃涓夋嫨 鈥淓xecutable files鈥?/span>錛?
  5. 灝嗙鍙鋒枃浠剁殑璺緞娣誨姞鍒?span lang="EN-US"> 鈥淒irectories鈥?璺緞鍒楄〃涓紱
  6. 鍗曞嚮  OK 瀹屾垚錛?

鍦?span lang="EN-US"> Visual C++ .NET 2003 涓殑浣跨敤鏂規(guī)硶錛?span lang="EN-US">

  1. 鎵撳紑 Visual C++ .NET 鐨勯」鐩枃浠訛紙*.vcproj錛夛紱
  2. 鍦ㄨВ鍐蟲柟妗堢鐞嗗櫒涓変腑瑕佷嬌鐢ㄧ鍙鋒枃浠剁殑欏圭洰錛?
  3. 鍗曞嚮鍙抽敭榪涘叆欏圭洰灞炴у璇濇錛?
  4. 閫夋嫨鈥?/span>閰嶇疆灞炴?span lang="EN-US">鈥?/span>涓殑鈥?/span>璋冭瘯鈥?/span>錛?
  5. 鍦ㄤ笌鈥?/span>璋冭瘯鈥?/span>瀵瑰簲鐨?span lang="EN-US">鈥?/span>鎿嶄綔鈥?/span>閫夐」涓湁涓涓?span lang="EN-US">鈥?/span>絎﹀彿璺緞鈥?/span>錛屽湪姝ゆ坊鍔犵鍙鋒枃浠剁殑璺緞鍗沖彲錛?
  6. 鍗曞嚮  鈥?/span>紜畾鈥?瀹屾垚錛?

鍥涖佸浣曚駭鐢?span lang="EN-US"> Release 鐗堟湰浜岃繘鍒舵枃浠跺搴旂殑 PDB 鏂囦歡?

鍦?span lang="EN-US"> Visual C++ 6.0 涓殑鏂規(guī)硶錛?span lang="EN-US">

  1. 鎵撳紑 Visual C++ 6.0 鐨?span lang="EN-US"> Workspace 鏂囦歡錛?span lang="EN-US">*.dsw錛夛紱
  2. 榪涘叆 Project 鑿滃崟錛岄夋嫨 Settings 鑿滃崟欏?span lang="EN-US"> (Project->Settings)錛屾墦寮欏圭洰璁劇疆瀵硅瘽妗嗭紱
  3. 鍦?span lang="EN-US"> 鈥淪ettings for鈥?/span>鍒楄〃涓夋嫨欏圭洰鐨?span lang="EN-US"> Release 閰嶇疆錛?
  4. 鍗曞嚮鈥淐/C++鈥?/span>鏍囩錛?
  5. 鍦?span lang="EN-US">鈥淐ategory鈥?/span>涓嬫媺鍒楄〃妗嗕腑閫夋嫨鈥淕eneral鈥?/span>閫夐」錛?
  6. 鍦?span lang="EN-US">鈥淒ebug info鈥?/span>涓嬫媺鍒楄〃妗嗕腑閫夋嫨璋冭瘯淇℃伅鏍煎紡錛堝叿浣撻夐」鍙傝鍥句竴錛夛紝鍦ㄦ涓嶅繀紱佺敤浠諱綍浼樺寲閫夐」錛?
  7. 鍗曞嚮鈥淟ink鈥?/span>鏍囩錛?
  8. 鍦?span lang="EN-US">鈥淐ategory鈥?/span>涓嬫媺鍒楄〃妗嗕腑閫夋嫨鈥淒ebug鈥?/span>閫夐」錛?
  9. 閫変腑鈥淒ebug info鈥?/span>澶嶉夋錛岀劧鍚庨夋嫨闇瑕佺殑閾炬帴璋冭瘯綾誨瀷錛堝叿浣撻夐」鍙傝鍥句竴錛夛紱
  10. 涓嶈閫夋嫨鈥淪eparate types鈥?/span>澶嶉夋錛?
  11. 鍦?span lang="EN-US">鈥淧roject options鈥?/span>緙栬緫妗嗙殑鏈鍚庢坊鍔犲涓嬫寚浠わ細(xì)/opt:ref,icf錛?
  12. 閲嶆柊鐢熸垚錛?span lang="EN-US">Rebuild錛夐」鐩紱

鍦?span lang="EN-US"> Visual C++ .NET 2003 涓殑鏂規(guī)硶錛?span lang="EN-US">

  1. 鎵撳紑 Visual C++ .NET 鐨勯」鐩枃浠訛紙*.vcproj錛夛紱
  2. 榪涘叆 Project 鑿滃崟錛岄夋嫨 Settings 鑿滃崟欏?span lang="EN-US"> (Project->Settings)錛屾墦寮欏圭洰璁劇疆瀵硅瘽妗嗭紱
  3. 鍦?span lang="EN-US"> 鈥?/span>閰嶇疆鈥?/span>涓嬫媺鍒楄〃涓夋嫨欏圭洰鐨?span lang="EN-US"> 鈥?/span>錛堟椿鍔級Release鈥?閰嶇疆錛?
  4. 閫夋嫨鈥?/span>閰嶇疆灞炴?span lang="EN-US">鈥?/span>鏍?wèi)鍨嬭妭鐐逛腑鐨?span lang="EN-US">鈥淐/C++鈥?==銆?span lang="EN-US">鈥?/span>甯歌鈥?/span>錛?
  5. 璁劇疆鍙寵竟鐨?span lang="EN-US">鈥?/span>璋冭瘯淇℃伅鏍煎紡鈥?/span>閫夐」錛堝叿浣撻夐」鍙傝鍥句竴錛夛紱
  6. 閫夋嫨鈥?/span>閰嶇疆灞炴?span lang="EN-US">鈥?/span>鏍?wèi)鍨嬭妭鐐逛腑鐨?span lang="EN-US">鈥?/span>閾炬帴鍣?span lang="EN-US">鈥?=銆?span lang="EN-US">鈥?/span>璋冭瘯鈥?/span>錛?
  7. 璁劇疆鍙寵竟鐨?span lang="EN-US">鈥?/span>鐢熸垚紼嬪簭鏁版嵁搴撴枃浠?span lang="EN-US">鈥?/span>錛堝叿浣撻夐」鍙傝鍥句竴錛夛紱
  8. 閫夋嫨鈥?/span>閰嶇疆灞炴?span lang="EN-US">鈥?/span>鏍?wèi)鍨嬭妭鐐逛腑鐨?span lang="EN-US">鈥?/span>閾炬帴鍣?span lang="EN-US">鈥?=銆?span lang="EN-US">鈥?/span>鍛戒護琛?span lang="EN-US">鈥?/span>錛?
  9. 鍦?span lang="EN-US">鈥?/span>闄勫姞閫夐」(D)鈥?/span>緙栬緫妗嗕腑娣誨姞濡備笅鎸囦護錛?span lang="EN-US">/opt:ref,icf錛?
  10. 鎸?span lang="EN-US">鈥?/span>紜畾鈥?/span>閫鍑猴紱
  11. 閲嶆柊鐢熸垚錛?span lang="EN-US">Rebuild錛夐」鐩紱

clip_image001

鍥句竴

浜斻佸叧浜?span lang="EN-US"> Free Build錛堜篃縐?span lang="EN-US"> Retail Build錛夊拰 Checked Build錛堜篃縐?span lang="EN-US"> Debug Build錛?/span>

姣忎釜鍩轟簬 NT 鎿嶄綔緋葷粺鏈変袱縐嶄笉鍚岀殑紼嬪簭鐢熸垚妯″紡錛屽嵆錛?span lang="EN-US">

  • Free Build (鎴?span lang="EN-US"> Retail Build)
  • Checked Build (鎴?span lang="EN-US"> Debug Build)

銆銆Free Build 鐢熸垚鐨勬槸鏈緇堢敤鎴風(fēng)増鏈紝閽堝鐢熸垚鐨勪簩榪涘埗鏂囦歡榪涜浜嗗交搴曠殑浼樺寲錛岀鐢ㄤ簡璋冭瘯鏂█錛屽茍鍓ョ浜嗚皟璇曚俊鎭傝繖鏍蜂竴鏉ヤ嬌鍙墽琛岀▼搴忔枃浠舵洿灝忥紝鍔犺澆鏇村揩錛屼嬌鐢ㄧ殑鍐呭瓨涔熸洿灝忋?span lang="EN-US">
銆銆Checked Build 鐢熸垚鐨勬槸嫻嬭瘯鍜岃皟璇曠増鏈傚畠鍖呭惈棰濆鐨?span lang="EN-US"> Free Build 鎵娌℃湁鐨勯敊璇鏌ワ紝鍙傛暟楠岃瘉鍜岃皟璇曚俊鎭紝Checked Build 鏈夊姪浜庨殧紱誨拰璺熻釜鍙兘瀵艱嚧涓嶅彲棰勮鐨勮涓虹殑闂錛屾瘮濡傚唴瀛樻孩鍑猴紝涓嶆紜殑璁懼閰嶇疆銆傝櫧鐒?span lang="EN-US"> Checked Build 鎻愪緵浜嗛澶栫殑淇濇姢錛屼絾涓?span lang="EN-US"> Free Build 姣旇緝錛屽畠闇瑕佹洿澶氱殑鍐呭瓨寮閿鍜岀鐩樼┖闂淬傜敱浜庡彲鎵ц紼嬪簭鍖呭惈絎﹀彿璋冭瘯淇℃伅錛涜皟璇曟椂瑕佹墽琛岄檮鍔犵殑浠g爜銆佸弬鏁版鏌ュ拰杈撳嚭璋冭瘯璇婃柇淇℃伅錛屼粠鑰屽鑷存ц兘涓嬮檷銆?span lang="EN-US">

鍏佺郴緇熺鍙鋒枃浠剁殑鏇存柊鏂規(guī)硶

銆銆緋葷粺絎﹀彿鏂囦歡鎸?span lang="EN-US"> Windows 鎿嶄綔緋葷粺渚濊禆鐨勯偅鍑犱釜閲嶈鐨?span lang="EN-US"> DLL/SYS 鍜屽彲鎵ц鏂囦歡瀵瑰簲鐨勭鍙鋒枃浠訛紝甯歌鐨勬瘮濡傦細(xì)gdi32.dll銆?span lang="EN-US">Kernel32.dll銆?span lang="EN-US">Kerberos.dll銆?span lang="EN-US">psapi.dll銆?span lang="EN-US">user32.dll絳夛紝浣跨敤 WinDbg 璋冭瘯鏃訛紝浣犲氨浼?xì)鍙戠幇绯痪l熺鍙鋒枃浠?span lang="EN-US">(PDB)鏈夊閲嶈錛岃繖浜涙枃浠墮兘涓庢湰鍦扮殑 OS 瀵嗗垏鐩稿叧錛屾瘮濡傦紝Windows 2000 鎵撲簡SP琛ヤ竵鐨勮瘽錛岄偅涔堝繀欏繪洿鏂扮郴緇熺鍙鋒枃浠舵墠鑳借繘琛岀浉鍏寵皟璇曪紝鍘熸潵鐨勭鍙鋒枃浠朵笌鎵撹ˉ涓佸悗鐨勭郴緇熷氨浼?xì)涓嶅寶w厤錛屾庝箞鍔炲憿? 鍙互閫氳繃緗戠粶鏉ユ洿鏂幫紒璞′笅闈㈣繖鏍峰湪 WinDbg 鐨?span lang="EN-US"> Symbols Path 閲岄潰杈撳叆璺緞錛?span lang="EN-US">

SRV*D:\Symbols\websymbols*http://msdl.microsoft.com/download/symbols

錛堟枩浣撻儴鍒嗘槸浣犲湪鏈湴淇濆瓨絎﹀彿鏂囦歡鐨勮礬寰勶級

銆銆濡傛灉浣犱笉鏄氳繃浠g悊涓婄綉錛岄偅涔堝湪浣犵敤 WinDbg 鎵撳紑涓涓璋冭瘯紼嬪簭鍚庯紝杈撳叆 symchk 鍥炶濺錛?span lang="EN-US">WinDbg
灝變細(xì)鑷姩鐨勮繛鍒板井杞殑緗戠珯鏍規(guī)嵁浣犵殑鏈哄櫒鐨勬儏鍐墊洿鏂扮殑 PDB 鏂囦歡錛屽茍灝嗗畠淇濆瓨鍦ㄤ笂闈㈡枩浣撻儴鍒嗘寚瀹氱殑鏈湴璺緞閲岋紝榪欐牱浣犲氨鍙互紜繚浣犵殑絎﹀彿鏂囦歡鐗堟湰鍜屼綘鏈哄櫒涓婄殑鏂囦歡鐗堟湰涓鑷淬?span lang="EN-US">

濡傛灉浣犳槸閫氳繃浠g悊涓婄綉閭d箞浣犻渶瑕侀厤緗?span lang="EN-US"> IE 鐨勮繛鎺ヨ緗傚叿浣撴柟娉曟仌涓嶈禈璦

 



鑲ヤ粩 2011-05-10 11:02 鍙戣〃璇勮
]]>
鍔熻兘寮哄ぇ鐨剉c6璋冭瘯鍣?/title><link>http://m.shnenglu.com/woaidongmao/archive/2011/05/10/146082.html</link><dc:creator>鑲ヤ粩</dc:creator><author>鑲ヤ粩</author><pubDate>Tue, 10 May 2011 03:01:00 GMT</pubDate><guid>http://m.shnenglu.com/woaidongmao/archive/2011/05/10/146082.html</guid><wfw:comment>http://m.shnenglu.com/woaidongmao/comments/146082.html</wfw:comment><comments>http://m.shnenglu.com/woaidongmao/archive/2011/05/10/146082.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://m.shnenglu.com/woaidongmao/comments/commentRss/146082.html</wfw:commentRss><trackback:ping>http://m.shnenglu.com/woaidongmao/services/trackbacks/146082.html</trackback:ping><description><![CDATA[<p style="text-align: left; line-height: 150%; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; mso-pagination: widow-orphan" class="MsoNormal" align="left"><span style="line-height: 150%; font-family: 瀹嬩綋; letter-spacing: 0.75pt; font-size: 12pt; mso-bidi-font-family: tahoma; mso-font-kerning: 0pt">瑕佹垚涓轟竴浣嶄紭縐鐨勮蔣浠跺伐紼嬪笀錛岃皟璇曡兘鍔涘繀涓嶅彲緙恒傛湰鏂囧皢杈冭緇嗕粙緇?span lang="EN-US">VC6</span>璋冭瘯鍣ㄧ殑涓昏鐢ㄦ硶銆?span lang="EN-US"> <br>  windows</span>騫沖彴鐨勮皟璇曞櫒涓昏鍒嗕負(fù)涓ゅぇ綾伙細(xì)<span lang="EN-US"> <br>  1 </span>鐢ㄦ埛妯″紡<span lang="EN-US">(user-mode)</span>璋冭瘯鍣細(xì)瀹冧滑閮藉熀浜?span lang="EN-US">win32 Debugging API</span>錛屾湁浣跨敤鏂逛究鐨勭晫闈紝涓昏鐢ㄤ簬璋冭瘯鐢ㄦ埛妯″紡涓嬬殑搴旂敤紼嬪簭銆傝繖綾昏皟璇曞櫒鍖呮嫭<span lang="EN-US">Visual C++</span>璋冭瘯鍣ㄣ?span lang="EN-US">WinDBG</span>銆?span lang="EN-US">BoundChecker</span>銆?span lang="EN-US">Borland C++ Builder</span>璋冭瘯鍣ㄣ?span lang="EN-US">NTSD</span>絳夈?span lang="EN-US"> <br>  2 </span>鍐呮牳妯″紡<span lang="EN-US">(kernel-mode)</span>璋冭瘯鍣細(xì)鍐呮牳璋冭瘯鍣ㄤ綅浜?span lang="EN-US">CPU</span>鍜屾搷浣滅郴緇熶箣闂達(dá)紝涓鏃﹀惎鍔紝鎿嶄綔緋葷粺涔熶細(xì)涓榪愯錛屼富瑕佺敤浜庤皟璇曢┍鍔ㄧ▼搴忔垨鐢ㄦ埛妯″紡璋冭瘯鍣ㄤ笉鏄撹皟璇曠殑紼嬪簭銆傝繖綾昏皟璇曞櫒鍖呮嫭<span lang="EN-US">WDEB386</span>銆?span lang="EN-US">WinDBG</span>鍜?span lang="EN-US">softice</span>絳夈傚叾涓?span lang="EN-US">WinDBG</span>鍜?span lang="EN-US">softice</span>涔熷彲浠ヨ皟璇曠敤鎴鋒ā寮忎唬鐮併?span lang="EN-US"> <br>  </span>鍥藉涓浣嶈皟璇曢珮鎵嬫浘璇達(dá)紝浠?span lang="EN-US">70</span>錛呰皟璇曟椂闂存槸鍦ㄧ敤<span lang="EN-US">VC++</span>錛屽叾浣欐椂闂存槸浣跨敤<span lang="EN-US">WinDBG</span>鍜?span lang="EN-US">softice</span>銆傛瘯绔燂紝璋冭瘯鐢ㄦ埛妯″紡浠g爜錛?span lang="EN-US">VC6</span>璋冭瘯鍣ㄧ殑鏁堢巼鏄潪甯擱珮鐨勩傚洜姝わ紝鎴戝皢棣栧厛鍦ㄦ湰綃囦粙緇?span lang="EN-US">VC6</span>璋冭瘯鍣ㄧ殑涓昏鐢ㄦ硶錛屽叾浠栬皟璇曞櫒鐨勭敤娉曞強涓浜涜皟璇曟妧鑳藉湪鍚庣畫鏂囩珷涓槓榪般?span lang="EN-US"> <br><br></span><b>涓 浣嶇疆鏂偣錛?span lang="EN-US">Location Breakpoint</span>錛?/b><span lang="EN-US"> <br>  </span>澶у鏈甯哥敤鐨勬柇鐐規(guī)槸鏅氱殑浣嶇疆鏂偣錛屽湪婧愮▼搴忕殑鏌愪竴琛屾寜<span lang="EN-US">F9</span>灝辮緗簡涓涓綅緗柇鐐廣備絾瀵逛簬寰堝闂錛岃繖縐嶆湸绱犵殑鏂偣浣滅敤鏈夐檺銆傝濡備笅闈㈣繖孌典唬鐮侊細(xì) <span lang="EN-US"><?xml:namespace prefix = o /><o:p></o:p></span></span></p> <p style="text-align: left; line-height: 150%; mso-pagination: widow-orphan; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt" class="MsoNormal" align="left"><span style="line-height: 150%; font-family: 瀹嬩綋; letter-spacing: 0.75pt; font-size: 12pt; mso-bidi-font-family: 瀹嬩綋; mso-font-kerning: 0pt" lang="EN-US">void CForDebugDlg::OnOK() <span style="mso-tab-count: 1"></span><o:p></o:p></span></p> <p style="text-align: left; line-height: 150%; mso-pagination: widow-orphan; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt" class="MsoNormal" align="left"><span style="line-height: 150%; font-family: 瀹嬩綋; letter-spacing: 0.75pt; font-size: 12pt; mso-bidi-font-family: 瀹嬩綋; mso-font-kerning: 0pt" lang="EN-US">{<o:p></o:p></span></p> <p style="text-align: left; line-height: 150%; mso-pagination: widow-orphan; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt" class="MsoNormal" align="left"><span style="line-height: 150%; font-family: 瀹嬩綋; letter-spacing: 0.75pt; font-size: 12pt; mso-bidi-font-family: 瀹嬩綋; mso-font-kerning: 0pt" lang="EN-US"><span style="mso-tab-count: 1">       </span>for (int i = 0; i < 1000; i++)<span style="mso-tab-count: 1">    </span>//A<o:p></o:p></span></p> <p style="text-align: left; line-height: 150%; mso-pagination: widow-orphan; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt" class="MsoNormal" align="left"><span style="line-height: 150%; font-family: 瀹嬩綋; letter-spacing: 0.75pt; font-size: 12pt; mso-bidi-font-family: 瀹嬩綋; mso-font-kerning: 0pt" lang="EN-US"><span style="mso-tab-count: 1">       </span>{<o:p></o:p></span></p> <p style="text-align: left; line-height: 150%; mso-pagination: widow-orphan; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt" class="MsoNormal" align="left"><span style="line-height: 150%; font-family: 瀹嬩綋; letter-spacing: 0.75pt; font-size: 12pt; mso-bidi-font-family: 瀹嬩綋; mso-font-kerning: 0pt" lang="EN-US"><span style="mso-tab-count: 2">              </span>int k = i * 10 - 2;<span style="mso-tab-count: 1"> </span>//B<o:p></o:p></span></p> <p style="text-align: left; line-height: 150%; mso-pagination: widow-orphan; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt" class="MsoNormal" align="left"><span style="line-height: 150%; font-family: 瀹嬩綋; letter-spacing: 0.75pt; font-size: 12pt; mso-bidi-font-family: 瀹嬩綋; mso-font-kerning: 0pt" lang="EN-US"><span style="mso-tab-count: 2">              </span>SendTo(k);<span style="mso-tab-count: 2">          </span>//C<o:p></o:p></span></p> <p style="text-align: left; line-height: 150%; mso-pagination: widow-orphan; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt" class="MsoNormal" align="left"><span style="line-height: 150%; font-family: 瀹嬩綋; letter-spacing: 0.75pt; font-size: 12pt; mso-bidi-font-family: 瀹嬩綋; mso-font-kerning: 0pt" lang="EN-US"><span style="mso-tab-count: 2">              </span>int tmp = DoSome(i);<span style="mso-tab-count: 1"> </span>//D<o:p></o:p></span></p> <p style="text-align: left; line-height: 150%; mso-pagination: widow-orphan; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt" class="MsoNormal" align="left"><span style="line-height: 150%; font-family: 瀹嬩綋; letter-spacing: 0.75pt; font-size: 12pt; mso-bidi-font-family: 瀹嬩綋; mso-font-kerning: 0pt" lang="EN-US"><span style="mso-tab-count: 2">              </span>int j = i / tmp;<span style="mso-tab-count: 1">    </span>//E<o:p></o:p></span></p> <p style="text-align: left; line-height: 150%; mso-pagination: widow-orphan; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt" class="MsoNormal" align="left"><span style="line-height: 150%; font-family: 瀹嬩綋; letter-spacing: 0.75pt; font-size: 12pt; mso-bidi-font-family: 瀹嬩綋; mso-font-kerning: 0pt" lang="EN-US"><span style="mso-tab-count: 1">       </span>}<o:p></o:p></span></p> <p style="text-align: left; line-height: 150%; mso-pagination: widow-orphan; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt" class="MsoNormal" align="left"><span style="line-height: 150%; font-family: 瀹嬩綋; letter-spacing: 0.75pt; font-size: 12pt; mso-bidi-font-family: 瀹嬩綋; mso-font-kerning: 0pt" lang="EN-US">}<span style="mso-spacerun: yes">      </span><o:p></o:p></span></p> <p style="text-align: left; line-height: 150%; mso-pagination: widow-orphan; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt" class="MsoNormal" align="left"><span style="line-height: 150%; font-family: 瀹嬩綋; letter-spacing: 0.75pt; font-size: 12pt; mso-bidi-font-family: 瀹嬩綋; mso-font-kerning: 0pt" lang="EN-US"><span style="mso-spacerun: yes">      </span><o:p></o:p></span></p> <p style="text-align: left; line-height: 150%; mso-pagination: widow-orphan" class="MsoNormal" align="left"><span style="line-height: 150%; font-family: 瀹嬩綋; letter-spacing: 0.75pt; font-size: 12pt; mso-bidi-font-family: tahoma; mso-font-kerning: 0pt" lang="EN-US">  </span><span style="line-height: 150%; font-family: 瀹嬩綋; letter-spacing: 0.75pt; font-size: 12pt; mso-bidi-font-family: tahoma; mso-font-kerning: 0pt">鎵ц姝ゅ嚱鏁幫紝紼嬪簭宕╂簝浜?span lang="EN-US">E</span>琛岋紝鍙戠幇姝ゆ椂<span lang="EN-US">tmp</span>涓?span lang="EN-US">0</span>錛屽亣璁?span lang="EN-US">tmp</span>鏈笉搴旇涓?span lang="EN-US">0</span>錛屾庝箞榪欎釜鏃跺欎負(fù)<span lang="EN-US">0</span>鍛紵鎵浠ユ渶濂借兘澶熻窡韙嬈″驚鐜椂<span lang="EN-US">DoSome</span>鍑芥暟鏄浣曡繍琛岀殑錛屼絾鐢變簬鏄湪寰幆浣撳唴錛屽鏋滃湪<span lang="EN-US">E</span>琛岃緗柇鐐癸紝鍙兘闇瑕佹寜<span lang="EN-US">F5</span>錛?span lang="EN-US">GO</span>錛夎澶氭銆傝繖鏍鋒墜瑕佷笉鍋滅殑鎸夛紝寰堢棝鑻︺備嬌鐢?span lang="EN-US">VC6</span>鏂偣淇グ鏉′歡灝卞彲浠ヨ交鏄撹В鍐蟲闂銆傛楠ゅ涓嬨?span lang="EN-US"> <br>  1 Ctrl+B</span>鎵撳紑鏂偣璁劇疆妗嗭紝濡備笅鍥撅細(xì)<span lang="EN-US"> <br><a href="http://m.shnenglu.com/images/cppblog_com/woaidongmao/WindowsLiveWriter/vc6_9B2B/clip_image001_2.jpg"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="clip_image001" border="0" alt="clip_image001" src="http://m.shnenglu.com/images/cppblog_com/woaidongmao/WindowsLiveWriter/vc6_9B2B/clip_image001_thumb.jpg" width="573" height="376" v:shapes="_x0000_i1025"></a><br><b><span style="color: blue">Figure 1</span></b></span><span style="color: blue">璁劇疆楂樼駭浣嶇疆鏂偣</span><span lang="EN-US"> <br>  2 </span>鐒跺悗閫夋嫨<span lang="EN-US">D</span>琛屾墍鍦ㄧ殑鏂偣錛岀劧鍚庣偣鍑?span lang="EN-US">condition</span>鎸夐挳錛屽湪寮瑰嚭瀵硅瘽妗嗙殑鏈涓嬮潰涓涓紪杈戞涓緭鍏ヤ竴涓緢澶ф暟鐩紝鍏蜂綋瑙嗗簲鐢ㄨ屽畾錛岃繖閲?span lang="EN-US">1000</span>灝卞浜嗐?span lang="EN-US"> <br>  3 </span>鎸?span lang="EN-US">F5</span>閲嶆柊榪愯紼嬪簭錛岀▼搴忎腑鏂?span lang="EN-US">Ctrl+B</span>鎵撳紑鏂偣妗嗭紝鍙戠幇姝ゆ柇鐐瑰悗璺熼殢涓涓茶鏄庯細(xì)<span lang="EN-US">...487 times remaining</span>銆傛剰鎬濇槸榪樺墿涓?span lang="EN-US">487</span>嬈℃病鏈夋墽琛岋紝閭e氨鏄鎵ц鍒?span lang="EN-US">513</span>錛?span lang="EN-US">1000</span>錛?span lang="EN-US">487</span>錛夋鏃跺欏嚭閿欑殑銆傚洜姝わ紝鎴戜滑鎸夋楠?span lang="EN-US">2</span>鎵璁詫紝鏇存敼姝ゆ柇鐐圭殑<span lang="EN-US">skip</span>嬈℃暟<span lang="EN-US">,</span>灝?span lang="EN-US">1000</span>鏀逛負(fù)<span lang="EN-US">513</span>銆?span lang="EN-US"> <br>  4 </span>鍐嶆閲嶆柊榪愯紼嬪簭錛岀▼搴忔墽琛屼簡<span lang="EN-US">513</span>嬈″驚鐜紝鐒跺悗鑷姩鍋滃湪鏂偣澶勩傝繖鏃訛紝鎴戜滑灝卞彲浠ヤ粩緇嗘煡鐪?span lang="EN-US">DoSome</span>鏄浣曡繑鍥?span lang="EN-US">0</span>鐨勩傝繖鏍鳳紝浣犲氨閬垮厤浜嗘墜鎸囩殑鐥涜嫤錛岃妭鐪佷簡鏃墮棿銆?span lang="EN-US"> <br>  </span>鍐嶇湅浣嶇疆鏂偣鍏朵粬淇グ鏉′歡銆傚<b><span lang="EN-US">Figure 1</span></b>鎵紺猴紝鍦?span lang="EN-US">鈥淓nter the expression to be evaluated:鈥?/span>涓嬮潰錛屽彲浠ヨ緭鍏ヤ竴浜涙潯浠訛紝褰撹繖浜涙潯浠舵弧瓚蟲椂錛屾柇鐐規(guī)墠鍚姩銆傝濡傦紝鍒氭墠鐨勭▼搴忥紝鎴戜滑闇瑕?span lang="EN-US">i</span>涓?span lang="EN-US">100</span>鏃剁▼搴忓仠涓嬫潵錛屾垜浠氨鍙互杈撳叆鍦ㄧ紪杈戞涓緭鍏?span lang="EN-US">鈥渋==<?xml:namespace prefix = st1 /><st1:chmetcnv w:st="on" tcsc="0" numbertype="1" negative="False" hasspace="False" sourcevalue="100" unitname="”">100鈥?/st1:chmetcnv></span>銆?span lang="EN-US"> <br>  </span>鍙﹀錛屽鏋滃湪姝ょ紪杈戞涓鏋滃彧杈撳叆鍙橀噺鍚嶇О錛屽垯鍙橀噺鍙戠敓鏀瑰彉鏃訛紝鏂偣鎵嶄細(xì)鍚姩銆傝繖瀵規(guī)嫻嬩竴涓彉閲忎綍鏃惰淇敼寰堟柟渚匡紝鐗瑰埆瀵逛竴浜涘ぇ紼嬪簭銆?span lang="EN-US"> <br>  </span>鐢ㄥソ浣嶇疆鏂偣鐨勪慨楗版潯浠訛紝鍙互澶уぇ鏂逛究瑙e喅鏌愪簺闂銆?span lang="EN-US"> <br><br></span><b>浜?鏁版嵁鏂偣錛?span lang="EN-US">Data Breakpoint</span>錛?/b><span lang="EN-US"> <br>  </span>杞歡璋冭瘯榪囩▼涓紝鏈夋椂浼?xì)鍙戠庮C竴浜涙暟鎹細(xì)鑾悕鍏跺鐨勮淇敼鎺夛紙濡備竴浜涙暟緇勭殑瓚婄晫鍐欏鑷磋鐩栦簡鍙﹀鐨勫彉閲忥級錛屾壘鍑轟綍澶勪唬鐮佸鑷磋繖鍧楀唴瀛樿鏇存敼鏄竴浠舵鎵嬬殑浜嬫儏錛堝鏋滄病鏈夎皟璇曞櫒鐨勫府鍔╋級銆傛伆褰撹繍鐢ㄦ暟鎹柇鐐瑰彲浠ュ揩閫熷府浣犲畾浣嶄綍鏃朵綍澶勮繖涓暟鎹淇敼銆傝濡備笅闈竴孌電▼搴忥細(xì) <span lang="EN-US"><o:p></o:p></span></span></p> <p style="text-align: left; line-height: 150%; mso-pagination: widow-orphan; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt" class="MsoNormal" align="left"><span style="line-height: 150%; font-family: 瀹嬩綋; letter-spacing: 0.75pt; font-size: 12pt; mso-bidi-font-family: 瀹嬩綋; mso-font-kerning: 0pt" lang="EN-US">#include "stdafx.h"<o:p></o:p></span></p> <p style="text-align: left; line-height: 150%; mso-pagination: widow-orphan; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt" class="MsoNormal" align="left"><span style="line-height: 150%; font-family: 瀹嬩綋; letter-spacing: 0.75pt; font-size: 12pt; mso-bidi-font-family: 瀹嬩綋; mso-font-kerning: 0pt" lang="EN-US">#include <o:p></o:p></span></p> <p style="text-align: left; line-height: 150%; mso-pagination: widow-orphan; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt" class="MsoNormal" align="left"><span style="line-height: 150%; font-family: 瀹嬩綋; letter-spacing: 0.75pt; font-size: 12pt; mso-bidi-font-family: 瀹嬩綋; mso-font-kerning: 0pt" lang="EN-US"><o:p> </o:p></span></p> <p style="text-align: left; line-height: 150%; mso-pagination: widow-orphan; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt" class="MsoNormal" align="left"><span style="line-height: 150%; font-family: 瀹嬩綋; letter-spacing: 0.75pt; font-size: 12pt; mso-bidi-font-family: 瀹嬩綋; mso-font-kerning: 0pt" lang="EN-US">int main(int argc, char* argv[])<o:p></o:p></span></p> <p style="text-align: left; line-height: 150%; mso-pagination: widow-orphan; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt" class="MsoNormal" align="left"><span style="line-height: 150%; font-family: 瀹嬩綋; letter-spacing: 0.75pt; font-size: 12pt; mso-bidi-font-family: 瀹嬩綋; mso-font-kerning: 0pt" lang="EN-US">{<o:p></o:p></span></p> <p style="text-align: left; line-height: 150%; mso-pagination: widow-orphan; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt" class="MsoNormal" align="left"><span style="line-height: 150%; font-family: 瀹嬩綋; letter-spacing: 0.75pt; font-size: 12pt; mso-bidi-font-family: 瀹嬩綋; mso-font-kerning: 0pt" lang="EN-US"><span style="mso-tab-count: 1">       </span>char szName1[10];<o:p></o:p></span></p> <p style="text-align: left; line-height: 150%; mso-pagination: widow-orphan; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt" class="MsoNormal" align="left"><span style="line-height: 150%; font-family: 瀹嬩綋; letter-spacing: 0.75pt; font-size: 12pt; mso-bidi-font-family: 瀹嬩綋; mso-font-kerning: 0pt" lang="EN-US"><span style="mso-tab-count: 1">       </span>char szName2[4];<o:p></o:p></span></p> <p style="text-align: left; line-height: 150%; mso-pagination: widow-orphan; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt" class="MsoNormal" align="left"><span style="line-height: 150%; font-family: 瀹嬩綋; letter-spacing: 0.75pt; font-size: 12pt; mso-bidi-font-family: 瀹嬩綋; mso-font-kerning: 0pt" lang="EN-US"><span style="mso-tab-count: 1">       </span>strcpy(szName1,"shenzhen");<span style="mso-tab-count: 2">              </span><o:p></o:p></span></p> <p style="text-align: left; line-height: 150%; mso-pagination: widow-orphan; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt" class="MsoNormal" align="left"><span style="line-height: 150%; font-family: 瀹嬩綋; letter-spacing: 0.75pt; font-size: 12pt; mso-bidi-font-family: 瀹嬩綋; mso-font-kerning: 0pt" lang="EN-US"><span style="mso-tab-count: 1">       </span>printf("%s\n", szName1);<span style="mso-tab-count: 2">          </span>//A<o:p></o:p></span></p> <p style="text-align: left; line-height: 150%; mso-pagination: widow-orphan; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt" class="MsoNormal" align="left"><span style="line-height: 150%; font-family: 瀹嬩綋; letter-spacing: 0.75pt; font-size: 12pt; mso-bidi-font-family: 瀹嬩綋; mso-font-kerning: 0pt" lang="EN-US"><o:p> </o:p></span></p> <p style="text-align: left; line-height: 150%; mso-pagination: widow-orphan; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt" class="MsoNormal" align="left"><span style="line-height: 150%; font-family: 瀹嬩綋; letter-spacing: 0.75pt; font-size: 12pt; mso-bidi-font-family: 瀹嬩綋; mso-font-kerning: 0pt" lang="EN-US"><span style="mso-tab-count: 1">       </span>strcpy(szName2, "vckbase");<span style="mso-tab-count: 2">              </span>//B<o:p></o:p></span></p> <p style="text-align: left; line-height: 150%; mso-pagination: widow-orphan; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt" class="MsoNormal" align="left"><span style="line-height: 150%; font-family: 瀹嬩綋; letter-spacing: 0.75pt; font-size: 12pt; mso-bidi-font-family: 瀹嬩綋; mso-font-kerning: 0pt" lang="EN-US"><span style="mso-tab-count: 1">       </span>printf("%s\n", szName1);<o:p></o:p></span></p> <p style="text-align: left; line-height: 150%; mso-pagination: widow-orphan; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt" class="MsoNormal" align="left"><span style="line-height: 150%; font-family: 瀹嬩綋; letter-spacing: 0.75pt; font-size: 12pt; mso-bidi-font-family: 瀹嬩綋; mso-font-kerning: 0pt" lang="EN-US"><span style="mso-tab-count: 1">       </span>printf("%s\n", szName2);<o:p></o:p></span></p> <p style="text-align: left; line-height: 150%; mso-pagination: widow-orphan; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt" class="MsoNormal" align="left"><span style="line-height: 150%; font-family: 瀹嬩綋; letter-spacing: 0.75pt; font-size: 12pt; mso-bidi-font-family: 瀹嬩綋; mso-font-kerning: 0pt" lang="EN-US"><o:p> </o:p></span></p> <p style="text-align: left; line-height: 150%; mso-pagination: widow-orphan; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt" class="MsoNormal" align="left"><span style="line-height: 150%; font-family: 瀹嬩綋; letter-spacing: 0.75pt; font-size: 12pt; mso-bidi-font-family: 瀹嬩綋; mso-font-kerning: 0pt" lang="EN-US"><span style="mso-tab-count: 1">       </span>return 0;<o:p></o:p></span></p> <p style="text-align: left; line-height: 150%; mso-pagination: widow-orphan; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt" class="MsoNormal" align="left"><span style="line-height: 150%; font-family: 瀹嬩綋; letter-spacing: 0.75pt; font-size: 12pt; mso-bidi-font-family: 瀹嬩綋; mso-font-kerning: 0pt" lang="EN-US">}<o:p></o:p></span></p> <p style="text-align: left; line-height: 150%; mso-pagination: widow-orphan; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt" class="MsoNormal" align="left"><span style="line-height: 150%; font-family: 瀹嬩綋; letter-spacing: 0.75pt; font-size: 12pt; mso-bidi-font-family: 瀹嬩綋; mso-font-kerning: 0pt" lang="EN-US"><span style="mso-spacerun: yes">      </span><o:p></o:p></span></p> <p style="text-align: left; line-height: 150%; mso-pagination: widow-orphan" class="MsoNormal" align="left"><span style="line-height: 150%; font-family: 瀹嬩綋; letter-spacing: 0.75pt; font-size: 12pt; mso-bidi-font-family: tahoma; mso-font-kerning: 0pt" lang="EN-US">  </span><span style="line-height: 150%; font-family: 瀹嬩綋; letter-spacing: 0.75pt; font-size: 12pt; mso-bidi-font-family: tahoma; mso-font-kerning: 0pt">榪欐紼嬪簭鐨勮緭鍑烘槸 <span lang="EN-US"><o:p></o:p></span></span></p> <p style="text-align: left; line-height: 150%; mso-pagination: widow-orphan; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt" class="MsoNormal" align="left"><span style="line-height: 150%; font-family: 瀹嬩綋; letter-spacing: 0.75pt; font-size: 12pt; mso-bidi-font-family: 瀹嬩綋; mso-font-kerning: 0pt" lang="EN-US"><span style="mso-spacerun: yes">      </span><span style="mso-tab-count: 1">       </span>szName1: shenzhen<o:p></o:p></span></p> <p style="text-align: left; line-height: 150%; mso-pagination: widow-orphan; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt" class="MsoNormal" align="left"><span style="line-height: 150%; font-family: 瀹嬩綋; letter-spacing: 0.75pt; font-size: 12pt; mso-bidi-font-family: 瀹嬩綋; mso-font-kerning: 0pt" lang="EN-US"><span style="mso-tab-count: 1">       </span>szName1: ase<o:p></o:p></span></p> <p style="text-align: left; line-height: 150%; mso-pagination: widow-orphan; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt" class="MsoNormal" align="left"><span style="line-height: 150%; font-family: 瀹嬩綋; letter-spacing: 0.75pt; font-size: 12pt; mso-bidi-font-family: 瀹嬩綋; mso-font-kerning: 0pt" lang="EN-US"><span style="mso-tab-count: 1">       </span>szName2: vckbase<o:p></o:p></span></p> <p style="text-align: left; line-height: 150%; mso-pagination: widow-orphan; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt" class="MsoNormal" align="left"><span style="line-height: 150%; font-family: 瀹嬩綋; letter-spacing: 0.75pt; font-size: 12pt; mso-bidi-font-family: 瀹嬩綋; mso-font-kerning: 0pt" lang="EN-US"><span style="mso-spacerun: yes">     </span><o:p></o:p></span></p> <p style="line-height: 150%" class="MsoNormal"><span style="line-height: 150%; font-family: 瀹嬩綋; letter-spacing: 0.75pt; font-size: 12pt; mso-bidi-font-family: tahoma; mso-font-kerning: 0pt" lang="EN-US">szName1</span><span style="line-height: 150%; font-family: 瀹嬩綋; letter-spacing: 0.75pt; font-size: 12pt; mso-bidi-font-family: tahoma; mso-font-kerning: 0pt">浣曟椂琚慨鏀瑰憿錛熷洜涓烘病鏈夋槑鏄劇殑淇敼<span lang="EN-US">szName1</span>浠g爜銆傛垜浠彲浠ラ鍏堝湪<span lang="EN-US">A</span>琛岃緗櫘閫氭柇鐐癸紝<span lang="EN-US">F5</span>榪愯紼嬪簭錛岀▼搴忓仠鍦?span lang="EN-US">A</span>琛屻傜劧鍚庢垜浠啀璁劇疆涓涓暟鎹柇鐐廣傚涓嬪浘錛?span lang="EN-US"> <br><a href="http://m.shnenglu.com/images/cppblog_com/woaidongmao/WindowsLiveWriter/vc6_9B2B/clip_image002_2.jpg"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="clip_image002" border="0" alt="clip_image002" src="http://m.shnenglu.com/images/cppblog_com/woaidongmao/WindowsLiveWriter/vc6_9B2B/clip_image002_thumb.jpg" width="656" height="381" v:shapes="_x0000_i1026"></a><br><b><span style="color: blue">Figure 2</span></b><span style="color: blue"> </span></span><span style="color: blue">鏁版嵁鏂偣</span><span lang="EN-US"> <br>  F5</span>緇х畫榪愯錛岀▼搴忓仠鍦?span lang="EN-US">B</span>琛岋紝璇存槑<span lang="EN-US">B</span>澶勪唬鐮佷慨鏀逛簡<span lang="EN-US">szName1</span>銆?span lang="EN-US">B</span>澶勬槑鏄庢病鏈変慨鏀?span lang="EN-US">szName1</span>鍛錛熶絾璋冭瘯鍣ㄦ寚鏄庢槸榪欎竴琛岋紝涓鑸笉浼?xì)閿欏Q屾墍浠ヨ繕鏄潤涓嬪績鏉ョ湅鐪嬬▼搴忥紝鍝︼紝浣犲彂鐜頒簡錛?span lang="EN-US">szName2</span>鍙湁<span lang="EN-US">4</span>涓瓧鑺傦紝鑰?span lang="EN-US">strcpy</span>浜?span lang="EN-US">7</span>涓瓧鑺傦紝鎵浠ヨ鍐欎簡<span lang="EN-US">szName1</span>銆?span lang="EN-US"> <br>  </span>鏁版嵁鏂偣涓嶅彧鏄鍙橀噺鏀瑰彉鏈夋晥錛岃繕鍙互璁劇疆鍙橀噺鏄惁絳変簬鏌愪釜鍊箋傝濡傦紝浣犲彲浠ュ皢<span lang="EN-US">Figure 2</span>涓孩鍦堝鏀逛負(fù)鏉′歡<span lang="EN-US">鈥漵zName2[0]==''''y''''鈥?</span>閭d箞褰?span lang="EN-US">szName2</span>絎竴涓瓧絎︿負(fù)<span lang="EN-US">y</span>鏃舵柇鐐瑰氨浼?xì)鍚姩銆?span lang="EN-US"> <br>  </span>鍙互鐪嬪嚭錛屾暟鎹柇鐐圭浉瀵逛綅緗柇鐐逛竴涓緢澶х殑鍖哄埆鏄笉鐢ㄦ槑紜寚鏄庡湪鍝竴琛屼唬鐮佽緗柇鐐廣?span lang="EN-US"> <br><br></span><b>涓?鍏朵粬</b><span lang="EN-US"> <br>  1 </span>鍦?span lang="EN-US">call stack</span>紿楀彛涓緗柇鐐癸紝閫夋嫨鏌愪釜鍑芥暟錛屾寜<span lang="EN-US">F9</span>璁劇疆涓涓柇鐐廣傝繖鏍峰彲浠ヤ粠娣卞眰嬈$殑鍑芥暟璋冪敤涓繀閫熻繑鍥炲埌闇瑕佺殑鍑芥暟銆?span lang="EN-US"> <br>  2 Set Next StateMent</span>鍛戒護錛?span lang="EN-US">debug</span>榪囩▼涓紝鍙抽敭鑿滃崟涓殑鍛戒護錛?span lang="EN-US"> <br>  </span>姝ゅ懡浠ょ殑浣滅敤鏄皢紼嬪簭鐨勬寚浠ゆ寚閽堬紙<span lang="EN-US">EIP</span>錛夋寚鍚戜笉鍚岀殑浠g爜琛屻傝濡傦紝浣犳鍦ㄨ皟璇曚笂闈㈤偅孌典唬鐮侊紝榪愯鍦?span lang="EN-US">A</span>琛岋紝浣嗕綘涓嶆効鎰忚繍琛?span lang="EN-US">B</span>琛屽拰<span lang="EN-US">C</span>琛屼唬鐮侊紝榪欐椂錛屼綘灝卞彲浠ュ湪<span lang="EN-US">D</span>琛岋紝鍙抽敭錛岀劧鍚?span lang="EN-US">鈥淪et Next StateMent鈥?/span>銆傝皟璇曞櫒灝變笉浼?xì)鎵ц?span lang="EN-US">B</span>銆?span lang="EN-US">C</span>琛屻傚彧瑕佸湪鍚屼竴鍑芥暟鍐咃紝姝ゆ寚浠ゅ氨鍙互闅忔剰璺沖墠鎴栬煩鍚庢墽琛屻傜伒媧諱嬌鐢ㄦ鍔熻兘鍙互澶ч噺鑺傜渷璋冭瘯鏃墮棿銆?span lang="EN-US"> <br>  3 watch</span>紿楀彛<span lang="EN-US"> <br>  watch</span>紿楀彛鏀寔涓板瘜鐨勬暟鎹牸寮忓寲鍔熻兘銆傚杈撳叆<span lang="EN-US">0x65,u</span>錛屽垯鍦ㄥ彸鏍忔樉紺?span lang="EN-US">101</span>銆?span lang="EN-US"> <br>  </span>瀹炴椂鏄劇ず<span lang="EN-US">windows API</span>璋冪敤鐨勯敊璇細(xì)鍦ㄥ乏鏍忚緭鍏?span lang="EN-US">@err,hr</span>銆?span lang="EN-US"> <br>  </span>鍦?span lang="EN-US">watch</span>紿楀彛涓皟鐢ㄥ嚱鏁般傛彁閱掍竴涓嬶紝璋冪敤瀹屽嚱鏁板悗椹笂鍦?span lang="EN-US">watch</span>紿楀彛涓竻闄ゅ畠錛屽惁鍒欙紝鍗曟璋冭瘯鏃舵瘡涓姝ヨ皟璇曞櫒閮戒細(xì)璋冪敤姝ゅ嚱鏁般?span lang="EN-US"> <br>  4 messages</span>鏂偣涓嶆庝箞瀹炵敤銆傚熀鏈笂鍙互鐢ㄥ墠闈㈣榪扮殑鏂偣浠f浛銆?span lang="EN-US"> <br></span><b>鎬葷粨</b><span lang="EN-US"> <br>  </span>璋冭瘯鏈閲嶈鐨勮繕鏄綘瑕佹濊冿紝瑕佺寽嫻嬩綘鐨勭▼搴忓彲鑳藉嚭閿欑殑鍦版柟錛岀劧鍚庤繍鐢ㄤ綘鐨勮皟璇曞櫒鏉ヨ瘉瀹炰綘鐨勭寽嫻嬨傝岀啛緇冧嬌鐢ㄤ笂闈㈣繖浜涙妧宸ф棤鐤戜細(xì)鍔犲揩榪欎釜榪囩▼銆傛渶鍚庯紝澶у濡傛灉鏈夊叧浜庤皟璇曟柟闈㈢殑闂錛屾垜涔愭剰鍙備笌鎺㈣</span><span style="line-height: 150%; font-family: 瀹嬩綋; font-size: 12pt; mso-bidi-font-family: arial" lang="EN-US"><o:p></o:p></span></p><img src ="http://m.shnenglu.com/woaidongmao/aggbug/146082.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://m.shnenglu.com/woaidongmao/" target="_blank">鑲ヤ粩</a> 2011-05-10 11:01 <a href="http://m.shnenglu.com/woaidongmao/archive/2011/05/10/146082.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>榛樿鐨勮皟璇曞櫒http://m.shnenglu.com/woaidongmao/archive/2010/01/25/106377.html鑲ヤ粩鑲ヤ粩Mon, 25 Jan 2010 04:13:00 GMThttp://m.shnenglu.com/woaidongmao/archive/2010/01/25/106377.htmlhttp://m.shnenglu.com/woaidongmao/comments/106377.htmlhttp://m.shnenglu.com/woaidongmao/archive/2010/01/25/106377.html#Feedback0http://m.shnenglu.com/woaidongmao/comments/commentRss/106377.htmlhttp://m.shnenglu.com/woaidongmao/services/trackbacks/106377.html濡傛灉涓涓嚎紼嬬殑寮傚父娌℃湁琚鐞嗭紝鍒?span lang=EN-US>Windows鐨勬湭澶勭悊寮傚父榪囨護鍣ㄥ皢浼?xì)琚皟鐢ㄣ傝繖涓嚱鏁版牴鎹敞鍐岃〃

HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\AeDebug

閿腑鐨勫唴瀹規(guī)潵瀵規(guī)湭澶勭悊鐨勫紓甯擱噰鍙栦竴縐嶇粺涓鐨勮涓哄拰鏂規(guī)硶銆?span lang=EN-US>

璇ラ敭涓殑

Auto: 鍐沖畾鏄嚜鍔ㄨ繍琛岃皟璇曞櫒錛岃繕鏄鐢ㄦ埛鍐沖畾

Debugger: 鏄寚鍚戣皟璇曞櫒鍙墽琛屾枃浠剁殑璺緞鐨勫瓧絎︿覆

-------------------------------------------------------------------------------------------

鎹瀵燂紝鍦ㄦ垜瑁呬簡vs2005涔嬪悗

"Auto"="1"
"Debugger"="\"C:\\WINDOWS\\system32\\vsjitdebugger.exe\" -p %ld -e %ld"

琛ㄧず灝嗚嚜鍔ㄨ繍琛岃皟璇曞櫒

-------------------------------------------------------------------------------------------

鑰?span lang=EN-US>Windows榛樿鐨勮皟璇曞櫒鏄?span lang=EN-US>Dr.Watson

瀹冩崟鑾峰簲鐢ㄧ▼搴忓簲鐢ㄧ▼搴忓穿婧冪姸鎬侊紝騫惰褰曟棩蹇楁枃浠訛紙Drwtsn32.log錛夊拰榪涚▼宕╂簝杞偍鏂囦歡錛?span lang=EN-US>User.dmp錛夈?span lang=EN-US>

瑕佹兂鏌ョ湅騫墮厤緗?span lang=EN-US>Dr.Watson錛屽彲浠ュ湪榪愯涓緭鍏?span lang=EN-US>Drwtsn32.exe銆?span lang=EN-US>

瑕佹兂鎭㈠緋葷粺鍒濆鐘舵佸垯鍙互榪愯 Drwtsn32 -i

榪欐牱娉ㄥ唽琛ㄧ殑閭d袱涓間細(xì)鍙樻垚

"Auto"="1"
"Debugger"="drwtsn32 -p %ld -e %ld -g"

-------------------------------------------------------------------------------------------

 



鑲ヤ粩 2010-01-25 12:13 鍙戣〃璇勮
]]>
Chrome鐨凜rash Report鏈嶅姟http://m.shnenglu.com/woaidongmao/archive/2009/10/22/99211.html鑲ヤ粩鑲ヤ粩Thu, 22 Oct 2009 11:33:00 GMThttp://m.shnenglu.com/woaidongmao/archive/2009/10/22/99211.htmlhttp://m.shnenglu.com/woaidongmao/comments/99211.htmlhttp://m.shnenglu.com/woaidongmao/archive/2009/10/22/99211.html#Feedback1http://m.shnenglu.com/woaidongmao/comments/commentRss/99211.htmlhttp://m.shnenglu.com/woaidongmao/services/trackbacks/99211.html闃呰鍏ㄦ枃

鑲ヤ粩 2009-10-22 19:33 鍙戣〃璇勮
]]>
涔熻皥Release鐗堟湰鎺掗敊http://m.shnenglu.com/woaidongmao/archive/2009/10/22/99210.html鑲ヤ粩鑲ヤ粩Thu, 22 Oct 2009 11:28:00 GMThttp://m.shnenglu.com/woaidongmao/archive/2009/10/22/99210.htmlhttp://m.shnenglu.com/woaidongmao/comments/99210.htmlhttp://m.shnenglu.com/woaidongmao/archive/2009/10/22/99210.html#Feedback0http://m.shnenglu.com/woaidongmao/comments/commentRss/99210.htmlhttp://m.shnenglu.com/woaidongmao/services/trackbacks/99210.html闃呰鍏ㄦ枃

鑲ヤ粩 2009-10-22 19:28 鍙戣〃璇勮
]]>
MiniDump灝忕粨http://m.shnenglu.com/woaidongmao/archive/2009/10/22/99201.html鑲ヤ粩鑲ヤ粩Thu, 22 Oct 2009 09:27:00 GMThttp://m.shnenglu.com/woaidongmao/archive/2009/10/22/99201.htmlhttp://m.shnenglu.com/woaidongmao/comments/99201.htmlhttp://m.shnenglu.com/woaidongmao/archive/2009/10/22/99201.html#Feedback0http://m.shnenglu.com/woaidongmao/comments/commentRss/99201.htmlhttp://m.shnenglu.com/woaidongmao/services/trackbacks/99201.html1銆佹寕寮傚父閾句嬌鐢?span lang=EN-US>SetUnhandledExceptionFilter
2銆佸湪璋冭瘯鐘舵佷笅鏃犳晥

3銆佸彂鐢熷紓甯哥殑鏃跺欎負(fù)浜嗕繚鐣欑幇鍦哄爢鏍堥渶瑕佸喕緇撹繘紼嬪唴鍏朵粬綰跨▼錛屾墍浣跨敤鐨勬搷浣滆秺灝戣秺濂姐?span lang=EN-US>

4銆佸紑鍚彟澶栦竴涓繘紼嬪寮傚父榪涚▼榪涜MiniDump銆?span lang=EN-US>

5銆佸鏋滆鍒嗘瀽宕╂簝鍦板潃鏄惁鍦ㄦ煇涓ā鍧楋紝鏈濂藉湪鍒嗘瀽榪涚▼閲屽仛銆傛垨鑰呭湪妯″潡鍔犺澆鏃惰綆楁ā鍧楀尯鍩熶互渚垮湪寮傚父鏃跺揩閫熷畾浣嶃傚垽鏂穿婧冩槸鍚﹀拰鏌愪釜妯″潡鐩稿叧錛屽彧鑳介氳繃鍒嗘瀽鍫嗘爤閲岀殑妯″潡鏉ヨ瘑鍒紝浣跨敤StackWalk鍑芥暟銆?span lang=EN-US>StackWalk鍑芥暟閲屾墍浣跨敤鐨?span lang=EN-US>context鍙傛暟瑕佷嬌鐢ㄥ紓甯稿弬鏁伴噷鐨?span lang=EN-US>ContextRecord錛岃繖鏍瘋兘鍒嗘瀽鍦ㄥ穿婧冪殑鏃跺欑殑鍫嗘爤錛岃屼笉浼?xì)鍙楀悗闈㈡搷浣滅殑濯勫搷銆?span lang=EN-US>

6銆佸鏋滃笇鏈涜嚜宸辨槸絎竴涓璋冪敤錛屽彲浠ュ湪鎸傞摼涔嬪悗鐢?span lang=EN-US>APIHook璁劇疆SetUnhandledExceptionFilter榪斿洖絀恒?span lang=EN-US>

7銆佸湪鍐葷粨綰跨▼鐨勬椂鍊欙紝涓嶈鎵?span lang=EN-US>MessageBox錛屼細(xì)瀵艱嚧褰撳墠綰跨▼鍥犱負(fù)鍏朵粬綰跨▼鎸傝搗鑰岄樆姝匯?span lang=EN-US>

8銆佸紓甯擱櫎浜?span lang=EN-US>SetUnHandledExceptionFliter涔嬪錛岃繕鏈?span lang=EN-US>AddVectoredExceptionHandler錛岀浉瀵逛簬鍓嶈咃紝鍚庤呯殑浼樼偣鏄兘澶熻寮傚父鎸夌収閾懼紡瑙﹀彂錛屼笉浼?xì)琚腑闂磋妭鐐规柇寮銆備絾鏄?span lang=EN-US>AddVectoredExceptionHandler鏃犳硶鍦?span lang=EN-US>2K涓嬩嬌鐢ㄣ傘傘?span lang=EN-US>

 



鑲ヤ粩 2009-10-22 17:27 鍙戣〃璇勮
]]>
寮傚父澶勭悊涓嶮iniDump璇﹁В(1,2,3,4)http://m.shnenglu.com/woaidongmao/archive/2009/10/22/99200.html鑲ヤ粩鑲ヤ粩Thu, 22 Oct 2009 09:15:00 GMThttp://m.shnenglu.com/woaidongmao/archive/2009/10/22/99200.htmlhttp://m.shnenglu.com/woaidongmao/comments/99200.htmlhttp://m.shnenglu.com/woaidongmao/archive/2009/10/22/99200.html#Feedback0http://m.shnenglu.com/woaidongmao/comments/commentRss/99200.htmlhttp://m.shnenglu.com/woaidongmao/services/trackbacks/99200.htmlhttp://blog.csdn.net/vagrxie/archive/2009/07/02/4317423.aspx



鑲ヤ粩 2009-10-22 17:15 鍙戣〃璇勮
]]>
鍒╃敤VS2005榪涜dump鏂囦歡璋冭瘯http://m.shnenglu.com/woaidongmao/archive/2009/10/21/99135.html鑲ヤ粩鑲ヤ粩Wed, 21 Oct 2009 10:58:00 GMThttp://m.shnenglu.com/woaidongmao/archive/2009/10/21/99135.htmlhttp://m.shnenglu.com/woaidongmao/comments/99135.htmlhttp://m.shnenglu.com/woaidongmao/archive/2009/10/21/99135.html#Feedback0http://m.shnenglu.com/woaidongmao/comments/commentRss/99135.htmlhttp://m.shnenglu.com/woaidongmao/services/trackbacks/99135.html鍓嶈█錛氬埄鐢?/span>drwtsn32鎴?/span>NTSD榪涜紼嬪簭宕╂簝澶勭悊錛岄兘鍙互鐢熸垚鍙敤浜庤皟璇曠殑dmp鏍煎紡鏂囦歡銆備嬌鐢?/span>VS2005鎵撳紑鐢熸垚鐨?/span>DMP鏂囦歡錛岃兘寰堟柟渚跨殑鎵懼嚭BUG鎵鍦ㄤ綅緗傛湰鏂囧皢璁ㄨ浠ヤ笅鍐呭錛?/span>

1銆?/span>  紼嬪簭緙栬瘧閫夐」

2銆?/span>  鍒╃敤VS2005 鍒嗘瀽dump鏂囦歡

3銆?/span>  甯歌闂璁ㄨ

涓銆?/span>       紼嬪簭緙栬瘧閫夐」

PDB files contains all debug information like type definition and function prototype. When application crashes, we need the PDB files to analyze the root cause, so make sure these PDB files will be created when building it. You must do the following setting:

C/C++\General\Debug Information Format=Program Database (/Zi).

clip_image001

鍥?/span>1.1 璋冭瘯淇℃伅鏍煎紡

Linker\Debugging\Generate Program Database File=”Name and location of your PDB files”

clip_image002

鍥?/span>1.2 PDB鏂囦歡杈撳嚭璺緞

PDB鏂囦歡璺緞鏈濂借緗湪鍚屼竴涓枃浠跺す涓紝榪欐牱鏂逛究dmp鏂囦歡璋冭瘯鏃惰皟鐢ㄣ?/span>

璋冭瘯鏃訛紝鎵鏈夌殑PDB鏂囦歡鍜屾簮鏂囦歡蹇呴』涓ユ牸鍖歸厤錛?/span>the PDB files should be the one generated by build the source code錛夛紝騫跺瓨鍌ㄥ湪涓涓畨鍏ㄧ殑浣嶇疆銆傚綋瀹㈡埛鎶ュ憡浜嗕竴涓敊璇椂錛屼綘闇瑕佽繖浜涙枃浠舵潵甯繖浠ヤ究瀹氫綅閿欒浜庢簮浠g爜涓茍瑙e喅闂銆?/span>

浜屻?/span>       VS2005 鍒嗘瀽dump鏂囦歡

In this simple application, there is an unhandled Access Violation Reading exception, because GetNameFromDatabase returns a NULL pointer, and this pointer is passed into IsPrefix and then it’s used directly without NULL pointer checking.

clip_image003

鍥?/span>1.3 婕旂ず浠g爜

 

鍒╃敤Release妯″紡緙栬瘧璇ユ祴璇曠▼搴忥紝鍦ㄥ鎴鋒満涓婅繍琛岃紼嬪簭錛屽皢鏍規(guī)嵁NTSD璁劇疆鐢熸垚鐩稿搴旂殑DMP鏍煎紡鏂囦歡銆?/span>

鍙互浣跨敤Visual Studio.Net銆?/span>NTSD鎴栨槸鍏朵粬鐨勮皟璇曞伐鍏峰DMP鏍煎紡鏂囦歡榪涜鍒嗘瀽銆?/span>

 

l         Start Visual Studio.Net

Click File\Open Solution and make sure the files of type is *.dmp then click Open.

clip_image004

鍥?/span>1.3 Open Dump File (GUI)

 

l         Set Symbol Path

Click Tools\Options, Debugging\Symbols錛屽鍔?/span>PDB鏂囦歡璺緞銆傝嫢璋冭瘯鐨勭▼搴忛渶瑕佸井杞熀紜搴撶殑PDB淇℃伅錛屽彲浠ュ鍔犱竴涓礬寰勪負(fù)錛?/span>

http://msdl.microsoft.com/download/symbols

鍦ㄧ晫闈笅鏂?/span>Cache Symbol From symbol…閫夋嫨鏈湴瀛樺偍榪欎簺Symbols鐨勮礬寰勩?/span>

clip_image005

鍥?/span>1.4 Symbol Path

濡傛灉DMP鏂囦歡娌℃湁鏀懼叆鏈韓PDB鏂囦歡鎵鍦ㄧ洰褰曪紝涔熷彲浠ュ湪姝ゅ澧炲姞涓涓湰鍦扮洰褰曘傜偣OK鍚庯紝VS2005灝嗕粠緗戠粶涓笅杞芥墍闇瑕佺殑Symbols錛岄渶瑕佺瓑寰呬竴孌墊椂闂淬傚鏋滄槸澶氭璋冭瘯鍚屼竴涓▼搴忛敊璇墍鐢熸垚鐨?/span>DMP鏂囦歡錛屽彲浠ュ湪瀵硅瘽妗嗕腑閫夋嫨“Search the above locations only when symbols are loaded manually”銆備粠鑰屽彲浠ヨ妭鐪佺綉緇滃甫瀹姐?/span>

 

l         Set Source code path

Open Solution Property Pages and set the source code path.

clip_image006

鍥?/span>1.5 灞炴ц彍鍗?/span>

clip_image007

鍥?/span>1.6 Debug Source Files

 

l         Start to Debug the Dump File

Click the Debug menu, it will ask you to save as a solution, save it. Then it will go to the line which caused the crash of your application.

clip_image008

鍥?/span>1.7 璋冭瘯紿楀彛錛屽畾浣嶅埌婧愪唬鐮?/span>

 

涓夈?/span>       甯歌闂璁ㄨ

1銆?/span>  Dump鏂囦歡鏀懼湪鍝噷錛?/span>

Dump鏂囦歡涓嶇敤闈炶鏀懼湪浣犵紪璇戝嚭鏉ョ殑浣嶇疆錛屼綘瀹屽叏鍙互寤虹珛涓涓柊鐨勬枃浠跺す鏉ユ斁瀹冦備絾鑻ヤ笉鏄瓨鏀懼湪緙栬瘧鍑烘潵鐨勪綅緗紝闇瑕佸皢緙栬瘧鐢熸垚鐨?/span>PDB鏂囦歡鎷瘋礉鍒?/span>Dump鏂囦歡鐩綍錛屾垨鏄埄鐢?/span>VS2005鎵撳紑Dump鏂囦歡鍚庯紝璁劇疆PDB鏂囦歡璺緞銆傚弬鐓у浘1.4銆?/span>

 

2銆?/span>  濡備綍鎭㈠褰撴椂鐨勭幇鍦猴紵

鍙兘浣犺闂紝鎬庝箞鍙兘錛岃繖涓?span lang=EN-US>dump鏂囦歡鍙槸鐢ㄦ埛鍙戠粰鎴戠殑錛屾垜涓嶅彲鑳藉幓鐢ㄦ埛瀹墮噷璋冭瘯鍚э紵榪欎釜鎭㈠鐜板満鍙笉鏄寚鐨勯潪瑕佸埌閭e彴鏈哄櫒涓婂幓錛岃屾槸瑕佹妸浜х敓dump鏂囦歡瀵瑰簲鐨勪簩榪涘埗鏂囦歡鎷垮埌銆?span lang=EN-US>

浣嗘槸鎭㈠鐜板満闇瑕佹墍鏈夌殑浜岃繘鍒舵枃浠墮兘瑕佸搴旓紝浣犱竴瀹氳鏈夊鑷寸敤鎴峰穿婧冪殑閭d簺Exe鍜?span lang=EN-US>DLL銆傛棦鐒舵槸浣犲彂甯冪殑紼嬪簭錛?span lang=EN-US>Exe鏂囦歡褰撶劧浣犱細(xì)鏈夈傛墍浠ヨ繖閲屽彧鑰冭檻DLL灝辮浜嗐?span lang=EN-US>

Dump鏂囦歡涓褰曚簡鎵鏈?span lang=EN-US>DLL鏂囦歡鐨勭増鏈彿鍜屾椂闂存埑錛屾墍浠ヤ綘涓瀹氬彲浠ュ悓榪囨煇縐嶉斿緞鎷垮埌瀹冦傚鏋滀綘鑳戒粠鐢ㄦ埛閭i噷鎷垮埌鏈濂斤紝濡傛灉涓嶆柟渚匡紝鐢ㄦ埛涓嶅彲鑳界敤鐨勬槸鎴戜滑騫沖父涓嶅父鐢ㄧ殑鎿嶄綔緋葷粺錛屾墍浠ユ壘涓湁瀵瑰簲緋葷粺鐨勬満鍣ㄤ竴鑸兘浼?xì)鏈夈備絾鏄浣忎笉浠呮槸鏂囦歡鍚嶇О瑕佷竴鑷達(dá)紝榪樿鏍稿鐗堟湰鍜屾椂闂存埑錛屽鏋滀笉鍚屼竴鏍鋒病鏈夊姙娉曠敤銆?span lang=EN-US>

濡傛灉瀹㈡埛鐢ㄤ簡鏌愪釜鐗規(guī)畩鐨勮ˉ涓佹庝箞鍔烇紵

鍏跺疄榪欎釜闂涔熷緢濂借В鍐籌紝鍙瀹冧笉闃葷闃呰鍫嗘爤錛屽氨涓嶇敤綆″畠錛岃皟璇?span lang=EN-US>Dump鍜岃繍琛岀▼搴忎笉涓鏍鳳紝緙哄皯涓涓や釜DLL娌℃湁浠諱綍闂銆?span lang=EN-US>

 

3銆?/span>  濡傛灉鐪熺殑闇瑕佹庝箞鍔烇紵

絎﹀彿鏂囦歡鐜板湪涓昏鏄寚PDB鏂囦歡銆?span lang=EN-US>

濡傛灉娌℃湁絎﹀彿鏂囦歡錛岄偅涔堣皟璇曠殑鏃跺欏彲鑳藉鑷村爢鏍堥敊璇?span lang=EN-US>

濡傛灉浣犱涪澶變簡榪欎釜鍙戝竷鐗堟湰涓綘緙栬瘧鍑烘潵鐨勯偅浜?/span>exe鍜?/span>DLL鐨?/span>PDB錛岄偅涔堣繖涓崯澶辨槸涓ラ噸鐨勶紝閲嶆柊緙栬瘧鍑烘潵鐨勭増鏈槸涓嶈兘浣跨敤鐨勩?/span>

鎴戣嚜宸辯殑DLL閮芥湁浜嗭紝鍙槸緙虹殑鏄郴緇熺殑DLL鐨勫搴?/span>PDB鏂囦歡鎬庝箞鍔烇紵鍥?/span>1.4涓凡緇忎粙緇嶄簡鏂規(guī)硶銆傚井杞湪瀹冪殑絎﹀彿鏁版嵁搴撲笂涓烘垜浠彁渚涗簡鎵鏈夌殑PDB鏂囦歡錛岃繕鏈夐儴鍒嗛潪鍏抽敭DLL銆傝緗ソ鍚庣▼搴忓皢鑷姩涓嬭澆闇瑕佺殑PDB鍙?/span>DLL鏂囦歡銆?/span>

 

4銆?/span>  鎷垮埌闇瑕佺殑鏂囦歡浜嗭紝榪欎簺鏂囦歡搴旇鏀懼湪鍝噷錛?/span>

絎﹀彿鏁版嵁搴撲腑鐨勬枃浠朵笉鐢ㄥ姩錛屾妸鍏跺畠鐨?/span>exe鍜?/span>DLL銆?/span>PDB鏂囦歡鏀懼湪dump鏂囦歡鐩綍閲屽氨琛屼簡銆?/span>

 

5銆?/span>  鎴戠敤鐨勬槸VS2005錛屾槑鏄庢湁婧愪唬鐮侊紝涓轟粈涔堟樉紺轟笉浜嗭紵

榪欎釜鏄?/span>dump璋冭瘯鐨勬渶澶寸棝闂錛屼唬鐮佸彲鑳藉凡緇忔敼榪囦簡錛屽嵆浣夸綘浠?/span>SVN鎷垮埌褰撴椂鐨勭増鏈紝鏃墮棿鎴充篃鏄敊鐨勶紝VS2005灝辨槸涓嶈浣犳樉紺轟唬鐮併傚叾瀹炲彧瑕佸湪

Tools\Options錛?/span>Debugging\General涓幓鎺?/span>

Require source files to exactly match the original version鐨勫閫夊氨琛屼簡銆?/span>

 



鑲ヤ粩 2009-10-21 18:58 鍙戣〃璇勮
]]>
NTSD(Command Line)璋冭瘯DMP鏍煎紡鏂囦歡http://m.shnenglu.com/woaidongmao/archive/2009/10/21/99134.html鑲ヤ粩鑲ヤ粩Wed, 21 Oct 2009 10:56:00 GMThttp://m.shnenglu.com/woaidongmao/archive/2009/10/21/99134.htmlhttp://m.shnenglu.com/woaidongmao/comments/99134.htmlhttp://m.shnenglu.com/woaidongmao/archive/2009/10/21/99134.html#Feedback0http://m.shnenglu.com/woaidongmao/comments/commentRss/99134.htmlhttp://m.shnenglu.com/woaidongmao/services/trackbacks/99134.html 

鍓嶈█錛氫箣鍓嶄粙緇嶄簡鍒╃敤VS2005榪涜Dump鏂囦歡鐨勮皟璇曪紝鍔熻兘闈炲父寮哄ぇ銆備絾VS2005鏄竴涓ぇ紼嬪簭錛屾湰鏂囧皢璁ㄨ鍒╃敤NTSD鐨?span lang=EN-US>Command Line 瀹炵幇Dump 鏂囦歡鐨勮皟璇曘?span lang=EN-US>

1銆?/span>  杞藉叆DMP鏍煎紡鏂囦歡

鍒╃敤CMD鎵撳紑鍛戒護琛岀獥鍙o紝鍒囨崲鍒?span lang=EN-US>NTSD鎵鍦ㄧ洰褰曘傚埄鐢ㄥ懡浠よ澆鍏?span lang=EN-US>DMP鏂囦歡錛?span lang=EN-US>

ntsd –z dumpfileName –y symbolPath –srcpath sourcecodePath

dumpfileName錛?span lang=EN-US>DMP鏍煎紡鏂囦歡璺緞

symbolPath錛?span lang=EN-US>PDB鏂囦歡璺緞

sourcecodePath錛氱▼搴忕殑婧愪唬鐮佽礬寰?span lang=EN-US>

濡傚浘1.1錛岃嫢杞藉叆鎴愬姛錛屽皢寮瑰嚭涓涓?span lang=EN-US>NTSD紿楀彛錛屽鍥?span lang=EN-US>1.2銆?span lang=EN-US>

clip_image001

鍥?span lang=EN-US>1.1 杞藉叆DMP鏍煎紡鏂囦歡

clip_image002

鍥?span lang=EN-US>1.2 NTSD鐣岄潰

綰㈣壊鐨勫湀涓樉紺轟簡BUG鐨勫師鍥狅紝鍑芥暟IsPrefix 瀛樺湪閿欒銆?/span>0x36鏄敊璇浉瀵逛簬鍑芥暟鐨勫亸縐誨箋傝繖涓敊璇槸涓涓?span lang=EN-GB>Access Violation鐨勫紓甯革紝寮傚父鍦板潃涓?span lang=EN-GB>00401036銆?/span>

Note錛?/span>

l  鑻ヨ礬寰勪腑瀛樺湪絀烘牸錛岄渶瑕佺敤鍦ㄨ礬寰勫墠鍚庡姞涓婂紩鍙楓?/span>

l  鑻ユ彁紺洪敊璇紝鏍規(guī)嵁鎻愮ず鏌ョ湅鏄惁鐢變簬dbghelp.dll涓嶅瓨鍦ㄥ鑷達(dá)紝瀹夎鐨勮皟璇曞伐鍏峰寘涓瓨鍦ㄨ鍔ㄦ佸簱銆?/span>

2銆?/span>  瀹氫綅涓庢簮浠g爜

鍒╃敤濡備笅鍛戒護鍙互瀹氫綅閿欒鍒版簮浠g爜涓細(xì)

lsp  –a 500

lsa  .

絎竴琛屽懡浠ょ敤浜庤緗樉紺虹殑婧愪唬鐮佽鏁幫紝絎簩琛屽懡浠ゅ皢閿欒瀹氫綅涓庨敊璇銆傚鍥撅細(xì)

clip_image003

鍥?span lang=EN-US>1.3 Analysis Result: Line of Source Code Causing Crash

浠庡浘涓彲浠ョ湅鍑猴紝絎?span lang=EN-US>13鍙鋒槸瀵艱嚧紼嬪簭閿欒鐨勪綅緗傚鏋滃笇鏈涚湅鍒板彉閲忕殑鍊鹼紝浣跨敤鍛戒護錛?span lang=EN-US>

x

鑻ラ渶瑕佽緇嗘煡鐪嬫煇涓彉閲忕殑鍊鹼紝浣跨敤鍛戒護錛?span lang=EN-US>

??  variableName

clip_image004

鍥?/span>1.4 Analysis Result: Value of Variable Causing Crash

 

Module Address of Your Application(鏄劇ず紼嬪簭妯″潡鍦板潃)

Command:

x *!

clip_image005

鍥?span lang=EN-GB>1.5 Application Module Information

It shows all the module address in your application.

 

Crash Stack Trace錛堟樉紺虹▼搴忚皟鐢ㄥ爢鏍堬級

If you want to trace the stack of application, use this command:

Command:

kb

clip_image006

鍥?span lang=EN-GB>1.6 Application Stack Trace

It shows that function main invokes function IsPrefix then application crashes.

For more commands of NTSD, refer to debugger.chm in Microsoft Debugger Tools package.

 



鑲ヤ粩 2009-10-21 18:56 鍙戣〃璇勮
]]>
WinDbg璋冭瘯DMP鏍煎紡鏂囦歡http://m.shnenglu.com/woaidongmao/archive/2009/10/21/99133.html鑲ヤ粩鑲ヤ粩Wed, 21 Oct 2009 10:53:00 GMThttp://m.shnenglu.com/woaidongmao/archive/2009/10/21/99133.htmlhttp://m.shnenglu.com/woaidongmao/comments/99133.htmlhttp://m.shnenglu.com/woaidongmao/archive/2009/10/21/99133.html#Feedback0http://m.shnenglu.com/woaidongmao/comments/commentRss/99133.htmlhttp://m.shnenglu.com/woaidongmao/services/trackbacks/99133.html鍓嶈█錛?span lang=EN-US>WinDbg鏄井杞紑鍙戠殑鍏嶈垂婧愪唬鐮佺駭鐨勮皟璇曞伐鍏楓?span lang=EN-US>WinDbg鍙互鐢ㄤ簬Kernel妯″紡璋冭瘯鍜岀敤鎴鋒ā寮忚皟璇曪紝榪樺彲浠ヨ皟璇?span lang=EN-US>Dump鏂囦歡銆傛湰鏂囩殑璁ㄨ鏄湪瀹夎浜?span lang=EN-US>Debugging Tools for Windows 鐨勫墠鎻愪笅榪涜鐨勶紝涓嬭澆鍦板潃鍙互鍙傝冩垜涔嬪墠鐨勬枃绔犮?span lang=EN-US>WinDbg瀵逛簬dump鏂囦歡鐨勮皟璇曞彲浠ラ氳繃鑿滃崟璁劇疆Symbol File Path銆?span lang=EN-US>Source File Path 錛屽茍鍙緗涓礬寰勩?span lang=EN-US>

1銆?/span>  鎵撳紑Dump鏍煎紡鏂囦歡

鎵撳紑WinDbg錛岄氳繃鑿滃崟[File] à [Open Crash dump] 閫夋嫨dump鏂囦歡鎵撳紑錛屼篃鍙氳繃CMD鎵撳紑Dos鍛戒護紿楀彛錛屽垏鎹㈠埌WinDbg鎵鍦ㄧ洰褰曪紝鍒╃敤鍛戒護錛?span lang=EN-US>

WinDbg –z “D:\Lines2009-7-25-22-20-33-900.dmp”

-z琛ㄧず璺緞

clip_image001

 

鍥?span lang=EN-US>1.1 鍒╃敤WinDbg鎵撳紑dump鏂囦歡

杞藉叆dump鏂囦歡鏄劇ず濡傚浘錛?span lang=EN-US>

clip_image002

 

鍥?span lang=EN-US>1.2 WinDbg鐣岄潰

2銆?/span>  鍒嗘瀽dump鏂囦歡

鑻ョ敓鎴愮殑dump鏂囦歡鍦ㄦ湰鏈猴紝dump鏂囦歡涓皢鍖呭惈璋冭瘯闇瑕佺殑PDB鏂囦歡鍙婃簮浠g爜璺緞錛岃嫢涓嶅湪鏈満錛屽彲浠ラ氳繃WinDbg鑿滃崟[File] à [Symbol File path] 鍙?[Source File Path] 鍒嗗埆璁劇疆PDB鏂囦歡璺緞鍜屾簮浠g爜璺緞銆傚鏋滅▼搴忔秹鍙婂埌DLL錛岄渶瑕佸皢EXE銆?span lang=EN-US>DLL鎵鏈夋秹鍙婄殑PDB銆佹簮浠g爜璺緞閮藉寘鎷備嬌鐢ㄥ懡浠わ細(xì)

!analyze –v

灝嗗垎鏋?span lang=EN-US>dump鏂囦歡錛屽茍鏄劇ず紼嬪簭宕╂簝澶勪簬鐨勪唬鐮佽錛?span lang=EN-US>

clip_image003

 

鍥?span lang=EN-US>1.3 鍒嗘瀽dump 鏂囦歡

 



鑲ヤ粩 2009-10-21 18:53 鍙戣〃璇勮
]]>
紼嬪簭鑷姩鐢熸垚Dump鏂囦歡http://m.shnenglu.com/woaidongmao/archive/2009/10/21/99132.html鑲ヤ粩鑲ヤ粩Wed, 21 Oct 2009 10:52:00 GMThttp://m.shnenglu.com/woaidongmao/archive/2009/10/21/99132.htmlhttp://m.shnenglu.com/woaidongmao/comments/99132.htmlhttp://m.shnenglu.com/woaidongmao/archive/2009/10/21/99132.html#Feedback0http://m.shnenglu.com/woaidongmao/comments/commentRss/99132.htmlhttp://m.shnenglu.com/woaidongmao/services/trackbacks/99132.html闃呰鍏ㄦ枃

鑲ヤ粩 2009-10-21 18:52 鍙戣〃璇勮
]]>
鑷繁鍒涘緩 minidumphttp://m.shnenglu.com/woaidongmao/archive/2009/10/21/99130.html鑲ヤ粩鑲ヤ粩Wed, 21 Oct 2009 10:50:00 GMThttp://m.shnenglu.com/woaidongmao/archive/2009/10/21/99130.htmlhttp://m.shnenglu.com/woaidongmao/comments/99130.htmlhttp://m.shnenglu.com/woaidongmao/archive/2009/10/21/99130.html#Feedback0http://m.shnenglu.com/woaidongmao/comments/commentRss/99130.htmlhttp://m.shnenglu.com/woaidongmao/services/trackbacks/99130.html浠ュ墠鏇懼啓榪囦竴涓?span lang=EN-US> bugslayer.dll 鐨勪粙緇?span lang=EN-US>. 鍦ㄧ▼搴忓嚭閿欐椂灝嗚皟鐢ㄦ爤鍐欏埌鏂囦歡. 瑙夊緱涓嶉敊. 鍚庢潵寮濮嬬敤 windbg. 鐭ラ亾浜?span lang=EN-US> userdump. 鐭ラ亾浜嗗浣曡皟璇?span lang=EN-US> dump... 鎵嶇煡閬撶▼搴忓穿婧冪殑鏃跺欏啓 dump 鏂囦歡鍏跺疄鍙互鑾峰彇姣旇皟鐢ㄦ爤澶氬緱澶氱殑淇℃伅

濡傛灉浣犵殑紼嬪簭浠涔堥兘涓嶅共. 閭d箞鍦ㄧ▼搴忓嚭閿欑殑鏃跺?span lang=EN-US>. drwtsn32.exe 浼?xì)鍐欎竴涓?span lang=EN-US> userdump. 浣?span lang=EN-US> drwtsn32 鏈変簺緙虹偣. 姣斿鍙兘鍐欎竴涓?span lang=EN-US> dump 鏂囦歡. 鍚庨潰鐨勫穿婧冨啓 dump 鏂囦歡鏃朵細(xì)瑕嗙洊鍓嶉潰鐨?span lang=EN-US>. win2000 涓嬬殑 drwtsn32 鍙兘鍐欐棫寮忕殑 dump 鏂囦歡(寰寰灝哄姣旇緝澶?span lang=EN-US>). 鏈変竴綃囨枃绔犺榪扮殑姣旇緝娓呮:
 http://www.debuginfo.com/articles/ntsdwatson.html

寤鴻浣跨敤 ntsd 浠f浛 drwtsn32. 浣?span lang=EN-US> ntsd 鐨勭己鐐瑰氨鏄渶瑕佸畨瑁呮渶鏂扮殑 windbg. 榪欐槸涓涓‖浼?span lang=EN-US>. 鍦ㄧ湅浜?span lang=EN-US> debuginfo.com 鐨勫彟涓綃囨枃绔?span lang=EN-US>:
 http://www.debuginfo.com/articles/effminidumps.html
 
涔嬪悗, 鎴戦夋嫨鐨勬槸鍦ㄧ▼搴忓嚭閿欑殑鏃跺欒皟鐢?span lang=EN-US> api 鑷繁鍐?span lang=EN-US> minidump. 鍏嬫湇浜?span lang=EN-US> drwtsn32, ntsd 鐨勭己鐐?span lang=EN-US>.
灝嗗皝瑁呭ソ鐨勫嚱鏁版斁鍒頒簡涓涓ご鏂囦歡涓?span lang=EN-US>, 鍖呭惈鍗沖彲. 浣跨敤鐨勬柟娉曞緢綆鍗?span lang=EN-US>:

#include <windows.h>
#include "minidump.h"
LONG __stdcall MyUnhandledExceptionFilter(PEXCEPTION_POINTERS pExceptionInfo)
{
CreateMiniDump(pExceptionInfo, "c:\\user.dmp");
return EXCEPTION_EXECUTE_HANDLER;
}

void main()
{
SetUnhandledExceptionFilter(MyUnhandledExceptionFilter);
*(int*)0=0; // AV
}

榪欐牱灝卞ソ浜?span lang=EN-US>. 娉ㄦ剰瀹夎鑷沖皯 xp 浠ヤ笂鐨?span lang=EN-US> sdk.
榪欓噷鐢ㄥ埌浜嗕竴涓?span lang=EN-US> api SetUnhandledExceptionFilter(), 濡傛灉涓嶆槑鐧藉彲浠ユ悳涓涓?span lang=EN-US> msdn.
榪愯渚嬪瓙紼嬪簭鍑洪敊閫鍑轟箣鍚?span lang=EN-US>, 灝卞緱鍒頒簡 c:\\user.dmp. 鍙互鐢?span lang=EN-US> windbg 絳夎皟璇曞櫒鏉ュ垎鏋愪簡

浠g爜浠庤繖閲屼笅杞?http://nicoster.googlepages.com/minidump.rar

 



鑲ヤ粩 2009-10-21 18:50 鍙戣〃璇勮
]]>
VS2005涓璖etUnhandledExceptionFilter鍑芥暟搴旂敤http://m.shnenglu.com/woaidongmao/archive/2009/10/21/99129.html鑲ヤ粩鑲ヤ粩Wed, 21 Oct 2009 10:47:00 GMThttp://m.shnenglu.com/woaidongmao/archive/2009/10/21/99129.htmlhttp://m.shnenglu.com/woaidongmao/comments/99129.htmlhttp://m.shnenglu.com/woaidongmao/archive/2009/10/21/99129.html#Feedback0http://m.shnenglu.com/woaidongmao/comments/commentRss/99129.htmlhttp://m.shnenglu.com/woaidongmao/services/trackbacks/99129.html寰堝杞歡閫氳繃璁劇疆鑷繁鐨勫紓甯告崟鑾峰嚱鏁幫紝鎹曡幏鏈鐞嗙殑寮傚父錛岀敓鎴愭姤鍛婃垨鑰呮棩蹇楋紙渚嬪鐢熸垚mini-dump鏂囦歡錛夛紝杈懼埌Release鐗堟湰涓嬭拷韙?span lang=EN-US>Bug鐨勭洰鐨勩備絾鏄紝鍒頒簡VS2005錛堝嵆VC8錛夛紝Microsoft瀵?span lang=EN-US>CRT錛?span lang=EN-US>C榪愯鏃跺簱錛夌殑涓浜涗笌瀹夊叏鐩稿叧鐨勪唬鐮佸仛浜嗕簺鏀瑰姩錛屽吀鍨嬬殑錛屼緥濡傚鍔犱簡瀵圭紦鍐叉孩鍑虹殑媯鏌ャ傛柊CRT鐗堟湰鍦ㄥ嚭鐜伴敊璇椂寮哄埗鎶婂紓甯告姏緇欓粯璁ょ殑璋冭瘯鍣紙濡傛灉娌℃湁閰嶇疆鐨勮瘽錛岄粯璁ゆ槸Dr.Watson錛夛紝鑰屼笉鍐嶉氱煡搴旂敤紼嬪簭璁劇疆鐨勫紓甯告崟鑾峰嚱鏁幫紝榪欑琛屼負(fù)涓昏鍦ㄤ互涓嬩笁縐嶆儏鍐靛嚭鐜般?span lang=EN-US>

錛?span lang=EN-US>1錛?/span>       璋冪敤abort鍑芥暟錛屽茍涓旇緗簡_CALL_REPORTFAULT閫夐」錛堣繖涓夐」鍦?span lang=EN-US>Release鐗堟湰鏄粯璁よ緗殑錛夈?span lang=EN-US>

錛?span lang=EN-US>2錛?/span>       鍚敤浜嗚繍琛屾椂瀹夊叏媯鏌ラ夐」錛屽茍涓斿湪杞歡榪愯鏃舵鏌ュ嚭瀹夊叏鎬ч敊璇紝渚嬪鍑虹幇緙撳瓨婧㈠嚭銆傦紙瀹夊叏媯鏌ラ夐」 /GS 榛樿涔熸槸鎵撳紑鐨勶級

錛?span lang=EN-US>3錛?/span>       閬囧埌_invalid_parameter閿欒錛岃屽簲鐢ㄧ▼搴忓張娌℃湁涓誨姩璋冪敤

_set_invalid_parameter_handler璁劇疆閿欒鎹曡幏鍑芥暟銆?span lang=EN-US>

鎵浠ョ粨璁烘槸錛屼嬌鐢?span lang=EN-US>VS2005錛?span lang=EN-US>VC8錛夌紪璇戠殑紼嬪簭錛岃澶氶敊璇兘涓嶈兘鍦?span lang=EN-US>SetUnhandledExceptionFilter鎹曡幏鍒般傝繖鏄?span lang=EN-US>CRT鐩稿浜庡墠闈㈢増鏈殑涓涓瘮杈冨ぇ鐨勬敼鍙橈紝浣嗘槸寰堥仐鎲撅紝Microsoft鍗存病鏈夊湪鐩稿簲鐨勬枃妗f槑紜寚鍑恒?span lang=EN-US>

瑙e喅鏂規(guī)硶

       涔嬫墍浠ュ簲鐢ㄧ▼搴忔崟鑾蜂笉鍒伴偅浜涘紓甯革紝鍘熷洜鏄洜涓烘柊鐗堟湰鐨?span lang=EN-US>CRT瀹炵幇鍦ㄥ紓甯稿鐞嗕腑寮哄埗鍒犻櫎鎵鏈夊簲鐢ㄧ▼搴忓厛鍓嶈緗殑鎹曡幏鍑芥暟錛屽涓嬫墍紺猴細(xì)

 /* Make sure any filter already in place is deleted. */

 SetUnhandledExceptionFilter(NULL);

 UnhandledExceptionFilter(&ExceptionPointers);

瑙e喅鏂規(guī)硶鏄嫤鎴?span lang=EN-US>CRT璋冪敤SetUnhandledExceptionFilter鍑芥暟錛屼嬌涔嬫棤鏁堛傚湪X86騫沖彴涓嬶紝鍙互浣跨敤浠ヤ笅浠g爜銆?span lang=EN-US>

#ifndef _M_IX86

       #error "The following code only works for x86!"

#endif

 

void DisableSetUnhandledExceptionFilter()

{

    void *addr = (void*)GetProcAddress(LoadLibrary(_T("kernel32.dll")),

                                                         "SetUnhandledExceptionFilter");

    if (addr)

    {

              unsigned char code[16];

              int size = 0;

              code[size++] = 0x33;

              code[size++] = 0xC0;

              code[size++] = 0xC2;

              code[size++] = 0x04;

              code[size++] = 0x00;

 

               DWORD dwOldFlag, dwTempFlag;

              VirtualProtect(addr, size, PAGE_READWRITE, &dwOldFlag);

              WriteProcessMemory(GetCurrentProcess(), addr, code, size, NULL);

              VirtualProtect(addr, size, dwOldFlag, &dwTempFlag);

       }

}

鍦ㄨ緗嚜宸辯殑寮傚父澶勭悊鍑芥暟鍚庯紝璋冪敤DisableSetUnhandledExceptionFilter紱佹CRT璁劇疆鍗沖彲銆?span lang=EN-US>

鍏跺畠璁ㄨ

       涓婇潰閫氳繃璁劇疆api hook錛岃В鍐充簡鍦?span lang=EN-US>VS2005涓婄殑寮傚父鎹曡幏闂錛岃繖縐嶈櫧鐒朵笉鏄偅涔?#8220;騫插噣”鐨勮В鍐蟲柟妗堬紝紜槸鐩墠鍞竴綆鍗曟湁鏁堢殑鏂瑰紡銆?span lang=EN-US>

       铏界劧涔熷彲浠ラ氳繃_set_abort_behavior(0, _WRITE_ABORT_MSG | _CALL_REPORTFAULT), signal(SIGABRT, ...), 鍜?span lang=EN-US>_set_invalid_parameter_handler(...) 瑙e喅錛?span lang=EN-US>1錛夛紙3錛夛紝浣嗘槸瀵逛簬錛?span lang=EN-US>2錛夛紝璁劇疆api hook鏄敮涓鐨勬柟寮忋?span lang=EN-US>

 



鑲ヤ粩 2009-10-21 18:47 鍙戣〃璇勮
]]>
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            狠狠久久亚洲欧美专区| 亚洲一级网站| 亚洲在线中文字幕| 亚洲一区二区三区777| 亚洲一区二区av电影| 亚洲制服av| 欧美专区在线观看| 久久综合福利| 最新亚洲视频| 一区二区三区 在线观看视| 亚洲欧美日韩专区| 免费成人黄色片| 国产精品qvod| 国产一区二区三区成人欧美日韩在线观看 | 亚洲小说欧美另类婷婷| 亚洲午夜免费视频| 久久久综合精品| 亚洲欧洲一区| 亚洲欧美成人在线| 欧美国产成人在线| 国产一区二区三区奇米久涩| 亚洲国产精品女人久久久| 亚洲免费网址| 欧美高清一区二区| 午夜精品久久久久久久99樱桃 | 激情视频一区二区| 宅男在线国产精品| 欧美成人首页| 亚洲一区欧美激情| 欧美国产日韩视频| 韩国福利一区| 午夜精品一区二区三区在线视| 另类图片综合电影| 亚洲永久免费av| 欧美国产日韩一二三区| 国产最新精品精品你懂的| 亚洲视频你懂的| 欧美高清自拍一区| 久久精品国产清自在天天线| 国产精品日韩在线一区| 夜夜夜久久久| 亚洲福利小视频| 久久蜜臀精品av| 久久久精品网| 欧美凹凸一区二区三区视频| 亚洲精品一二三| 久久久人成影片一区二区三区| 欧美日一区二区在线观看| 亚洲激情视频在线播放| 久久亚洲国产精品一区二区| 亚洲在线视频一区| 国产精品欧美精品| 性感少妇一区| 亚洲一级片在线观看| 欧美三级乱人伦电影| 洋洋av久久久久久久一区| 亚洲高清不卡在线| 欧美风情在线观看| 最近看过的日韩成人| 欧美+亚洲+精品+三区| 久久久久一区| 亚洲高清不卡| 亚洲欧洲在线免费| 欧美日韩国产三区| 中国女人久久久| 一区二区免费看| 国产精品久久久久久模特| 香蕉久久国产| 欧美一区三区二区在线观看| 国产综合色在线视频区| 久久天堂国产精品| 欧美69wwwcom| 亚洲午夜性刺激影院| 亚洲天堂网在线观看| 国产日本欧美一区二区三区在线| 久久久高清一区二区三区| 久久―日本道色综合久久| 日韩视频第一页| 亚洲无限av看| 在线观看中文字幕不卡| 亚洲黄色av一区| 国产精品久久久久毛片大屁完整版| 欧美一级片在线播放| 久久久av毛片精品| 日韩亚洲欧美在线观看| 亚洲深夜福利在线| 精品福利av| 一区二区三区欧美激情| 影视先锋久久| 一本色道88久久加勒比精品| 韩国在线一区| 99精品99久久久久久宅男| 国产一区二区福利| 91久久线看在观草草青青| 国产乱子伦一区二区三区国色天香 | 99精品免费| 欧美在线999| 亚洲视频一区在线| 久久午夜视频| 欧美一区二区在线看| 欧美大成色www永久网站婷| 欧美一二区视频| 中文一区二区| 夜夜嗨av色一区二区不卡| 国产精品视频专区| 亚洲国产精品欧美一二99| 国产精品美女视频网站| 亚洲福利av| 韩国欧美一区| 亚洲女性裸体视频| 一区二区三区蜜桃网| 久久五月天婷婷| 久久国产综合精品| 国产精品igao视频网网址不卡日韩| 欧美国产一区二区| 国产一区亚洲一区| 亚洲免费影视第一页| 亚洲私拍自拍| 欧美精品福利| 亚洲国产精品一区二区www在线| 国产一区二区日韩精品| 亚洲一区二区在线| 亚洲欧美久久久| 欧美图区在线视频| 日韩视频在线观看一区二区| 亚洲精品一区二区三区婷婷月| 久久久av水蜜桃| 美女诱惑黄网站一区| 影音先锋另类| 蜜桃视频一区| 亚洲激情在线| 99伊人成综合| 欧美午夜精品伦理| 在线视频精品| 欧美一级理论片| 国产亚洲欧美日韩一区二区| 性色av一区二区三区红粉影视| 欧美伊人久久大香线蕉综合69| 国产精品区一区二区三| 亚洲午夜一区| 久久久久国产一区二区三区| 国产视频不卡| 久久琪琪电影院| 亚洲国产精品成人精品| 99精品国产高清一区二区| 欧美日韩国内自拍| 亚洲一区二区三区四区五区黄| 午夜精品视频在线观看一区二区| 国产精品一区二区视频| 欧美一区二区性| 亚洲第一毛片| 亚洲综合视频在线| 国际精品欧美精品| 欧美成人资源网| 国产精品99久久99久久久二8 | 久久精品国产久精国产思思| 久久影院午夜论| 日韩视频免费观看高清在线视频 | 久久精品盗摄| 亚洲电影下载| 性娇小13――14欧美| 激情久久影院| 欧美激情综合五月色丁香小说| 亚洲深夜福利视频| 欧美va天堂va视频va在线| a91a精品视频在线观看| 国产精品自拍在线| 亚洲欧美在线磁力| 一色屋精品视频在线看| 欧美成人第一页| 亚洲综合精品四区| 欧美高清不卡| 亚洲一区二区三区视频播放| 黄色国产精品| 国产精品www网站| 久热精品视频在线免费观看| 亚洲深夜福利在线| 欧美激情精品久久久久久黑人| 亚洲欧美日韩另类精品一区二区三区| 激情综合中文娱乐网| 国产精品乱看| 欧美日本精品在线| 久久久综合免费视频| 亚洲在线观看视频网站| 亚洲国产精品悠悠久久琪琪| 久久av资源网站| 亚洲在线视频免费观看| 亚洲黄色成人网| 韩国av一区二区三区四区| 国产精品对白刺激久久久| 蜜桃久久精品一区二区| 久久激情综合网| 亚洲欧美日韩国产精品| 亚洲精品中文在线| 亚洲第一免费播放区| 久热综合在线亚洲精品| 欧美综合国产| 亚洲欧美中文另类| 亚洲一区三区电影在线观看| 日韩一区二区精品|