<?xml version="1.0" encoding="utf-8"?>
<rss xmlns:atom="http://www.w3.org/2005/Atom" xmlns:sy="http://purl.org/rss/1.0/modules/syndication/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
  version="2.0">
  <channel>
    <title>hmmm</title>
    <atom:link
      href="https://docs.microsoft.com/archive/blogs/faik/feed.xml"
      rel="self"
      type="application/rss+xml" />
    <link>https://docs.microsoft.com/archive/blogs/faik/feed.xml</link>
    <description />
    <lastBuildDate>Tue, 16 Apr 2019 05:08:08 GMT</lastBuildDate>
    <language>en-US</language>
    <sy:updatePeriod>hourly</sy:updatePeriod>
    <sy:updateFrequency>1</sy:updateFrequency>
    <item>
      <title>Dump dosyası incelemeye giriş</title>
      <link>https://docs.microsoft.com/archive/blogs/faik/dump-dosyas-incelemeye-giri</link>
      <pubDate>Wed, 29 Dec 2010 07:36:10 GMT</pubDate>
      <dc:creator><![CDATA[faikb]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/faik/2010/12/29/dump-dosyas-incelemeye-giri/</guid>
      <description><![CDATA[Merhaba,Uzun bir aradan sonra debugging ile ilgili serime devam ediyorum. Artık dump dosyalarını...]]></description>
      <content:encoded><![CDATA[<p> <p><font size="2" face="Arial">Merhaba,<br />Uzun bir aradan sonra debugging ile ilgili serime devam ediyorum. Artık dump dosyalarını nasıl inceleyeceğimize geçeceğiz. <a href="http://blogs.msdn.com/b/faik/archive/2010/05/11/hangmodedump_5f00_1.aspx" target="_blank">Dump Alma ( Hang Mode - I )</a><br />yazımdaki yöntemle yanıt vermeyen bir uygulamanın dump'ını aldığınızı farz ediyorum. </font></p> <p><font size="2" face="Arial">Start –&gt; All Programs –&gt; Debugging Tools for Windows(x86) –&gt; WinDbg uygulamasını açın.<br />File menüsünden “Open Crash Dump” seçeneğini tıklayın. Açılan gezgin penceresinden daha önce oluşturduğunuz dmp uzantılı dosyayı bulun ve açın.<br />“Save information for workspace” sorusunu her zaman hayır olarak yanıtlayın.</font></p> <p><font size="2" face="Arial">Biraz bekledikten sonra aşağıdaki gibi bir çıktı alacaksınız :</font></p> <p><font size="2" face="Arial"><strong>Debugger’ın Versiyon bilgisi :</strong><br /><em>Microsoft (R) Windows Debugger Version 6.13.0003.956 X86<br />Copyright (c) Microsoft Corporation. All rights reserved.</em></font></p> <p><font size="2" face="Arial"><strong>Yüklenen dump dosyasının yeri ve adı :</strong><br /><em>Loading Dump File [H:\BLOG\dumps\20101229_112225_Hang_Mode\FULLDUMP_HangMode_UITest.exe__061c_2010-12-29_11-22-28-575_158c.dmp]</em></font></p> <p><font size="2" face="Arial"><strong>Dump dosyasının tipi :</strong><br /><em>User Mini Dump File with Full Memory: Only application data is available<br />Comment: 'HangMode'</em></font></p> <p><font size="2" face="Arial"><strong>Sembol bilgileri :</strong><br /><em>Symbol search path is: *** Invalid ***<br />****************************************************************************<br />* Symbol loading may be unreliable without a symbol search path.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; *<br />* Use .symfix to have the debugger choose a symbol path.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; *<br />* After setting your symbol path, use .reload to refresh symbol locations. *<br />****************************************************************************<br />Executable search path is:</em> </font></p> <p><font size="2" face="Arial">Debugging, doğru sembol dosyaları olmadan çok zor yapılabilir çünkü; nerdeyse herşeyi disassemble edilmiş koddan bulmaya çalışırsınız.<br />Aşağıdaki bölümlerde konuyu daha fazla ele alacağım. Şu kadarını hatırlamanız yeterli : Sembol dosyası olmadan debugging yapılmaz.</font></p> <p><font size="2" face="Arial"><strong>Dump’ın alındığı makina ve sistem bilgileri :<br /></strong><em>Windows 7 Version 7600 MP (2 procs) Free x86 compatible<br />Product: Server, suite: Enterprise TerminalServer SingleUserTS<br />Built by: 6.1.7600.16385 (win7_rtm.090713-1255)<br />Machine Name:<br />Debug session time: Wed Dec 29 11:22:28.000 2010 (UTC + 2:00)<br />System Uptime: 6 days 18:34:10.924<br />Process Uptime: 0 days 0:40:35.000</em></font></p> <p><font size="2" face="Arial">Bu bilgiler işinize yarayabilir. İşletim Sisteminin sürümü, makina adı, dump'ın ne zaman alındığı. Bu bilgileri kullanarak Sistem ve Uygulama günlüklerini kontrol edebilirsiniz. <br />Yakın zamanda herhangi bir problem olup olmadığını denetleyebilirsiniz. Sistem ve Proses'in ne kadar zamandır çalıştığı da bir fikir verebilir. Sorunun sıklığına dair fikir edinebilirsiniz.<br /></font></p> <p><font size="2" face="Arial"><strong>Sembol uyarıları ve exception bilgisi :</strong></font></p> <p><font size="2" face="Arial"><em>*** ERROR: Symbol file could not be found.&nbsp; Defaulted to export symbols for ntdll.dll - <br />This dump file has an exception of interest stored in it.<br />The stored exception information can be accessed via .ecxr.<br />(158c.14f8): Wake debugger - code 80000007 (first/second chance not available)</em></font></p> <p><font size="2" face="Arial">Debugger (invasive moddayken) process'te bir thread yaratır ve DebugBreak fonksiyonunu çağırır. Bu da process'in<br />breakpoint exception'ı vermesine sebep olur. Dolayısıyla hang modda alınmış dump dosyalarında 0x80000007 numaralı olayın olması normal.<br /></font><font size="2" face="Arial"></font></p> <p><font size="2" face="Arial"><strong>Şu anda debugger context’inin set edildiği thread’in register bilgileri :</strong></font></p> <p><font size="2" face="Arial"><em>eax=00000000 ebx=0022f2bc ecx=00000000 edx=00000000 esi=00000002 edi=00000000<br />eip=77b300ed esp=0022f26c ebp=0022f308 iopl=0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; nv up ei pl nz na po nc<br />cs=0023&nbsp; ss=002b&nbsp; ds=002b&nbsp; es=002b&nbsp; fs=0053&nbsp; gs=002b&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; efl=00000202<br />ntdll!NtWaitForMultipleObjects+0x15:<br />77b300ed 83c404&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; add&nbsp;&nbsp;&nbsp;&nbsp; esp,4</em></font></p> <p><font size="2" face="Arial">WinDbg ekranının sol alt köşesinde "0:000&gt;" ibaresini göreceksiniz. Aslında bu ProcessID:ThreadID ikilisini gösterir. User mode dumplarda ProcessID hep 0 olacaktır.<br />Dolayısıyla gördüğünüz "0:000", bu process'in 0 numaralı thread'inde olduğunuzu ifade eder. Kernel dumplarında Process Context'ini değiştirebilirsiniz. <br />ProcessID:ThreadID metin kutusunun sağında yer alan metin editör kontrolünü kullanarak WinDbg'ye istediğimiz komutları yollayacağız.</font></p> <p><font size="2" face="Arial"><br /></font><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/05/15/metablogapi/1351.WindbgOverview_4.png" original-url="http://blogs.msdn.com/cfs-filesystemfile.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-01-05-15-metablogapi/1351.WindbgOverview_5F00_4.png"><img style="BACKGROUND-IMAGE: none; BORDER-BOTTOM: 0px; BORDER-LEFT: 0px; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; DISPLAY: inline; BORDER-TOP: 0px; BORDER-RIGHT: 0px; PADDING-TOP: 0px" title="Windbg Ekran Görünümü" border=0 alt="Windbg Ekran" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/05/15/metablogapi/1351.WindbgOverview_4.png" original-url="http://blogs.msdn.com/cfs-filesystemfile.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-01-05-15-metablogapi/1351.WindbgOverview_5F00_4.png" width=891 height=307 /></a> </p> <p>&nbsp;</p> <p>&nbsp;</p> <h2>İlk komutlar</h2> <p><font size="2" face="Arial"><br /><strong>Dumpı alınmış process'in kaç tane thread'i olduğuna bakalım. </strong><br />0:000&gt; yazan kısımın sağ tarfındaki textbox'ı kullanacağız.<br />~ yazın ve enter'a basın<br />Aşağıdakine benzer bir çıktı alacaksınız.</font></p> <p><font size="1" face="Arial">0:000&gt; ~<br />.&nbsp; 0&nbsp; Id: 158c.14f8 Suspend: 1 Teb: 7efdd000 Unfrozen<br />&nbsp;&nbsp; 1&nbsp; Id: 158c.104c Suspend: 1 Teb: 7efda000 Unfrozen<br />&nbsp;&nbsp; 2&nbsp; Id: 158c.a1c Suspend: 1 Teb: 7efd7000 Unfrozen</font></p> <p><font size="2" face="Arial">Bu çıktı bize process içinde 3 thread olduğunu gösteriyor : 0, 1 ve 2. threadler. Windbg, thread'leri 0 dan başlayarak numaralandırır. Ayrıca, gerçek numaralarını da gösterir.<br />Örneğin, 158c.14f8 bize thread'in 158c ProcessID'li process'in 14f8 numaralı thread'i olduğunu anlatıyor. Teb: 7efdd000 ise TEB veri yapısının adresini gösterir.</font></p> <p><font size="2" face="Arial"><a href="http://msdn.microsoft.com/en-us/library/ms682453(VS.85).aspx" target="_blank">CreateThread Function</a> , </font><font size="2" face="Arial"><br /><a href="http://msdn.microsoft.com/en-us/library/ms686708(VS.85).aspx" target="_blank">TEB Structure</a></font></p> <p><font size="2" face="Arial"><strong>Bir thread'in call stack'ini listelemek<br /></strong>Bu kez komut penceresine ( ProcessID:ThreadID metin kutusunun sağında yer alan metin editör kontrolü ) k komutunu girip enter'a basın.<br />Aşağıdakine benzer bir çıktı ile karşılaşacaksınız.</font></p> <p><font size="1" face="Arial">0:000&gt; k<br />ChildEBP RetAddr&nbsp; <br /><font style="background-color: #ffff00" color="#000000">WARNING: Stack unwind information not available. Following frames may be wrong.</font><br />0022f308 7614162d ntdll!NtWaitForMultipleObjects+0x15<br />0022f350 76141921 kernel32!WaitForMultipleObjectsEx+0x8e<br />0022f36c 65aa10e2 kernel32!WaitForMultipleObjects+0x18<br />0022f3b0 00d41b1d Senaryolar!DeadLockDurumuYarat+0x82<br />0022f3bc 61e42c6f UITest+0x1b1d<br />0022f3c8 61e42e51 mfc100u+0x1b2c6f<br />0022f3e4 61e76d36 mfc100u+0x1b2e51<br />0022f408 61ecc444 mfc100u+0x1e6d36<br />0022f458 61d0cceb mfc100u+0x23c444<br />0022f46c 61ecbc47 mfc100u+0x7cceb<br />0022f538 61ecbbba mfc100u+0x23bc47<br />0022f558 61eca019 mfc100u+0x23bbba<br />0022f5d0 61eca2a5 mfc100u+0x23a019<br />0022f5f4 61dc0ddb mfc100u+0x23a2a5<br />0022f63c 774a6238 mfc100u+0x130ddb<br />0022f668 774a68ea user32!gapfnScSendMessage+0x270<br />0022f6e0 774acd1a user32!gapfnScSendMessage+0x922<br />0022f724 774acd81 user32!GetWindow+0x21a<br />0022f748 74354e95 user32!SendMessageW+0x4c<br />0022f768 74354ef7 comctl32!GetEffectiveClientRect+0x306c<br />0022f784 74354d89 comctl32!GetEffectiveClientRect+0x30ce<br />0022f7e4 774a6238 comctl32!GetEffectiveClientRect+0x2f60<br />0022f810 774a68ea user32!gapfnScSendMessage+0x270<br />0022f888 774a7d31 user32!gapfnScSendMessage+0x922<br />0022f8e8 774a7dfa user32!LoadStringW+0x11f<br />0022f8f8 774c2292 user32!DispatchMessageW+0xf<br />0022f924 61ee0ac0 user32!IsDialogMessageW+0x11e<br />0022f938 61eced28 mfc100u+0x250ac0<br />0022f944 61e6c3ad mfc100u+0x23ed28<br />0022f99c 61d0cc9c mfc100u+0x1dc3ad<br />0022f9ac 61eccec5 mfc100u+0x7cc9c<br />0022f9c0 61eb8a28 mfc100u+0x23cec5<br />0022f9d8 61eb922d mfc100u+0x228a28<br />0022f9e4 61eb8a78 mfc100u+0x22922d<br />0022f9f0 61eb895d mfc100u+0x228a78<br />0022fa2c 61e6cae3 mfc100u+0x22895d<br />0022fa78 00d41197 mfc100u+0x1dcae3<br />0022fbfc 61ede3c3 UITest+0x1197<br />0022fc10 00d42425 mfc100u+0x24e3c3<br />0022fca4 76143677 UITest+0x2425<br />0022fcb0 77b49d42 kernel32!BaseThreadInitThunk+0x12<br />0022fcf0 77b49d15 ntdll!RtlInitializeExceptionChain+0x63<br />0022fd08 00000000 ntdll!RtlInitializeExceptionChain+0x36</font></p> <p><font size="2" face="Arial">Dikkat edilmesi gerekenler :<br />"WARNING: Stack unwind information not available. Following frames may be wrong." mesajı bize debugger'ın sembol dosyalarını bulamadığını o yüzden <br />callstack'i düzgün çıkaramadığını söylüyor.</font></p> <p><font size="2" face="Arial"><strong>Sembol dosyalarına erişmek :</strong></font></p> <p><font size="2" face="Arial">Debugger'ın, sembol dosyalarına erişimini anlatan temel makaleyi okuyabilirsiniz :<br /><a href="http://support.microsoft.com/kb/311503" target="_blank">Use the Microsoft Symbol Server to obtain debug symbol files</a><br /></font></p> <p><font size="2" face="Arial"><strong>Adım adım ayarların yapılması :<br /></strong>#1 Bilgisayarınızda bir dizin açın. Bu dizin debugger'ın indirdiği sembol dosyalarını tutacaktır.<br />Örneğin : <br />H:\BLOG\symbols</font></p> <p><font size="2" face="Arial">#2 Windbg'de "File" menüsünden "Symbol File Path" seçeneğini tıklayın. Açılan pencere içine aşağıdakileri girin :<br />SRV*H:\BLOG\symbols*http://msdl.microsoft.com/download/symbols</font></p> <p><font size="2" face="Arial">Not : Sizin lokal sembol cache dizininiz farklı olabilir. Bu durumda "H:\BLOG\symbols" yerine o dizini girin.</font></p> <p><font size="2" face="Arial">#3 "Reload" checkbox'ını işaretleyin ve "OK" butonuna basın.</font></p> <p><font size="2" face="Arial">Şimdi k komutunu tekrar çalıştırın. Bu kez oldukça farklı bir callstack göreceksiniz :</font></p> <p><font face="Arial"><font size="1">0:000&gt; k<br />ChildEBP RetAddr&nbsp; <br />0022f26c 75b30962 ntdll!ZwWaitForMultipleObjects+0x15<br />0022f308 7614162d KERNELBASE!WaitForMultipleObjectsEx+0x100<br />0022f350 76141921 kernel32!WaitForMultipleObjectsExImplementation+0xe0<br /></font><font size="1"><font style="background-color: #ffff00">*** ERROR: Symbol file could not be found.&nbsp; Defaulted to export symbols for Senaryolar.dll - <br /></font>0022f36c 65aa10e2 kernel32!WaitForMultipleObjects+0x18<br /></font><font size="1"><font style="background-color: #ffff00">*** ERROR: Module load completed but symbols could not be loaded for UITest.exe<br />WARNING: Stack unwind information not available. Following frames may be wrong.<br /></font>0022f3b0 00d41b1d Senaryolar!DeadLockDurumuYarat+0x82<br />0022f3bc 61e42c6f UITest+0x1b1d<br />0022f3c8 61e42e51 mfc100u!_AfxDispatchCmdMsg+0x3b [f:\dd\vctools\vc7libs\ship\atlmfc\src\mfc\cmdtarg.cpp @ 82]<br />0022f3e4 61e76d36 mfc100u!CCmdTarget::OnCmdMsg+0x124 [f:\dd\vctools\vc7libs\ship\atlmfc\src\mfc\cmdtarg.cpp @ 381]<br />0022f408 61ecc444 mfc100u!CPropertySheet::OnCmdMsg+0x1d [f:\dd\vctools\vc7libs\ship\atlmfc\src\mfc\dlgprop.cpp @ 814]<br />0022f458 61d0cceb mfc100u!CWnd::OnCommand+0x92 [f:\dd\vctools\vc7libs\ship\atlmfc\src\mfc\wincore.cpp @ 2675]<br />0022f46c 61ecbc47 mfc100u!CDialogEx::OnCommand+0x2f [f:\dd\vctools\vc7libs\ship\atlmfc\src\mfc\afxdialogex.cpp @ 290]<br />0022f538 61ecbbba mfc100u!CWnd::OnWndMsg+0x66 [f:\dd\vctools\vc7libs\ship\atlmfc\src\mfc\wincore.cpp @ 2081]<br />0022f558 61eca019 mfc100u!CWnd::WindowProc+0x24 [f:\dd\vctools\vc7libs\ship\atlmfc\src\mfc\wincore.cpp @ 2067]<br />0022f5d0 61eca2a5 mfc100u!AfxCallWndProc+0xb5 [f:\dd\vctools\vc7libs\ship\atlmfc\src\mfc\wincore.cpp @ 248]<br />0022f5f4 61dc0ddb mfc100u!AfxWndProc+0x37 [f:\dd\vctools\vc7libs\ship\atlmfc\src\mfc\wincore.cpp @ 410]<br />0022f634 774a6901 mfc100u!AfxWndProcBase+0x56 [f:\dd\vctools\vc7libs\ship\atlmfc\src\mfc\afxstate.cpp @ 420]<br />0022f6e0 774acd1a user32!UserCallWinProcCheckWow+0x120<br />0022f724 774acd81 user32!SendMessageWorker+0x581<br />0022f748 74354e95 user32!SendMessageW+0x7f<br />0022f768 74354ef7 comctl32!Button_NotifyParent+0x3d<br />0022f784 74354d89 comctl32!Button_ReleaseCapture+0x113<br />0022f7e4 774a6238 comctl32!Button_WndProc+0xa18<br />0022f810 774a68ea user32!InternalCallWinProc+0x23<br />0022f888 774a7d31 user32!UserCallWinProcCheckWow+0x109<br />0022f8e8 774a7dfa user32!DispatchMessageWorker+0x3bc<br />0022f8f8 774c2292 user32!DispatchMessageW+0xf<br />0022f924 61ee0ac0 user32!IsDialogMessageW+0x5f6<br />0022f938 61eced28 mfc100u!CWnd::IsDialogMessageW+0x32 [f:\dd\vctools\vc7libs\ship\atlmfc\src\mfc\winocc.cpp @ 197]<br />0022f944 61e6c3ad mfc100u!CWnd::PreTranslateInput+0x2d [f:\dd\vctools\vc7libs\ship\atlmfc\src\mfc\wincore.cpp @ 4659]<br />0022f99c 61d0cc9c mfc100u!CDialog::PreTranslateMessage+0xcf [f:\dd\vctools\vc7libs\ship\atlmfc\src\mfc\dlgcore.cpp @ 82]<br />0022f9ac 61eccec5 mfc100u!CDialogEx::PreTranslateMessage+0x29 [f:\dd\vctools\vc7libs\ship\atlmfc\src\mfc\afxdialogex.cpp @ 275]<br />0022f9c0 61eb8a28 mfc100u!CWnd::WalkPreTranslateTree+0x23 [f:\dd\vctools\vc7libs\ship\atlmfc\src\mfc\wincore.cpp @ 3258]<br />0022f9d8 61eb922d mfc100u!AfxInternalPreTranslateMessage+0x41 [f:\dd\vctools\vc7libs\ship\atlmfc\src\mfc\thrdcore.cpp @ 233]<br />0022f9e4 61eb8a78 mfc100u!CWinThread::PreTranslateMessage+0xd [f:\dd\vctools\vc7libs\ship\atlmfc\src\mfc\thrdcore.cpp @ 777]<br />0022f9f0 61eb895d mfc100u!AfxPreTranslateMessage+0x19 [f:\dd\vctools\vc7libs\ship\atlmfc\src\mfc\thrdcore.cpp @ 255]<br />0022fa00 61ecedfd mfc100u!AfxInternalPumpMessage+0x2d [f:\dd\vctools\vc7libs\ship\atlmfc\src\mfc\thrdcore.cpp @ 178]<br />0022fa2c 61e6cae3 mfc100u!CWnd::RunModalLoop+0xc8 [f:\dd\vctools\vc7libs\ship\atlmfc\src\mfc\wincore.cpp @ 4714]<br />0022fa78 00d41197 mfc100u!CDialog::DoModal+0x12d [f:\dd\vctools\vc7libs\ship\atlmfc\src\mfc\dlgcore.cpp @ 638]<br />0022fbfc 61ede3c3 UITest+0x1197<br />0022fc10 00d42425 mfc100u!AfxWinMain+0x49 [f:\dd\vctools\vc7libs\ship\atlmfc\src\mfc\winmain.cpp @ 37]<br />0022fca4 76143677 UITest+0x2425<br />0022fcb0 77b49d42 kernel32!BaseThreadInitThunk+0xe<br />0022fcf0 77b49d15 ntdll!__RtlUserThreadStart+0x70<br />0022fd08 00000000 ntdll!_RtlUserThreadStart+0x1b</font></font></p> <p><font size="2" face="Arial">1. adımda açtığınız dizine bakarsanız bir çok alt dizinle dolduğunu göreceksiniz.</font></p> <p><font size="2" face="Arial">H:\BLOG\symbols&gt;dir<br />Volume in drive H is TOSHIBA<br />Volume Serial Number is 4504-0DA4</font></p> <p><font size="2" face="Arial">Directory of H:\BLOG\symbols</font></p> <p><font size="2" face="Arial">29.12.2010&nbsp; 16:50&nbsp;&nbsp;&nbsp; &lt;DIR&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; .<br />29.12.2010&nbsp; 16:50&nbsp;&nbsp;&nbsp; &lt;DIR&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ..<br />29.12.2010&nbsp; 16:53&nbsp;&nbsp;&nbsp; &lt;DIR&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; wntdll.pdb<br />29.12.2010&nbsp; 16:53&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0 pingme.txt<br />29.12.2010&nbsp; 16:53&nbsp;&nbsp;&nbsp; &lt;DIR&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; wkernelbase.pdb<br />29.12.2010&nbsp; 16:54&nbsp;&nbsp;&nbsp; &lt;DIR&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; wkernel32.pdb<br />29.12.2010&nbsp; 16:54&nbsp;&nbsp;&nbsp; &lt;DIR&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mfc100u.i386.pdb<br />29.12.2010&nbsp; 16:54&nbsp;&nbsp;&nbsp; &lt;DIR&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; wuser32.pdb<br />29.12.2010&nbsp; 16:54&nbsp;&nbsp;&nbsp; &lt;DIR&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; comctl32.pdb<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1 File(s)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0 bytes<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 8 Dir(s)&nbsp; 11.803.426.816 bytes free</font></p> <p><font size="2" face="Arial"><br />Yukarıdaki callstack'e baktığınızda debugger'ın, UITest.exe ve senaryolar.dll modüllerinin sembol dosyalarını bulamadığını görüyoruz.<br />Aslında, işletim sistemi ile gelen ve Microsoft'tan satın alınmış ürünlerin sembol dosyaları indirilecektir. Sizin, debugger'a diğer modüllerin sembol dosyalarını <br />nereden bulabileceğini belirtmeniz gerekir. Bunun için yine Windbg'de, "File" menüsünden "Symbol File Path" seçeneğini tıklayın. Varolan ifadenin sonuna noltalı virgül<br />ekleyin ve sembol dosyalarının bulunduğu dizini girin. Örneğin, benim için bu :<br />H:\BLOG\DebugSenaryolari\Release dizini. Ve, sembol path ifadem de aşağıdaki gibi olacaktır :<br />SRV*H:\BLOG\symbols*http://msdl.microsoft.com/download/symbols;H:\BLOG\DebugSenaryolari\Release</font></p> <p><font size="2" face="Arial">"Reload" checkbox'ını işaretleyin ve "OK" butonuna basın. Bir kez daha k komutunu çalıştırın. Bu kez tüm modüllerin sembol dosyasına ulaşılmış olunmalı :</font></p> <p><font size="1" face="Arial">0:000&gt; k<br />ChildEBP RetAddr&nbsp; <br />0022f26c 75b30962 ntdll!ZwWaitForMultipleObjects+0x15<br />0022f308 7614162d KERNELBASE!WaitForMultipleObjectsEx+0x100<br />0022f350 76141921 kernel32!WaitForMultipleObjectsExImplementation+0xe0<br />0022f36c 65aa10e2 kernel32!WaitForMultipleObjects+0x18<br />0022f3b0 00d41b1d Senaryolar!DeadLockDurumuYarat+0x82 [d:\work\blog\debugsenaryolari\senaryolar\aski.cpp @ 40]<br />0022f3bc 61e42c6f UITest!CUITestDlg::OnBnClickedButtonDeadlock+0xd [d:\work\blog\debugsenaryolari\uitest\uitestdlg.cpp @ 168]<br />0022f3c8 61e42e51 mfc100u!_AfxDispatchCmdMsg+0x3b [f:\dd\vctools\vc7libs\ship\atlmfc\src\mfc\cmdtarg.cpp @ 82]<br />0022f3e4 61e76d36 mfc100u!CCmdTarget::OnCmdMsg+0x124 [f:\dd\vctools\vc7libs\ship\atlmfc\src\mfc\cmdtarg.cpp @ 381]<br />0022f408 61ecc444 mfc100u!CPropertySheet::OnCmdMsg+0x1d [f:\dd\vctools\vc7libs\ship\atlmfc\src\mfc\dlgprop.cpp @ 814]<br />0022f458 61d0cceb mfc100u!CWnd::OnCommand+0x92 [f:\dd\vctools\vc7libs\ship\atlmfc\src\mfc\wincore.cpp @ 2675]<br />0022f46c 61ecbc47 mfc100u!CDialogEx::OnCommand+0x2f [f:\dd\vctools\vc7libs\ship\atlmfc\src\mfc\afxdialogex.cpp @ 290]<br />0022f538 61ecbbba mfc100u!CWnd::OnWndMsg+0x66 [f:\dd\vctools\vc7libs\ship\atlmfc\src\mfc\wincore.cpp @ 2081]<br />0022f558 61eca019 mfc100u!CWnd::WindowProc+0x24 [f:\dd\vctools\vc7libs\ship\atlmfc\src\mfc\wincore.cpp @ 2067]<br />0022f5d0 61eca2a5 mfc100u!AfxCallWndProc+0xb5 [f:\dd\vctools\vc7libs\ship\atlmfc\src\mfc\wincore.cpp @ 248]<br />0022f5f4 61dc0ddb mfc100u!AfxWndProc+0x37 [f:\dd\vctools\vc7libs\ship\atlmfc\src\mfc\wincore.cpp @ 410]<br />0022f634 774a6901 mfc100u!AfxWndProcBase+0x56 [f:\dd\vctools\vc7libs\ship\atlmfc\src\mfc\afxstate.cpp @ 420]<br />0022f6e0 774acd1a user32!UserCallWinProcCheckWow+0x120<br />0022f724 774acd81 user32!SendMessageWorker+0x581<br />0022f748 74354e95 user32!SendMessageW+0x7f<br />0022f768 74354ef7 comctl32!Button_NotifyParent+0x3d<br />0022f784 74354d89 comctl32!Button_ReleaseCapture+0x113<br />0022f7e4 774a6238 comctl32!Button_WndProc+0xa18<br />0022f810 774a68ea user32!InternalCallWinProc+0x23<br />0022f888 774a7d31 user32!UserCallWinProcCheckWow+0x109<br />0022f8e8 774a7dfa user32!DispatchMessageWorker+0x3bc<br />0022f8f8 774c2292 user32!DispatchMessageW+0xf<br />0022f924 61ee0ac0 user32!IsDialogMessageW+0x5f6<br />0022f938 61eced28 mfc100u!CWnd::IsDialogMessageW+0x32 [f:\dd\vctools\vc7libs\ship\atlmfc\src\mfc\winocc.cpp @ 197]<br />0022f944 61e6c3ad mfc100u!CWnd::PreTranslateInput+0x2d [f:\dd\vctools\vc7libs\ship\atlmfc\src\mfc\wincore.cpp @ 4659]<br />0022f99c 61d0cc9c mfc100u!CDialog::PreTranslateMessage+0xcf [f:\dd\vctools\vc7libs\ship\atlmfc\src\mfc\dlgcore.cpp @ 82]<br />0022f9ac 61eccec5 mfc100u!CDialogEx::PreTranslateMessage+0x29 [f:\dd\vctools\vc7libs\ship\atlmfc\src\mfc\afxdialogex.cpp @ 275]<br />0022f9c0 61eb8a28 mfc100u!CWnd::WalkPreTranslateTree+0x23 [f:\dd\vctools\vc7libs\ship\atlmfc\src\mfc\wincore.cpp @ 3258]<br />0022f9d8 61eb922d mfc100u!AfxInternalPreTranslateMessage+0x41 [f:\dd\vctools\vc7libs\ship\atlmfc\src\mfc\thrdcore.cpp @ 233]<br />0022f9e4 61eb8a78 mfc100u!CWinThread::PreTranslateMessage+0xd [f:\dd\vctools\vc7libs\ship\atlmfc\src\mfc\thrdcore.cpp @ 777]<br />0022f9f0 61eb895d mfc100u!AfxPreTranslateMessage+0x19 [f:\dd\vctools\vc7libs\ship\atlmfc\src\mfc\thrdcore.cpp @ 255]<br />0022fa00 61ecedfd mfc100u!AfxInternalPumpMessage+0x2d [f:\dd\vctools\vc7libs\ship\atlmfc\src\mfc\thrdcore.cpp @ 178]<br />0022fa2c 61e6cae3 mfc100u!CWnd::RunModalLoop+0xc8 [f:\dd\vctools\vc7libs\ship\atlmfc\src\mfc\wincore.cpp @ 4714]<br />0022fa78 00d41197 mfc100u!CDialog::DoModal+0x12d [f:\dd\vctools\vc7libs\ship\atlmfc\src\mfc\dlgcore.cpp @ 638]<br />0022fbfc 61ede3c3 UITest!CUITestApp::InitInstance+0xf7 [d:\work\blog\debugsenaryolari\uitest\uitest.cpp @ 72]<br />0022fc10 00d42425 mfc100u!AfxWinMain+0x49 [f:\dd\vctools\vc7libs\ship\atlmfc\src\mfc\winmain.cpp @ 37]<br />0022fca4 76143677 UITest!__tmainCRTStartup+0x158 [f:\dd\vctools\crt_bld\self_x86\crt\src\crtexe.c @ 547]<br />0022fcb0 77b49d42 kernel32!BaseThreadInitThunk+0xe<br />0022fcf0 77b49d15 ntdll!__RtlUserThreadStart+0x70<br />0022fd08 00000000 ntdll!_RtlUserThreadStart+0x1b</font></p> <p><font size="2" face="Arial">Yazıyı fazla uzatmadan tadında bırakalım. Gelecek yazılarımda sembol dosyaları ve sembol ayarları konusunu detaylandıracağım.<br />Bu arada debugging ile ilgili internette bir çok kaynak mevcut. Ancak, en temel ve yaralı kaynak "Debugging Tools for Windows"un help uygulamasıdır.</font></p> <p><font size="2" face="Arial">Hoşçakalın<br />-faik<br /></font></p></p>]]></content:encoded>
    </item>
    <item>
      <title>Ani Ölümler ve IFEO</title>
      <link>https://docs.microsoft.com/archive/blogs/faik/ani-lmler-ve-ifeo</link>
      <pubDate>Thu, 13 May 2010 07:24:00 GMT</pubDate>
      <dc:creator><![CDATA[faikb]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/faik/2010/05/13/ani-lmler-ve-ifeo/</guid>
      <description><![CDATA[Merhaba,Bugün uygulamaların ani ölümleri ile ilgileneceğiz. İngilizcesi, “Sudden death”. Uygulamanın...]]></description>
      <content:encoded><![CDATA[<p minmax_bound="true"><font size="2" face="Tahoma" minmax_bound="true">Merhaba,<br minmax_bound="true">Bugün uygulamaların ani ölümleri ile ilgileneceğiz. İngilizcesi, “Sudden death”. Uygulamanın çalışmaya başlar başlamaz kapanması anlamına geliyor. <br>Bugüne kadar karşılaşmış olabilirsiniz. Uygulamaya çift tıklarsınız ancak uygulama açılmaz veya çok kısa bir süre görünür ve kapanır <br>veya SCM (Service Control Manager) içinden bir servisi başlatırsınız ancak “service terminated unexpectedly” gibi bir hata alıyorsunuz <br>veya servisin hiç başlamadığını görüyorsunuz. Uygulama loglarına baktığınızda aşağıdaki gibi kayıtlarla karşılaşabilirsiniz :</font></p> <table border="1" cellspacing="0" cellpadding="2" width="440"> <tbody> <tr> <td valign="top" width="438"><font minmax_bound="true"><font size="1" face="Tahoma">Log Name:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Application<br minmax_bound="true">Source:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Application Error<br minmax_bound="true">Date:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 13.05.2010 17:14:09<br minmax_bound="true">Event ID:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1000<br minmax_bound="true">Task Category: (100)<br minmax_bound="true">Level:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Error<br minmax_bound="true">Keywords:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Classic<br minmax_bound="true">User:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; N/A<br minmax_bound="true">Computer:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; bilgisayar_adı<br minmax_bound="true">Description:<br minmax_bound="true">Faulting application name: AniÖlüm.exe, version: 1.0.0.1, time stamp: 0x4bebdf34<br minmax_bound="true">Faulting module name: AniÖlüm.exe, version: 1.0.0.1, time stamp: 0x4bebdf34<br minmax_bound="true">Exception code: 0xc0000005</font></font></td></tr></tbody></table> <p minmax_bound="true"><font minmax_bound="true"><font size="2">&nbsp;</p> <table border="1" cellspacing="0" cellpadding="2" width="443"> <tbody> <tr> <td valign="top" width="441"><font size="1" face="Tahoma" minmax_bound="true">Log Name:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Application<br minmax_bound="true">Source:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Windows Error Reporting<br minmax_bound="true">Date:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 13.05.2010 17:14:13<br minmax_bound="true">Event ID:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1001<br minmax_bound="true">Task Category: None<br minmax_bound="true">Level:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Information<br minmax_bound="true">Keywords:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Classic<br minmax_bound="true">User:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; N/A<br minmax_bound="true">Computer:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; bilgisayar_adı<br minmax_bound="true">Description:<br minmax_bound="true">Fault bucket 1859722586, type 1<br minmax_bound="true">Event Name: APPCRASH<br minmax_bound="true">Response: Not available</font></td></tr></tbody></table></font></font><font size="2" face="Tahoma" minmax_bound="true"> <p minmax_bound="true"><br minmax_bound="true"></font><font minmax_bound="true"><font size="2" face="Tahoma">“Ani ölüm” durumundaki sorun da tam olarak bu esasında. Uygulama çalışmaya başladıktan bir süre sonra hata alıp kapansaydı geçen yazıdaki <br>adımları uygulayabilirdik. Ancak, <u>“ani ölümlerde” debugger’ı uygulamaya bağlayacak kadar dahi zaman olmaz</u>. </font></font></p> <p minmax_bound="true"><font minmax_bound="true"><font size="2" face="Tahoma">Çözüm : <strong>IFEO ( Image File Execution Options )</strong>, <br minmax_bound="true"></font></font><font minmax_bound="true"><font size="2" face="Tahoma">HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options</font></p></font> <p minmax_bound="true"><font minmax_bound="true"><font size="2" face="Tahoma">İşletim Sistemi, bir uygulamayı çalıştırırken bu <strong>Kayıt Defteri Anahtarını (KDA = registry key)</strong> muhakkak okur ve çalıştıracağı uygulama ile <br>aynı adlı bir subkey olup olmadığını kontrol eder. Varsa eğer bu key’e ait kayıt defteri değerlerini (registry values) sorgular ve ona göre aksiyon alır. <br>Örneğin, debugger değeri içinde yer alan uygulama çalıştırılır.</font></font></p> <table border="1" cellspacing="0" cellpadding="2" width="738"> <tbody> <tr> <td valign="top" width="736"><em>Meraklısına Not :<br minmax_bound="true">İşletim Sistemi’nin bir programı çalıştırırken hangi KDA’ları okuduğunu gözlemleyebilirsiniz. ProcessMonitor (ProcMon) adlı araç sistemdeki faaliyetlerin bir kısmını takip eder (dosya, network, kayıt defteri erişimi, process/thread faaliyetleri). ProcMon’u aşağıdaki adresten indirip kurabilirsiniz :<br minmax_bound="true"></font></em><a href="http://technet.microsoft.com/en-us/sysinternals/bb896645.aspx" minmax_bound="true" mce_href="http://technet.microsoft.com/en-us/sysinternals/bb896645.aspx"><font size="2" face="Tahoma"><em>http://technet.microsoft.com/en-us/sysinternals/bb896645.aspx</em></font></a><br minmax_bound="true"><font size="2" face="Tahoma"><em>#1 ProcMon’u çalıştırın<br minmax_bound="true">#2 Herhangi bir uygulamayı çalıştırın, örneğin notepad.exe<br minmax_bound="true">#3 Notepad.exe çalışmaya başladıktan sonra ProcMon’un trace almasını durdurun.<br minmax_bound="true">#4 Sonuçları açtığınız uygulamaya göre filtreleyin ( ProcessName is equal Notepad.exe )<br minmax_bound="true">#5 Filtrelenmiş sonuçta erişilen dosya ve kayıt defteri kaynaklarını görebelirsiniz.</em> </font></td></tr></tbody></table><font minmax_bound="true"><font size="2" face="Tahoma"> <p minmax_bound="true"><br minmax_bound="true"></font><font size="2" face="Tahoma">Yazının sonunda test için kullanabileceğiniz küçük bir uygulama var : “AniÖlüm.exe”yi AniÖlüm.zip adlı sıkıştırılmış dosyanın içinde bulabilirsiniz. <br>VC Çalışma Zamanı Kütüphaneleri ile ilgili bir sorunla karşılaşırsanız </font><a href="http://blogs.msdn.com/faik/archive/2010/05/11/HangModeDump_5F00_1.aspx" minmax_bound="true" mce_href="http://blogs.msdn.com/faik/archive/2010/05/11/HangModeDump_5F00_1.aspx"><font size="2" face="Tahoma">http://blogs.msdn.com/faik/archive/2010/05/11/HangModeDump_5F00_1.aspx</font></a><font size="2" face="Tahoma"> <br>adresindeki yazıma göz atabilirsiniz.<br minmax_bound="true"><br><strong>Deneme </strong><br>#1 Uygulamayı bir dizine kopyalayın ve üzerine çift tıklayın. <br>#2 Explorer içindeyken imleç beklemeyi gösteren animasyonu başlatacak, sonra imleç normale dönecek. Bu arada uygulama açılmayacak. <br>#3 Görev Yöneticisini açın, processes sekmesine gelin, ve isme göre uygulamaları sıralatın. <br>#4 AniÖlüm.exe’yi tekrar çalıştırın, kısa bir süreliğine Görev Yöneticisinde AniÖlüm.exe’yi görebilirsiniz. Veya, yukarıda bahsettiğim ProcMon <br>aracıyla AniÖlüm.exe’ye ait işlemleri görebilirsiniz.<br minmax_bound="true"></font></p> <p minmax_bound="true"><font size="2" face="Tahoma"><strong>Image File Execution Options’u ve dump almayı hazırlama</strong></font></p><font size="2" face="Tahoma"> <p minmax_bound="true">#1 “C:\Program Files\Debugging Tools for Windows (x86)” dizinine DumpAO.bat isimli bir dosya açın.</p> <p minmax_bound="true">#2 Dosyanın içine aşağıdaki satırı kopyalayın :<br minmax_bound="true">cscript.exe "C:\Program Files\Debugging Tools for Windows (x86)\adplus.vbs" -crash -o c:\dumps -quiet -sc %1<br minmax_bound="true"><br>#3 Registry Editor’ü açın (regedt32.exe)</p> <p minmax_bound="true">#4 Aşağıdaki KDA’yı bulun :<br minmax_bound="true">HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options</p> <p minmax_bound="true">#5 Bu anahtarın altına adı “AniÖlüm.exe” olan yeni bir alt anahtar yaratın.<br minmax_bound="true">HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\AniÖlüm.exe</p> <p minmax_bound="true">#6 AniÖlüm.exe adlı anahtarın altına yeni bir kayıt defteri değeri tanımlayın. Bu yeni değerin adı debugger, tipi string, içeriği de <br>"C:\Program Files\Debugging Tools for Windows (x86)\DumpAO.bat" olacak. Çift tırnaklar dahil.<br minmax_bound="true"><br>Key Name:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\AniÖlüm.exe<br minmax_bound="true">&nbsp; Name:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; debugger<br minmax_bound="true">&nbsp; Type:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; REG_SZ<br minmax_bound="true">&nbsp; Data:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; "C:\Program Files\Debugging Tools for Windows (x86)\DumpAO.bat"</p> <p minmax_bound="true"></font></font>&nbsp;</p> <p minmax_bound="true"><font size="2" face="Tahoma" minmax_bound="true">Artık AniÖlüm.exe uygulamasını her çalıştırdığınızda cdb.exe de çalışacak ve AniÖlüm.exe her exception ürettiğinde c:\dumps <br>dizini altına dump dosyası üretecek. Şimdi bunun denemesini yapalım. AniÖlüm.exe uygulamasını çalıştırın ve c:\dumps dizininin içine bakın. <br>Aşağıdaki dosyaları görmeniz gerekir (sizde dosya isimleri farklı ama aynı formatta olacaktır).</font></p> <table border="1" cellspacing="0" cellpadding="2" width="647"> <tbody> <tr> <td valign="top" width="645"> <p minmax_bound="true"><font size="1" face="Tahoma" minmax_bound="true">C:\dumps&gt;dir /s<br minmax_bound="true"> Volume in drive C has no label.<br minmax_bound="true"> Volume Serial Number is 2073-7A27</font></p> <p minmax_bound="true"><font size="1" face="Tahoma" minmax_bound="true"> Directory of C:\dumps</font></p> <p minmax_bound="true"><font size="1" face="Tahoma" minmax_bound="true">13.05.2010&nbsp; 15:25&nbsp;&nbsp;&nbsp; &lt;DIR&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; .<br minmax_bound="true">13.05.2010&nbsp; 15:25&nbsp;&nbsp;&nbsp; &lt;DIR&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ..<br minmax_bound="true">13.05.2010&nbsp; 15:25&nbsp;&nbsp;&nbsp; &lt;DIR&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Crash_Mode__Date_05-13-2010__Time_15-25-1212<br minmax_bound="true">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0 File(s)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0 bytes</font></p> <p minmax_bound="true"><font size="1" face="Tahoma" minmax_bound="true"> Directory of C:\dumps\Crash_Mode__Date_05-13-2010__Time_15-25-1212</font></p> <p minmax_bound="true"><font size="1" face="Tahoma" minmax_bound="true">13.05.2010&nbsp; 15:25&nbsp;&nbsp;&nbsp; &lt;DIR&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; .<br minmax_bound="true">13.05.2010&nbsp; 15:25&nbsp;&nbsp;&nbsp; &lt;DIR&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ..<br minmax_bound="true">13.05.2010&nbsp; 15:25&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 4.809 ADPlus_report.txt<br minmax_bound="true">13.05.2010&nbsp; 15:25&nbsp;&nbsp;&nbsp; &lt;DIR&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; CDBScripts<br minmax_bound="true">13.05.2010&nbsp; 15:25&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 314.078 PID-0__Spawned0__1st_chance_AccessViolation__mini_1090_2010-05-13_15-25-17-462_1adc.dmp<br minmax_bound="true">13.05.2010&nbsp; 15:25&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 37.625.208 PID-0__Spawned0__1st_chance_Process_Shut_Down__full_1090_2010-05-13_15-25-24-053_1adc.dmp<br minmax_bound="true">13.05.2010&nbsp; 15:25&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 44.724.812 PID-0__Spawned0__2nd_chance_AccessViolation__full_1090_2010-05-13_15-25-18-041_1adc.dmp<br minmax_bound="true">13.05.2010&nbsp; 15:25&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 43.164 PID-0__Spawned0__Date_05-13-2010__Time_15-25-1212.log<br minmax_bound="true">13.05.2010&nbsp; 15:25&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 13.866 Process_List.txt<br minmax_bound="true">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 6 File(s)&nbsp;&nbsp;&nbsp;&nbsp; 82.725.937 bytes</font></p> <p minmax_bound="true"><font size="1" face="Tahoma" minmax_bound="true"> Directory of C:\dumps\Crash_Mode__Date_05-13-2010__Time_15-25-1212\CDBScripts</font></p> <p minmax_bound="true"><font size="1" face="Tahoma" minmax_bound="true">13.05.2010&nbsp; 15:25&nbsp;&nbsp;&nbsp; &lt;DIR&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; .<br minmax_bound="true">13.05.2010&nbsp; 15:25&nbsp;&nbsp;&nbsp; &lt;DIR&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ..<br minmax_bound="true">13.05.2010&nbsp; 15:25&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 28.637 PID-0__Spawned0.cfg<br minmax_bound="true">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1 File(s)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 28.637 bytes</font></p> <p minmax_bound="true"><font size="1" face="Tahoma" minmax_bound="true">&nbsp;&nbsp;&nbsp;&nbsp; Total Files Listed:<br minmax_bound="true">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 7 File(s)&nbsp;&nbsp;&nbsp;&nbsp; 82.754.574 bytes<br minmax_bound="true">&nbsp;&nbsp;&nbsp;&nbsp; </font></p></td></tr></tbody></table> <p minmax_bound="true"> <p minmax_bound="true"><font size="2" face="Tahoma" minmax_bound="true"></font></p><font minmax_bound="true"></font><font size="2" face="Tahoma">&nbsp;</font></p> <p minmax_bound="true"><font size="2" face="Tahoma" minmax_bound="true">Hoşçakalın</font></p> <p minmax_bound="true"><font size="2" face="Tahoma" minmax_bound="true">-faik</font></p> <p minmax_bound="true"><font size="2" face="Tahoma" minmax_bound="true"></font></p> <p minmax_bound="true"><font size="2" face="Tahoma"></font></p>
<p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Components.PostAttachments/00/10/01/25/29/AniD600lFC00m.zip" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-components-postattachments/00-10-01-25-29/Ani_D600_l_FC00_m.zip">AniÖlüm.zip</a></p>]]></content:encoded>
    </item>
    <item>
      <title>Crash Mode, 1st/2nd chance exception, mini/full</title>
      <link>https://docs.microsoft.com/archive/blogs/faik/crash-mode-1st2nd-chance-exception-minifull</link>
      <pubDate>Wed, 12 May 2010 06:03:00 GMT</pubDate>
      <dc:creator><![CDATA[faikb]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/faik/2010/05/12/crash-mode-1st2nd-chance-exception-minifull/</guid>
      <description><![CDATA[Merhaba, Artık dump alma ile ilgili temel adımlara alıştığınızı umuyorum. Bu kez exception...]]></description>
      <content:encoded><![CDATA[<font face="tahoma,arial,helvetica,sans-serif" minmax_bound="true"> <p style="margin: 0cm 0cm 10pt" class="MsoNormal" minmax_bound="true"><font size="3" minmax_bound="true"><font face="Calibri" minmax_bound="true">Merhaba,<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /><o:p minmax_bound="true"></o:p></font></font></p> <p style="margin: 0cm 0cm 10pt" class="MsoNormal" minmax_bound="true"><font size="3" minmax_bound="true"><font face="Calibri" minmax_bound="true">Artık dump alma ile ilgili temel adımlara alıştığınızı umuyorum. Bu kez exception oluşturan uygulamaların dump’larının nasıl alınabileceğine değineceğim.<o:p minmax_bound="true"></o:p></font></font></p> <p style="margin: 0cm 0cm 10pt" class="MsoNormal" minmax_bound="true"><font size="3" minmax_bound="true"><font face="Calibri" minmax_bound="true">"Dump Alma ( Hang Mode - I )" makalesindeki UITest.exe’yi kullanacağız. Uygulamayı çalıştıralım ve “AccessViolation” butonuna basalım. İşletim sistemi, versiyonuna bağlı olarak bir takım kurtarma girişimlerinde bulunabilir, size seçenekler sunabilir. Ama, sonuçta uygulama kapanacaktır :</font></font></p> <p style="margin: 0cm 0cm 10pt" class="MsoNormal" minmax_bound="true"><font size="3" face="Calibri"></font>&nbsp;</p> <p style="margin: 0cm 0cm 10pt" class="MsoNormal" minmax_bound="true"><o:p minmax_bound="true"><font size="3" face="Calibri" minmax_bound="true">&nbsp;<a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com//faikb/10011630.aspx" original-url="http://blogs.msdn.com/photos/faikb/picture10011630.aspx" target="_blank" minmax_bound="true"><IMG border=0 src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Components.PostAttachments/00/10/01/16/30/UITestCrash.jpg" original-url="http://blogs.msdn.com/photos/faikb/images/10011630/original.aspx" minmax_bound="true"></a></font></o:p></p> <p style="margin: 0cm 0cm 10pt" class="MsoNormal" minmax_bound="true"><b style="mso-bidi-font-weight: normal" minmax_bound="true"><font size="3" minmax_bound="true"><font face="Calibri" minmax_bound="true"></font></font></b>&nbsp;</p> <p style="margin: 0cm 0cm 10pt" class="MsoNormal" minmax_bound="true"><b style="mso-bidi-font-weight: normal" minmax_bound="true"><font size="3" minmax_bound="true"><font face="Calibri" minmax_bound="true">1st/2nd Chance Exception<o:p minmax_bound="true"></o:p></font></font></b></p> <p style="margin: 0cm 0cm 10pt" class="MsoNormal" minmax_bound="true"><font size="3" minmax_bound="true"><font face="Calibri" minmax_bound="true">Olanları şöyle özetleyebiliriz :<o:p minmax_bound="true"></o:p></font></font></p> <p style="margin: 0cm 0cm 10pt" class="MsoNormal" minmax_bound="true"><font size="3" minmax_bound="true"><font face="Calibri" minmax_bound="true">#1 Exception throw edilir ve İşletim Sistemi uygulamaya exception’ı handle edip edemeyeceğini sorar. Bu durumu “1st chance exception” olarak da adlandırıyoruz. Eğer uygulamaya bir debugger bağlı ise o zaman debugger bir dump alabilir. Eğer debugger adplus ile çalıştırılmışsa cdb.exe, bir minidump (aşağıda anlatacağım) dosyası üretir. Exception durumlarında debugger’ların ne yapabileceklerini özelleştirebilirsiniz. Dolayısıyla, debugger istediğiniz başka bir eylemi de gerçekleştirebilir. Örneğin, aslında adplus, cdb.exe’nin sadece minidump oluşturmasını değil aynı zamanda log dosyasına da exception’la ilgili bilgiler yazmasını sağlar.<o:p minmax_bound="true"></o:p></font></font></p> <p style="margin: 0cm 0cm 10pt" class="MsoNormal" minmax_bound="true"><font size="3" minmax_bound="true"><font face="Calibri" minmax_bound="true">#2 Uygulama exception’ı handle edebiliyorsa kontrol uygulamada kalır ve uygulamaya çalışmaya devam eder.<o:p minmax_bound="true"></o:p></font></font></p> <p style="margin: 0cm 0cm 10pt" class="MsoNormal" minmax_bound="true"><font size="3" minmax_bound="true"><font face="Calibri" minmax_bound="true">#3 Eğer uygulama exception’ı handle edemezse o zaman işletim sistemi uygulamayı kapatmaya karar verir. Bu duruma da “2nd chance exception” denir. Aynı şekilde, eğer bir debugger uygulamaya bağlı ise debugger istenen eylemi gerçekleştirecektir. Örneğin, adplus ile çalıştırılmış cdb.exe bu durumda bir fulldump dosyası üretecektir. Sonra da uygulama kapanır. Aslında, bu aşamada bir dump daha yazılır. O da “1st chance process shutdown” exception’ından kaynaklanan dumptır.<o:p minmax_bound="true"></o:p></font></font></p> <p style="margin: 0cm 0cm 10pt" class="MsoNormal" minmax_bound="true"><o:p minmax_bound="true"><font size="3" face="Calibri" minmax_bound="true">&nbsp;</font></o:p></p> <p style="margin: 0cm 0cm 10pt" class="MsoNormal" minmax_bound="true"><b style="mso-bidi-font-weight: normal" minmax_bound="true"><font size="3" minmax_bound="true"><font face="Calibri" minmax_bound="true">Adım adım crash dump alma<o:p minmax_bound="true"></o:p></font></font></b></p> <p style="margin: 0cm 0cm 10pt" class="MsoNormal" minmax_bound="true"><font size="3" minmax_bound="true"><font face="Calibri" minmax_bound="true">#1 UITest.exe uygulamasını çalıştırın.<o:p minmax_bound="true"></o:p></font></font></p> <p style="margin: 0cm 0cm 10pt" class="MsoNormal" minmax_bound="true"><font size="3" minmax_bound="true"><font face="Calibri" minmax_bound="true">#2 Elevated ( Run as Administrator ) bir komut satırı açalım.<o:p minmax_bound="true"></o:p></font></font></p> <p style="margin: 0cm 0cm 10pt" class="MsoNormal" minmax_bound="true"><font size="3" minmax_bound="true"><font face="Calibri" minmax_bound="true">#3 “C:\Program Files\Debugging Tools for Windows (x86)” dizinine geçelim.<o:p minmax_bound="true"></o:p></font></font></p> <p style="margin: 0cm 0cm 10pt" class="MsoNormal" minmax_bound="true"><font size="3" minmax_bound="true"><font face="Calibri" minmax_bound="true">#4 Aşağıdaki komutu yazıp çalıştıralım :<o:p minmax_bound="true"></o:p></font></font></p> <p style="margin: 0cm 0cm 10pt" class="MsoNormal" minmax_bound="true"><font size="3" minmax_bound="true"><font face="Calibri" minmax_bound="true">Adplus -crash -pn UITest.exe -o c:\dumps -quiet<o:p minmax_bound="true"></o:p></font></font></p> <p style="margin: 0cm 0cm 10pt" class="MsoNormal" minmax_bound="true"><font size="3" minmax_bound="true"><font face="Calibri" minmax_bound="true">Komut çalışınca aşağıdaki gibi bir yazı görebilirsiniz. “quiet” modda çalıştırdığımız için sembol dizini uyarısı komut satırına yazılıyor. Sonra da debugger’ın uygulamaya başarıyla bağlandığı belirtiliyor.</font></font></p> <p style="margin: 0cm 0cm 10pt" class="MsoNormal" minmax_bound="true"><font size="3" minmax_bound="true"><font face="Calibri" minmax_bound="true"></font></font>&nbsp;</p> <table border="1" cellspacing="0" cellpadding="2" width="467"> <tbody> <tr> <td valign="top" width="465"> <p style="margin: 0cm 0cm 10pt" class="MsoNormal" minmax_bound="true"><span style="line-height: 115%; font-size: 10pt; mso-bidi-font-size: 11.0pt" minmax_bound="true"><font face="Calibri" minmax_bound="true">C:\Program Files\Debugging Tools for Windows (x86)&gt;Adplus -crash -pn UITest.exe</font></span></p> <p style="margin: 0cm 0cm 10pt" class="MsoNormal" minmax_bound="true"><span style="line-height: 115%; font-size: 10pt; mso-bidi-font-size: 11.0pt" minmax_bound="true"><font face="Calibri" minmax_bound="true">-o c:\dumps -quiet<o:p minmax_bound="true"></o:p></font></span></p> <p style="margin: 0cm 0cm 10pt" class="MsoNormal" minmax_bound="true"><span style="line-height: 115%; font-size: 10pt; mso-bidi-font-size: 11.0pt" minmax_bound="true"><font face="Calibri" minmax_bound="true">WARNING!<span style="mso-spacerun: yes" minmax_bound="true">&nbsp; </span>An '_NT_SYMBOL_PATH' environment variable is not set.<o:p minmax_bound="true"></o:p></font></span></p> <p style="margin: 0cm 0cm 10pt" class="MsoNormal" minmax_bound="true"><span style="line-height: 115%; font-size: 10pt; mso-bidi-font-size: 11.0pt" minmax_bound="true"><font face="Calibri" minmax_bound="true">Please check the application event log or the ADPlus-report.txt<o:p minmax_bound="true"></o:p></font></span></p> <p style="margin: 0cm 0cm 10pt" class="MsoNormal" minmax_bound="true"><span style="line-height: 115%; font-size: 10pt; mso-bidi-font-size: 11.0pt" minmax_bound="true"><font face="Calibri" minmax_bound="true">for more details.<o:p minmax_bound="true"></o:p></font></span></p> <p style="margin: 0cm 0cm 10pt" class="MsoNormal" minmax_bound="true">&nbsp;</p> <p style="margin: 0cm 0cm 10pt" class="MsoNormal" minmax_bound="true"><span style="line-height: 115%; font-size: 10pt; mso-bidi-font-size: 11.0pt" minmax_bound="true"><font face="Calibri" minmax_bound="true">Attaching the debugger to: UITEST.EXE<o:p minmax_bound="true"></o:p></font></span></p> <p style="margin: 0cm 0cm 10pt" class="MsoNormal" minmax_bound="true"><font face="Calibri" minmax_bound="true"><span style="line-height: 115%; font-size: 10pt; mso-bidi-font-size: 11.0pt" minmax_bound="true"><span style="mso-spacerun: yes" minmax_bound="true">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>(Process ID: 4376)</span><o:p minmax_bound="true"></o:p></font></p></td></tr></tbody></table> <p style="margin: 0cm 0cm 10pt" class="MsoNormal" minmax_bound="true"><font face="Calibri" minmax_bound="true"><span style="line-height: 115%; font-size: 10pt; mso-bidi-font-size: 11.0pt" minmax_bound="true"></span><o:p minmax_bound="true"></o:p></font></p> <p style="margin: 0cm 0cm 10pt" class="MsoNormal" minmax_bound="true"><font size="3" minmax_bound="true"><font face="Calibri" minmax_bound="true">#5 Taskbar’da minimized olarak cdb.exe’nin çalışmaya başladığını göreceksiniz. Hatırlarsanız hang mod dump alırken bu uygulama kısa bir süre gözüküyordu sonra da kapanıyordu. Artık uygulama kapanana kadar cdb.exe de açık kalacak. Cdb.exe’yi maximize ederseniz aşağıdaki gibi yazıların olduğu bir komut satırı göreceksiniz :</font></font></p> <p style="margin: 0cm 0cm 10pt" class="MsoNormal" minmax_bound="true"><font size="3" minmax_bound="true"><font face="Calibri" minmax_bound="true"></font></font>&nbsp;</p> <table border="1" cellspacing="0" cellpadding="2" width="510"> <tbody> <tr> <td valign="top" width="508"> <p style="margin: 0cm 0cm 10pt" class="MsoNormal" minmax_bound="true"><span style="line-height: 115%; font-size: 9pt; mso-bidi-font-size: 11.0pt" minmax_bound="true"><font face="Calibri" minmax_bound="true">mps\Crash_Mode__Date_05-12-2010__Time_15-26-0505; GN" isc<o:p minmax_bound="true"></o:p></font></span></p> <p style="margin: 0cm 0cm 10pt" class="MsoNormal" minmax_bound="true"><span style="line-height: 115%; font-size: 9pt; mso-bidi-font-size: 11.0pt" minmax_bound="true"><font face="Calibri" minmax_bound="true">0:001&gt; sxe -c @".echo ---;.echo --- 1st chance Stack_buffer_overflow exception -<o:p minmax_bound="true"></o:p></font></span></p> <p style="margin: 0cm 0cm 10pt" class="MsoNormal" minmax_bound="true"><span style="line-height: 115%; font-size: 9pt; mso-bidi-font-size: 11.0pt" minmax_bound="true"><font face="Calibri" minmax_bound="true">---;.echo ---------------------------------------------------------------;.echo;<o:p minmax_bound="true"></o:p></font></span></p> <p style="margin: 0cm 0cm 10pt" class="MsoNormal" minmax_bound="true"><span style="line-height: 115%; font-size: 9pt; mso-bidi-font-size: 11.0pt" minmax_bound="true"><font face="Calibri" minmax_bound="true">.echo Occurrence happened at: ;.time;.echo;.echo Faulting stack below ---;~#kvn2<o:p minmax_bound="true"></o:p></font></span></p> <p style="margin: 0cm 0cm 10pt" class="MsoNormal" minmax_bound="true"><span style="line-height: 115%; font-size: 9pt; mso-bidi-font-size: 11.0pt" minmax_bound="true"><font face="Calibri" minmax_bound="true">50;.echo;.dump -u /mdi /c 1st_chance_Stack_buffer_overflow_exception_in_UITEST.E<o:p minmax_bound="true"></o:p></font></span></p> <p style="margin: 0cm 0cm 10pt" class="MsoNormal" minmax_bound="true"><span style="line-height: 115%; font-size: 9pt; mso-bidi-font-size: 11.0pt" minmax_bound="true"><font face="Calibri" minmax_bound="true">XE_running_on_FHBEFES c:\dumps\Crash_Mode__Date_05-12-2010__Time_15-26-0505\PID-<o:p minmax_bound="true"></o:p></font></span></p> <p style="margin: 0cm 0cm 10pt" class="MsoNormal" minmax_bound="true"><span style="line-height: 115%; font-size: 9pt; mso-bidi-font-size: 11.0pt" minmax_bound="true"><font face="Calibri" minmax_bound="true">4376__UITEST.EXE__1st_chance_Stack_buffer_overflow__mini.dmp; GN" -c2 @".echo --<o:p minmax_bound="true"></o:p></font></span></p> <p style="margin: 0cm 0cm 10pt" class="MsoNormal" minmax_bound="true"><span style="line-height: 115%; font-size: 9pt; mso-bidi-font-size: 11.0pt" minmax_bound="true"><font face="Calibri" minmax_bound="true">-;.echo --- 2nd chance Stack_buffer_overflow exception ----;.echo --------------<o:p minmax_bound="true"></o:p></font></span></p> <p style="margin: 0cm 0cm 10pt" class="MsoNormal" minmax_bound="true"><span style="line-height: 115%; font-size: 9pt; mso-bidi-font-size: 11.0pt" minmax_bound="true"><font face="Calibri" minmax_bound="true">-------------------------------------------------;.echo;.echo Occurrence happene<o:p minmax_bound="true"></o:p></font></span></p> <p style="margin: 0cm 0cm 10pt" class="MsoNormal" minmax_bound="true"><span style="line-height: 115%; font-size: 9pt; mso-bidi-font-size: 11.0pt" minmax_bound="true"><font face="Calibri" minmax_bound="true">d at: ;.time;.echo;.echo Faulting stack below ---;~#kvn250;.echo;.dump -u /ma /c<o:p minmax_bound="true"></o:p></font></span></p> <p style="margin: 0cm 0cm 10pt" class="MsoNormal" minmax_bound="true"><span style="line-height: 115%; font-size: 9pt; mso-bidi-font-size: 11.0pt" minmax_bound="true"><font face="Calibri" minmax_bound="true"><span style="mso-spacerun: yes" minmax_bound="true">&nbsp;</span>2nd_chance_Stack_buffer_overflow_exception_in_UITEST.EXE_running_on_FHBEFES c:\<o:p minmax_bound="true"></o:p></font></span></p> <p style="margin: 0cm 0cm 10pt" class="MsoNormal" minmax_bound="true"><span style="line-height: 115%; font-size: 9pt; mso-bidi-font-size: 11.0pt" minmax_bound="true"><font face="Calibri" minmax_bound="true">dumps\Crash_Mode__Date_05-12-2010__Time_15-26-0505\PID-4376__UITEST.EXE__2nd_cha<o:p minmax_bound="true"></o:p></font></span></p> <p style="margin: 0cm 0cm 10pt" class="MsoNormal" minmax_bound="true"><span style="line-height: 115%; font-size: 9pt; mso-bidi-font-size: 11.0pt" minmax_bound="true"><font face="Calibri" minmax_bound="true">nce_Stack_buffer_overflow__full.dmp;!elog_str ADPlus detected a 2nd chance Stack<o:p minmax_bound="true"></o:p></font></span></p> <p style="margin: 0cm 0cm 10pt" class="MsoNormal" minmax_bound="true"><span style="line-height: 115%; font-size: 9pt; mso-bidi-font-size: 11.0pt" minmax_bound="true"><font face="Calibri" minmax_bound="true">_buffer_overflow exception in process UITEST.EXE and has taken the following act<o:p minmax_bound="true"></o:p></font></span></p> <p style="margin: 0cm 0cm 10pt" class="MsoNormal" minmax_bound="true"><span style="line-height: 115%; font-size: 9pt; mso-bidi-font-size: 11.0pt" minmax_bound="true"><font face="Calibri" minmax_bound="true">ions at the time of the crash: Log Time Stack FullDump EventLog. The output dire<o:p minmax_bound="true"></o:p></font></span></p> <p style="margin: 0cm 0cm 10pt" class="MsoNormal" minmax_bound="true"><span style="line-height: 115%; font-size: 9pt; mso-bidi-font-size: 11.0pt" minmax_bound="true"><font face="Calibri" minmax_bound="true">ctory is c:\dumps\Crash_Mode__Date_05-12-2010__Time_15-26-0505; GN" sbo<o:p minmax_bound="true"></o:p></font></span></p> <p style="margin: 0cm 0cm 10pt" class="MsoNormal" minmax_bound="true"><span style="line-height: 115%; font-size: 9pt; mso-bidi-font-size: 11.0pt" minmax_bound="true"><font face="Calibri" minmax_bound="true">0:001&gt; *<o:p minmax_bound="true"></o:p></font></span></p> <p style="margin: 0cm 0cm 10pt" class="MsoNormal" minmax_bound="true"><span style="line-height: 115%; font-size: 9pt; mso-bidi-font-size: 11.0pt" minmax_bound="true"><font face="Calibri" minmax_bound="true">0:001&gt; * ADPlus is monitoring: UITEST.EXE<o:p minmax_bound="true"></o:p></font></span></p> <p style="margin: 0cm 0cm 10pt" class="MsoNormal" minmax_bound="true"><span style="line-height: 115%; font-size: 9pt; mso-bidi-font-size: 11.0pt" minmax_bound="true"><font face="Calibri" minmax_bound="true">0:001&gt; * for<span style="mso-spacerun: yes" minmax_bound="true">&nbsp; </span>1st chance and 2nd chance exceptions as configured above.<o:p minmax_bound="true"></o:p></font></span></p> <p style="margin: 0cm 0cm 10pt" class="MsoNormal" minmax_bound="true"><span style="line-height: 115%; font-size: 9pt; mso-bidi-font-size: 11.0pt" minmax_bound="true"><font face="Calibri" minmax_bound="true">0:001&gt; * To change ADPlus configuration please refer to ADPlus.Doc. This file ca<o:p minmax_bound="true"></o:p></font></span></p> <p style="margin: 0cm 0cm 10pt" class="MsoNormal" minmax_bound="true"><span style="line-height: 115%; font-size: 9pt; mso-bidi-font-size: 11.0pt" minmax_bound="true"><font face="Calibri" minmax_bound="true">n be found<o:p minmax_bound="true"></o:p></font></span></p> <p style="margin: 0cm 0cm 10pt" class="MsoNormal" minmax_bound="true"><span style="line-height: 115%; font-size: 9pt; mso-bidi-font-size: 11.0pt" minmax_bound="true"><font face="Calibri" minmax_bound="true">0:001&gt; * in the same folder as ADPlus.vbs<o:p minmax_bound="true"></o:p></font></span></p> <p style="margin: 0cm 0cm 10pt" class="MsoNormal" minmax_bound="true"><span style="line-height: 115%; font-size: 9pt; mso-bidi-font-size: 11.0pt" minmax_bound="true"><font face="Calibri" minmax_bound="true">0:001&gt; *<o:p minmax_bound="true"></o:p></font></span></p> <p style="margin: 0cm 0cm 10pt" class="MsoNormal" minmax_bound="true"><span style="line-height: 115%; font-size: 9pt; mso-bidi-font-size: 11.0pt" minmax_bound="true"><font face="Calibri" minmax_bound="true">0:001&gt; g<o:p minmax_bound="true"></o:p></font></span></p></td></tr></tbody></table> <p style="margin: 0cm 0cm 10pt" class="MsoNormal" minmax_bound="true"><font size="3" minmax_bound="true"><font face="Calibri" minmax_bound="true"><o:p minmax_bound="true"></o:p></font></font>&nbsp;</p> <p style="margin: 0cm 0cm 10pt" class="MsoNormal" minmax_bound="true"><o:p minmax_bound="true"><font size="3" face="Calibri" minmax_bound="true">&nbsp;</font></o:p></p> <p style="margin: 0cm 0cm 10pt" class="MsoNormal" minmax_bound="true"><font size="3" minmax_bound="true"><font face="Calibri" minmax_bound="true">#6 Şimdi “AccessViolation” butonuna basın. Cdb.exe ve UITest.exe uygulamalarının kapanmasını bekleyin.<o:p minmax_bound="true"></o:p></font></font></p> <p style="margin: 0cm 0cm 10pt" class="MsoNormal" minmax_bound="true"><font size="3" minmax_bound="true"><font face="Calibri" minmax_bound="true">#7 c:\dumps dizinine bakın. İçinde adı “Crash_Mode__Date_05-12-2010__Time_15-26-0505” e benzer bir dizin oluştuğunu göreceksiniz. Bu dizinlerin debugger tarafından açıldığını biliyoruz. Hang mod dump alırken de benzer formatlı isimlerin olduğu dizinlerin yaratıldığını görmüştük. <o:p minmax_bound="true"></o:p></font></font></p> <p style="margin: 0cm 0cm 10pt" class="MsoNormal" minmax_bound="true"><font size="3" minmax_bound="true"><font face="Calibri" minmax_bound="true">Şimdi bu dizinin içine bakalım. Aynı tipte log dosyalarının olduğunu göreceksiniz. Ancak hang moddan farklı olarak 3 tane “dmp” uzantılı dosya olduğunu göreceksiniz.<o:p minmax_bound="true"></o:p></font></font></p> <p style="margin: 0cm 0cm 10pt" class="MsoNormal" minmax_bound="true"><font size="3" minmax_bound="true"><font face="Calibri" minmax_bound="true">PID-4376__UITEST.EXE__1st_chance_AccessViolation__mini_1760_2010-05-12_15-31-56-867_1118.dmp<o:p minmax_bound="true"></o:p></font></font></p> <p style="margin: 0cm 0cm 10pt" class="MsoNormal" minmax_bound="true"><font size="3" minmax_bound="true"><font face="Calibri" minmax_bound="true">PID-4376__UITEST.EXE__2nd_chance_AccessViolation__full_1760_2010-05-12_15-31-57-101_1118.dmp<o:p minmax_bound="true"></o:p></font></font></p> <p style="margin: 0cm 0cm 10pt" class="MsoNormal" minmax_bound="true"><font size="3" minmax_bound="true"><font face="Calibri" minmax_bound="true">PID-4376__UITEST.EXE__1st_chance_Process_Shut_Down__full_1760_2010-05-12_15-32-06-054_1118.dmp<o:p minmax_bound="true"></o:p></font></font></p> <p style="margin: 0cm 0cm 10pt" class="MsoNormal" minmax_bound="true"><o:p minmax_bound="true"><font size="3" face="Calibri" minmax_bound="true">&nbsp;</font></o:p></p> <p style="margin: 0cm 0cm 10pt" class="MsoNormal" minmax_bound="true"><font size="3" minmax_bound="true"><font face="Calibri" minmax_bound="true">İsimlere dikkat ederseniz, “1st chance” “2nd chance” ve “full”/”mini” sözcüklerinin kullanıldığını göreceksiniz. 1st/2nd chance’ten sonra exception’nın tipi de yazılacaktır. Bizim örneğimiz “AccessViolation” exception’ı olduğu için “_AccessViolation_” sözcüğü eklenmiş.<o:p minmax_bound="true"></o:p></font></font></p> <p style="margin: 0cm 0cm 10pt" class="MsoNormal" minmax_bound="true"><I style="mso-bidi-font-style: normal" minmax_bound="true"><font size="3" minmax_bound="true"><font face="Calibri" minmax_bound="true">Meraklısına not : Henüz dmp dosyalarını incelemeye başlamadık. Ancak, nelerle uğraşacağımızı merak ediyorsanız “PID-XXXX__UITEST.EXE__Date_MM-DD-YYYY__Time_HH-MM-SEC.log” dosyasını inceleyebilirsiniz.<o:p minmax_bound="true"></o:p></font></font></I></p> <p style="margin: 0cm 0cm 10pt" class="MsoNormal" minmax_bound="true"><o:p minmax_bound="true"><font size="3" face="Calibri" minmax_bound="true">&nbsp;</font></o:p></p> <p style="margin: 0cm 0cm 10pt" class="MsoNormal" minmax_bound="true"><b style="mso-bidi-font-weight: normal" minmax_bound="true"><font size="3" minmax_bound="true"><font face="Calibri" minmax_bound="true">Exception üreten ancak kapanmayan uygulamalar <o:p minmax_bound="true"></o:p></font></font></b></p> <p style="margin: 0cm 0cm 10pt" class="MsoNormal" minmax_bound="true"><font size="3" minmax_bound="true"><font face="Calibri" minmax_bound="true">Aslında neredeyse tüm uygulamalar bu sınıfa girer çünkü; büyük olasılıkla çalıştıkları süre zarfında bir exception’la karşılaşabilirler. Exception handle edilebiliyorsa sorun yok. Uygulama çalışmaya devam eder. Duruma göre throw edilen bu exception’nın önemi olabilir ve biz de bu anda bir dump almak isteyebiliriz. <o:p minmax_bound="true"></o:p></font></font></p> <p style="margin: 0cm 0cm 10pt" class="MsoNormal" minmax_bound="true"><font size="3" minmax_bound="true"><font face="Calibri" minmax_bound="true">Bir deneme yapmak için yukarıdaki tüm adımları tekrarlayın. Sadece 6. adımda “AccessViolation Handled” butonuna basın. Sadece bir “1st chance access violation” minidump dosyası oluştuğunu göreceksiniz.</font></font></p> <p style="margin: 0cm 0cm 10pt" class="MsoNormal" minmax_bound="true"><font size="3" minmax_bound="true"><font face="Calibri" minmax_bound="true"><o:p minmax_bound="true"></o:p></font></font>&nbsp;</p> <p style="margin: 0cm 0cm 10pt" class="MsoNormal" minmax_bound="true"><b style="mso-bidi-font-weight: normal" minmax_bound="true"><font size="3" minmax_bound="true"><font face="Calibri" minmax_bound="true">Minidump/FullDump dosyaları<o:p minmax_bound="true"></o:p></font></font></b></p> <p style="margin: 0cm 0cm 10pt" class="MsoNormal" minmax_bound="true"><font size="3" minmax_bound="true"><font face="Calibri" minmax_bound="true">Fulldump : Uygulamanın kullandığı tüm sanal bellek alanı, yüklenmiş tüm modülleri, handle tablosunu içerir.<o:p minmax_bound="true"></o:p></font></font></p> <p style="margin: 0cm 0cm 10pt" class="MsoNormal" minmax_bound="true"><font size="3" minmax_bound="true"><font face="Calibri" minmax_bound="true">Minidump : Bu kadar çok bilgiyi içermez, sadece threadlerin callstack’lerini ve yüklenmiş modüllerle ilgili bir takım bilgileri barındırır.<o:p minmax_bound="true"></o:p></font></font></p> <p style="margin: 0cm 0cm 10pt" class="MsoNormal" minmax_bound="true"><o:p minmax_bound="true"><font size="3" face="Calibri" minmax_bound="true">&nbsp;</font></o:p></p> <p style="margin: 0cm 0cm 10pt" class="MsoNormal" minmax_bound="true"><font size="3" minmax_bound="true"><font face="Calibri" minmax_bound="true">Hoşçakalın<o:p minmax_bound="true"></o:p></font></font></p> <p style="margin: 0cm 0cm 10pt" class="MsoNormal" minmax_bound="true"><font size="3" minmax_bound="true"><font face="Calibri" minmax_bound="true">-faik</font></font></p> <p style="margin: 0cm 0cm 10pt" class="MsoNormal" minmax_bound="true"><font size="3" face="Calibri" minmax_bound="true"></font>&nbsp;</p></font>]]></content:encoded>
    </item>
    <item>
      <title>Dump Alma ( Hang Mode - II )</title>
      <link>https://docs.microsoft.com/archive/blogs/faik/dump-alma-hang-mode-ii</link>
      <pubDate>Wed, 12 May 2010 01:35:00 GMT</pubDate>
      <dc:creator><![CDATA[faikb]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/faik/2010/05/12/dump-alma-hang-mode-ii/</guid>
      <description><![CDATA[Merhaba,
Geçen sefer yanıt vermeyen ve işlemci zamanını az kullanan uygulamadan nasıl dump...]]></description>
      <content:encoded><![CDATA[<FONT face=tahoma,arial,helvetica,sans-serif minmax_bound="true">
<P style="MARGIN: 0cm 0cm 10pt" class=MsoNormal minmax_bound="true"><FONT size=3 minmax_bound="true"><FONT face=Calibri minmax_bound="true">Merhaba,<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /><o:p minmax_bound="true"></o:p></FONT></FONT></P>
<P style="MARGIN: 0cm 0cm 10pt" class=MsoNormal minmax_bound="true"><FONT size=3 minmax_bound="true"><FONT face=Calibri minmax_bound="true">Geçen sefer yanıt vermeyen ve işlemci zamanını az kullanan uygulamadan nasıl dump alınacağına değinmiştim. Bu kez yanıt vermeyen ancak işlemci zamanını çok kullanan bir uygulamadan nasıl dump alınabileceğini anlatacağım.<o:p minmax_bound="true"></o:p></FONT></FONT></P>
<P style="MARGIN: 0cm 0cm 10pt" class=MsoNormal minmax_bound="true"><FONT size=3 minmax_bound="true"><FONT face=Calibri minmax_bound="true">İlk yazımda belirttiğim gibi uygulama yanıt vermez durumu gelince yapmamız gereken ne kadar işlemci zamanı kullandığına göz atmak olmalı. <o:p minmax_bound="true"></o:p></FONT></FONT></P>
<P style="MARGIN: 0cm 0cm 10pt" class=MsoNormal minmax_bound="true"><FONT size=3 minmax_bound="true"><FONT face=Calibri minmax_bound="true">Geçen yazıda yayınladığım UITest.exe uygulamasını açın ve “Yüksek İşlemci” butonuna basın. <o:p minmax_bound="true"></o:p></FONT></FONT></P>
<P style="MARGIN: 0cm 0cm 10pt" class=MsoNormal minmax_bound="true"><FONT size=3 minmax_bound="true"><FONT face=Calibri minmax_bound="true">Sonra, UITest.exe uygulamasını tutup çekmeye çalışın. Bir kez daha UITest.exe’nin başlığına “Not Responding” açıklamasının eklendiğini göreceğiz.<o:p minmax_bound="true"></o:p></FONT></FONT></P>
<P style="MARGIN: 0cm 0cm 10pt" class=MsoNormal minmax_bound="true"><FONT size=3 minmax_bound="true"><FONT face=Calibri minmax_bound="true">Görev Yöneticisini açın ve “Processes (işlemler)” sekmesinden “UITest.exe” uygulamasını bulun ve CPU kolonundaki değeri kontrol edin. Görmenizi beklediğim değer en az 100 / İşlemciSayısı dır. </FONT></FONT></P>
<P style="MARGIN: 0cm 0cm 10pt" class=MsoNormal minmax_bound="true"><FONT size=3 minmax_bound="true"><FONT face=Calibri minmax_bound="true">Örneğin, bir işlemciniz varsa 100, ikiyse 50, gibi. İleride dump analizini tartıştığımızda nedenlerini daha ayrıntılı göreceğiz.<o:p minmax_bound="true"></o:p></FONT></FONT></P>
<P style="MARGIN: 0cm 0cm 10pt" class=MsoNormal minmax_bound="true"><o:p minmax_bound="true"><FONT size=3 face=Calibri minmax_bound="true">&nbsp;</FONT></o:p></P>
<P style="MARGIN: 0cm 0cm 10pt" class=MsoNormal minmax_bound="true"><o:p minmax_bound="true"><FONT size=3 face=Calibri minmax_bound="true"><A href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com//faikb/10011501.aspx" original-url="http://blogs.msdn.com/photos/faikb/picture10011501.aspx" target=_blank minmax_bound="true" mce_href="http://blogs.msdn.com/photos/faikb/picture10011501.aspx"></A></FONT></o:p></P>
<P style="MARGIN: 0cm 0cm 10pt" class=MsoNormal minmax_bound="true"><o:p minmax_bound="true"><FONT size=3 face=Calibri minmax_bound="true"></FONT></o:p><A href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com//faikb/10011502.aspx" original-url="http://blogs.msdn.com/photos/faikb/picture10011502.aspx" target=_blank minmax_bound="true" mce_href="http://blogs.msdn.com/photos/faikb/picture10011502.aspx"><IMG border=0 src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Components.PostAttachments/00/10/01/15/02/HighCPU2.jpg" original-url="http://blogs.msdn.com/photos/faikb/images/10011502/original.aspx" minmax_bound="true" mce_src="http://blogs.msdn.com/photos/faikb/images/10011502/original.aspx"></A>&nbsp;</P>
<P style="MARGIN: 0cm 0cm 10pt" class=MsoNormal minmax_bound="true"><FONT size=3 minmax_bound="true"><FONT face=Calibri minmax_bound="true"></FONT></FONT>&nbsp;</P>
<P style="MARGIN: 0cm 0cm 10pt" class=MsoNormal minmax_bound="true"><FONT size=3 minmax_bound="true"><FONT face=Calibri minmax_bound="true">UITest.exe uygulamasını sonlandırmadığınız sürece bu seviyedeki işlemci kullanımı devam edecektir. <o:p minmax_bound="true"></o:p></FONT></FONT></P>
<P style="MARGIN: 0cm 0cm 10pt" class=MsoNormal minmax_bound="true"><FONT size=3 minmax_bound="true"><FONT face=Calibri minmax_bound="true">Bu tip durumlarda uyguladığımız bir yöntem var : Birden fazla defa hang mode dump almak. Bu yöntemin arkasında yatan düşünce alınan dump dosyalarını karşılaştırıp hangi fonksiyonun bu soruna neden olduğunu görebilmek. Bu yöntemin başarısı, işlemci kullanımının yüksek olduğu süre ve alınan dump sayısı ile bağlantılıdır. <o:p minmax_bound="true"></o:p></FONT></FONT></P>
<P style="MARGIN: 0cm 0cm 10pt" class=MsoNormal minmax_bound="true"><FONT size=3 minmax_bound="true"><FONT face=Calibri minmax_bound="true">Eğer işlemci kullanımı -UITest.exe örneğinde olduğu gibi- uygulama kapanana kadar yüksek devam ediyorsa bu durumda peşpeşe alınacak 4 dump yararlı olacaktır. Çünkü; genellikle sebep sonsuz döngüdür. Dumplarda callstack’lerin ortak fonksiyonlarını inceleyeceğiz. <o:p minmax_bound="true"></o:p></FONT></FONT></P>
<P style="MARGIN: 0cm 0cm 10pt" class=MsoNormal minmax_bound="true"><FONT size=3 minmax_bound="true"><FONT face=Calibri minmax_bound="true">Öte yandan, yanıt vermeme durumu belli bir süre devam ediyorsa ve sonra uygulama normal çalışmasına devam ediyorsa bu yönetimin başarı şansı düşecektir. Çünkü; bu tip yüksek işlemci sıçramalarının sebebi çoğunlukla artan istek sayısıdır. Bu durumda alacağımız dumplar arasında ortak callstack’ler bulamayabiliriz bile.<o:p minmax_bound="true"></o:p></FONT></FONT></P>
<P style="MARGIN: 0cm 0cm 10pt" class=MsoNormal minmax_bound="true"><o:p minmax_bound="true"><FONT size=3 face=Calibri minmax_bound="true">&nbsp;</FONT></o:p></P>
<P style="MARGIN: 0cm 0cm 10pt" class=MsoNormal minmax_bound="true"><FONT size=3 minmax_bound="true"><FONT face=Calibri minmax_bound="true">Şimdi adımları bir kez birlikte gözden geçirelim :</FONT></FONT></P>
<P style="MARGIN: 0cm 0cm 10pt" class=MsoNormal minmax_bound="true"><FONT size=3 minmax_bound="true"><FONT face=Calibri minmax_bound="true">#1 Uygulamanın tepkisiz ve çok işlemci zamanı kullandığından emin olalım.<o:p minmax_bound="true"></o:p></FONT></FONT></P>
<P style="MARGIN: 0cm 0cm 10pt" class=MsoNormal minmax_bound="true"><FONT size=3 minmax_bound="true"><FONT face=Calibri minmax_bound="true">#2 Elevated ( Run as Administrator ) bir komut satırı açalım.<o:p minmax_bound="true"></o:p></FONT></FONT></P>
<P style="MARGIN: 0cm 0cm 10pt" class=MsoNormal minmax_bound="true"><FONT size=3 minmax_bound="true"><FONT face=Calibri minmax_bound="true">#3 “C:\Program Files\Debugging Tools for Windows (x86)” dizinine geçelim.<o:p minmax_bound="true"></o:p></FONT></FONT></P>
<P style="MARGIN: 0cm 0cm 10pt" class=MsoNormal minmax_bound="true"><FONT size=3 minmax_bound="true"><FONT face=Calibri minmax_bound="true">#4 Aşağıdaki komutu yazıp çalıştıralım :<o:p minmax_bound="true"></o:p></FONT></FONT></P>
<P style="MARGIN: 0cm 0cm 10pt" class=MsoNormal minmax_bound="true"><FONT size=3 minmax_bound="true"><FONT face=Calibri minmax_bound="true">adplus -hang -pn UITest.exe -o c:\dumps -quiet<o:p minmax_bound="true"></o:p></FONT></FONT></P>
<P style="MARGIN: 0cm 0cm 10pt" class=MsoNormal minmax_bound="true"><FONT size=3 minmax_bound="true"><FONT face=Calibri minmax_bound="true">Komut çalışınca aşağıdaki gibi bir yazı görebilirsiniz. “quiet” modda çalıştırdığımız için sembol dizini uyarısı komut satırına yazılıyor. Sonra da debugger’ın uygulamaya başarıyla bağlandığı belirtiliyor.<o:p minmax_bound="true"></o:p></FONT></FONT></P>
<P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt" class=MsoNormal minmax_bound="true"><SPAN style="FONT-SIZE: 10pt; mso-bidi-font-size: 11.0pt" minmax_bound="true"><FONT face=Calibri minmax_bound="true"></FONT></SPAN>&nbsp;</P>
<TABLE border=1 cellSpacing=0 cellPadding=2 width=478>
<TBODY>
<TR>
<TD vAlign=top width=476>
<P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt" class=MsoNormal minmax_bound="true"><SPAN style="FONT-SIZE: 10pt; mso-bidi-font-size: 11.0pt" minmax_bound="true"><FONT face=Calibri minmax_bound="true">C:\Program Files\Debugging Tools for Windows (x86)&gt;Adplus -hang -pn UITest.exe -<o:p minmax_bound="true"></o:p></FONT></SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt" class=MsoNormal minmax_bound="true"><SPAN style="FONT-SIZE: 10pt; mso-bidi-font-size: 11.0pt" minmax_bound="true"><FONT face=Calibri minmax_bound="true">o c:\dumps -quiet<o:p minmax_bound="true"></o:p></FONT></SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt" class=MsoNormal minmax_bound="true"><SPAN style="FONT-SIZE: 10pt; mso-bidi-font-size: 11.0pt" minmax_bound="true"><FONT face=Calibri minmax_bound="true">WARNING!<SPAN style="mso-spacerun: yes" minmax_bound="true">&nbsp; </SPAN>An '_NT_SYMBOL_PATH' environment variable is not set.<o:p minmax_bound="true"></o:p></FONT></SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt" class=MsoNormal minmax_bound="true"><SPAN style="FONT-SIZE: 10pt; mso-bidi-font-size: 11.0pt" minmax_bound="true"><FONT face=Calibri minmax_bound="true">Please check the application event log or the ADPlus-report.txt<o:p minmax_bound="true"></o:p></FONT></SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt" class=MsoNormal minmax_bound="true"><SPAN style="FONT-SIZE: 10pt; mso-bidi-font-size: 11.0pt" minmax_bound="true"><FONT face=Calibri minmax_bound="true">for more details.<o:p minmax_bound="true"></o:p></FONT></SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt" class=MsoNormal minmax_bound="true"><SPAN style="FONT-SIZE: 10pt; mso-bidi-font-size: 11.0pt" minmax_bound="true"><o:p minmax_bound="true"><FONT face=Calibri minmax_bound="true">&nbsp;</FONT></o:p></SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt" class=MsoNormal minmax_bound="true"><SPAN style="FONT-SIZE: 10pt; mso-bidi-font-size: 11.0pt" minmax_bound="true"><FONT face=Calibri minmax_bound="true">Attaching the debugger to: UITEST.EXE<o:p minmax_bound="true"></o:p></FONT></SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt" class=MsoNormal minmax_bound="true"><SPAN style="FONT-SIZE: 10pt; mso-bidi-font-size: 11.0pt" minmax_bound="true"><FONT face=Calibri minmax_bound="true"><SPAN style="mso-spacerun: yes" minmax_bound="true">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>(Process ID: 7520)<o:p minmax_bound="true"></o:p></FONT></SPAN></P></TD></TR></TBODY></TABLE>
<P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt" class=MsoNormal minmax_bound="true"><SPAN style="FONT-SIZE: 10pt; mso-bidi-font-size: 11.0pt" minmax_bound="true"><FONT face=Calibri minmax_bound="true"></FONT></SPAN>&nbsp;</P>
<P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt" class=MsoNormal minmax_bound="true"><SPAN style="FONT-SIZE: 10pt; mso-bidi-font-size: 11.0pt" minmax_bound="true"><FONT face=Calibri minmax_bound="true"><o:p minmax_bound="true"></o:p></FONT></SPAN></P><o:p minmax_bound="true"><FONT size=3 face=Calibri minmax_bound="true">&nbsp;</FONT></o:p> 
<P style="MARGIN: 0cm 0cm 10pt" class=MsoNormal minmax_bound="true"><FONT size=3 minmax_bound="true"><FONT face=Calibri minmax_bound="true">#5 Komutu çalıştırdığınız anda taskbar’da kısa süreliğine “cdb.exe“ adlı bir programın açılıp kapandığını göreceksiniz. Cdb.exe kapandıktan sonra 4. Adımı tekrarlayın. Bu yüntemle 4 kez dump oluşturun.<o:p minmax_bound="true"></o:p></FONT></FONT></P>
<P style="MARGIN: 0cm 0cm 10pt" class=MsoNormal minmax_bound="true"><FONT size=3 minmax_bound="true"><FONT face=Calibri minmax_bound="true">#6 İşlem bittikten sonra c:\dump dizinine gidin. 4 yeni dizin oluşturulduğunu göreceksiniz. Hatırlarsanız her dizinin içeriğini geçen yazıda gözden geçirmiştik.<o:p minmax_bound="true"></o:p></FONT></FONT></P>
<P style="MARGIN: 0cm 0cm 10pt" class=MsoNormal minmax_bound="true"><o:p minmax_bound="true"><FONT size=3 face=Calibri minmax_bound="true">&nbsp;</FONT></o:p></P>
<P style="MARGIN: 0cm 0cm 10pt" class=MsoNormal minmax_bound="true"><FONT size=3 minmax_bound="true"><FONT face=Calibri minmax_bound="true">Gelecek yazımda crash mod dump almaktan bahsedeceğim.<o:p minmax_bound="true"></o:p></FONT></FONT></P>
<P style="MARGIN: 0cm 0cm 10pt" class=MsoNormal minmax_bound="true"><o:p minmax_bound="true"><FONT size=3 face=Calibri minmax_bound="true">&nbsp;</FONT></o:p></P>
<P style="MARGIN: 0cm 0cm 10pt" class=MsoNormal minmax_bound="true"><FONT size=3 minmax_bound="true"><FONT face=Calibri minmax_bound="true">Hoşçakalın<o:p minmax_bound="true"></o:p></FONT></FONT></P>
<P style="MARGIN: 0cm 0cm 10pt" class=MsoNormal minmax_bound="true"><FONT size=3 minmax_bound="true"><FONT face=Calibri minmax_bound="true">-faik</FONT></FONT></FONT></P>]]></content:encoded>
    </item>
    <item>
      <title>Dump Alma ( Hang Mode - I )</title>
      <link>https://docs.microsoft.com/archive/blogs/faik/dump-alma-hang-mode-i</link>
      <pubDate>Tue, 11 May 2010 04:47:00 GMT</pubDate>
      <dc:creator><![CDATA[faikb]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/faik/2010/05/11/dump-alma-hang-mode-i/</guid>
      <description><![CDATA[Merhaba,Bu yazımda sorun gösteren bir uygulamanın dump’ının nasıl alınabileceğini göstereceğim. Bu...]]></description>
      <content:encoded><![CDATA[<p minmax_bound="true"><font size="2"><font face="Tahoma"><font minmax_bound="true"><font minmax_bound="true"><font minmax_bound="true">Merhaba,<br minmax_bound="true">Bu yazımda sorun gösteren bir uygulamanın dump’ının nasıl alınabileceğini göstereceğim. Bu yazının ekinde sıkıştırılmış bir dosya bulacaksınız : UITest.zip. </font></font></font></font></font></p> <p><font size="2"><font face="Tahoma"><font minmax_bound="true"><font minmax_bound="true"><font minmax_bound="true">İçinde UITest.exe ve senaryolar.dll adlı iki dosya bulunuyor. </font></font></font><font minmax_bound="true"><font minmax_bound="true"><font minmax_bound="true">UITest.exe uygulamasını kullanarak sorunlu durumları yaratacağız ve geçen yazıda kurduğumuz </font></font></font></font></font></p> <p minmax_bound="true"><font size="2"><font face="Tahoma"><font minmax_bound="true"><font minmax_bound="true"><font minmax_bound="true">“Debugging Tools for Windows” araçlarıyla da dump dosyalarını üreteceğiz.</font></font></font></font></font></p><font minmax_bound="true"> <p minmax_bound="true"><font size="2"><font face="Tahoma"><font minmax_bound="true"><font minmax_bound="true">Örnek uygulamayı çalıştırmak için :</font></font></font></font></p> <p minmax_bound="true"><font minmax_bound="true"><font size="2" face="Tahoma" minmax_bound="true">Ekteki dosyayı istediğiniz dizine kopyalayın ve açın. Bu dizinin c:\DebugTest olduğunu farzediyorum.</font></font></p> <p minmax_bound="true"><font minmax_bound="true"><font minmax_bound="true"><font size="2" face="Tahoma">Eğer sisteminizde VC++ 2010 çalışma zamanı kütüphaneleri yoksa aşağıdaki hatayı alacaksınız :<br minmax_bound="true"></p></font></font></font></font> <p minmax_bound="true"><font face="tahoma,arial,helvetica,sans-serif" minmax_bound="true"><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com//faikb/10010876.aspx" original-url="http://blogs.msdn.com/photos/faikb/picture10010876.aspx" target="_blank" minmax_bound="true"><IMG border=0 src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Components.PostAttachments/00/10/01/08/76/CRuntimeError.jpg" original-url="http://blogs.msdn.com/photos/faikb/images/10010876/original.aspx" minmax_bound="true"></a></font></p> <p minmax_bound="true"><font face="tahoma,arial,helvetica,sans-serif" minmax_bound="true">&nbsp;</p></font> <p minmax_bound="true" mce_keep="true"><font size="2" face="Tahoma" minmax_bound="true">Hatayı gidermek için VC++ 2010 x86 Çalışma Zamanı Kütüphanelerini ( Runtime Libraries ) kurun. Kurulum dosyalarına aşağıdaki adresten ulaşabilirsiniz :<br minmax_bound="true"></font></p> <p minmax_bound="true"><font size="2" face="Tahoma" minmax_bound="true"><strong minmax_bound="true">Microsoft Visual C++ 2010 Redistributable Package (x86)<br minmax_bound="true"></strong></font><a href="http://www.microsoft.com/downloads/details.aspx?displaylang=en&amp;FamilyID=a7b7a05e-6de6-4d3a-a423-37bf0912db84" minmax_bound="true" mce_href="http://www.microsoft.com/downloads/details.aspx?displaylang=en&amp;FamilyID=a7b7a05e-6de6-4d3a-a423-37bf0912db84"><font size="2" face="Tahoma" minmax_bound="true">http://www.microsoft.com/downloads/details.aspx?displaylang=en&amp;FamilyID=a7b7a05e-6de6-4d3a-a423-37bf0912db84</font></a></p> <p minmax_bound="true" mce_keep="true"><font minmax_bound="true"><font minmax_bound="true"><font size="2" face="Tahoma" minmax_bound="true">İşletim sisteminizin kaç bit olduğu önemli değil. Uygulama 32-bit olduğu için x86 paketini kurmanız yeterli olacaktır. </font></font></font></p> <p minmax_bound="true" mce_keep="true"><font minmax_bound="true"><font minmax_bound="true"><font face="Tahoma"><font size="2" minmax_bound="true">Kurulum tamamlandıktan sonra UITest.exe uygulamasını çalıştırdığınızda aşağıdaki formu göreceksiniz :</font> </font></font></font></p> <p minmax_bound="true"><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com//faikb/10010885.aspx" original-url="http://blogs.msdn.com/photos/faikb/picture10010885.aspx" target="_blank" minmax_bound="true"><IMG border=0 src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Components.PostAttachments/00/10/01/08/85/UITest.jpg" original-url="http://blogs.msdn.com/photos/faikb/images/10010885/original.aspx" minmax_bound="true"></a>&nbsp;</p> <p minmax_bound="true" mce_keep="true">&nbsp;</p> <p minmax_bound="true"><font minmax_bound="true"><font minmax_bound="true"><font minmax_bound="true"><font minmax_bound="true"><font size="2"><font face="Tahoma">Hatırlarsanız, ilk yazımda sorunları 2 ana gruba ayırmıştım ve bu durumlarda ne çeşit dump dosyaları üretilmesi gerektiğini anlatmıştım.<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /><o:p minmax_bound="true"></o:p></font></font></font></font></font></font></p> <p style="margin: 0cm 0cm 10pt" class="MsoNormal" minmax_bound="true"><font minmax_bound="true"><font minmax_bound="true"><font minmax_bound="true"><font minmax_bound="true"><font size="2"><font face="Tahoma">#1 Yanıt Vermeyen uygulamalar : Hang dump<o:p minmax_bound="true"></o:p></font></font></font></font></font></font></p> <p style="margin: 0cm 0cm 10pt" class="MsoNormal" minmax_bound="true"><font minmax_bound="true"><font minmax_bound="true"><font minmax_bound="true"><font minmax_bound="true"><font size="2"><font face="Tahoma">#2 Hata sonucunda kapanan uygulamalar : Crash Dump<o:p minmax_bound="true"></o:p></font></font></font></font></font></font></p> <p style="margin: 0cm 0cm 10pt" class="MsoNormal" minmax_bound="true"><o:p minmax_bound="true"><font size="2" face="Tahoma" minmax_bound="true">&nbsp;</font></o:p></p> <p minmax_bound="true"><span style="line-height: 115%; font-family: 'Calibri','sans-serif'; font-size: 11pt; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: calibri; mso-fareast-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: minor-bidi; mso-fareast-language: en-us; mso-ansi-language: tr; mso-bidi-language: ar-sa" minmax_bound="true"><font size="2" face="Tahoma" minmax_bound="true">UITest.exe uygulamasını kısaca anlattıktan sonra konuştuklarımızı hayata geçirelim :</font></span></p> <p minmax_bound="true"><span style="line-height: 115%; font-family: 'Calibri','sans-serif'; font-size: 11pt; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: calibri; mso-fareast-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: minor-bidi; mso-fareast-language: en-us; mso-ansi-language: tr; mso-bidi-language: ar-sa" minmax_bound="true"></span><font minmax_bound="true"><font minmax_bound="true"><font minmax_bound="true"><span style="line-height: 115%; font-family: 'Calibri','sans-serif'; font-size: 11pt; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: calibri; mso-fareast-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: minor-bidi; mso-fareast-language: en-us; mso-ansi-language: tr; mso-bidi-language: ar-sa" minmax_bound="true"><font size="2" face="Tahoma" minmax_bound="true"># “Deadlock”, “Orphant CriticalSection”, “Yüksek İşlemci” uygulamayı yanıt vermez hale getirecek işlemleri başlatan butonlar. </font></span></font></font></font></p> <p minmax_bound="true"><font minmax_bound="true"><font minmax_bound="true"><font minmax_bound="true"><span style="line-height: 115%; font-family: 'Calibri','sans-serif'; font-size: 11pt; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: calibri; mso-fareast-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: minor-bidi; mso-fareast-language: en-us; mso-ansi-language: tr; mso-bidi-language: ar-sa" minmax_bound="true"></span></font></font></font><font minmax_bound="true"><font minmax_bound="true"><font minmax_bound="true"><span style="line-height: 115%; font-family: 'Calibri','sans-serif'; font-size: 11pt; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: calibri; mso-fareast-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: minor-bidi; mso-fareast-language: en-us; mso-ansi-language: tr; mso-bidi-language: ar-sa" minmax_bound="true"><font size="2" face="Tahoma" minmax_bound="true"># “AccessViolation” ve “Stackoverflow” faktöriyel 11 ve yukarısı değerler için uygulamanın kapanmasına yol açar.</font></span></font></font></font></p> <p minmax_bound="true"><font minmax_bound="true"><font minmax_bound="true"><font minmax_bound="true"><span style="line-height: 115%; font-family: 'Calibri','sans-serif'; font-size: 11pt; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: calibri; mso-fareast-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: minor-bidi; mso-fareast-language: en-us; mso-ansi-language: tr; mso-bidi-language: ar-sa" minmax_bound="true"></span></font></font></font><font minmax_bound="true"><font minmax_bound="true"><font minmax_bound="true"><span style="line-height: 115%; font-family: 'Calibri','sans-serif'; font-size: 11pt; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: calibri; mso-fareast-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: minor-bidi; mso-fareast-language: en-us; mso-ansi-language: tr; mso-bidi-language: ar-sa" minmax_bound="true"><font size="2" face="Tahoma" minmax_bound="true"># “AccessViolation Handled”, uygulamanın “Access Violation” exception’ını üretmesine yol açar ancak uygulama kapanmaz.</font></span></font></font></font></p> <p minmax_bound="true"><span style="line-height: 115%; font-family: 'Calibri','sans-serif'; font-size: 11pt; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: calibri; mso-fareast-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: minor-bidi; mso-fareast-language: en-us; mso-ansi-language: tr; mso-bidi-language: ar-sa" minmax_bound="true"></span><font size="2" face="Tahoma" minmax_bound="true">Not : Bu deyimlerin doğru Türkçe karşılıklarını bulamadım. Uygun karşılıklar biliyorsanız bana bildirirseniz sevinirim. </font></p> <p minmax_bound="true"><font minmax_bound="true"></font><font size="2" face="Tahoma">&nbsp;</font></p> <p minmax_bound="true"><span style="line-height: 115%; font-family: 'Calibri','sans-serif'; font-size: 11pt; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: calibri; mso-fareast-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: minor-bidi; mso-fareast-language: en-us; mso-ansi-language: tr; mso-bidi-language: ar-sa" minmax_bound="true">&nbsp;<font size="3" face="tahoma,arial,helvetica,sans-serif" minmax_bound="true"><strong minmax_bound="true">ADPlus.vbs</strong></font></span></p> <p minmax_bound="true"><span style="line-height: 115%; font-family: 'Calibri','sans-serif'; font-size: 11pt; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: calibri; mso-fareast-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: minor-bidi; mso-fareast-language: en-us; mso-ansi-language: tr; mso-bidi-language: ar-sa" minmax_bound="true"><font size="2" face="Tahoma" minmax_bound="true">“C:\Program Files\Debugging Tools for Windows (x86)” dizininde adplus.vbs adlı bir VBScript dosyası bulunmaktadır. Bu script, cdb.exe </font></span></p> <p minmax_bound="true"><span style="line-height: 115%; font-family: 'Calibri','sans-serif'; font-size: 11pt; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: calibri; mso-fareast-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: minor-bidi; mso-fareast-language: en-us; mso-ansi-language: tr; mso-bidi-language: ar-sa" minmax_bound="true"><font size="2" face="Tahoma" minmax_bound="true">adlı debugger uygulamasını verdiğimiz parametrelere göre çalıştırır. </font></span><font size="2"><font face="Tahoma"><span style="line-height: 115%; font-family: 'Calibri','sans-serif'; font-size: 11pt; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: calibri; mso-fareast-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: minor-bidi; mso-fareast-language: en-us; mso-ansi-language: tr; mso-bidi-language: ar-sa" minmax_bound="true"><font minmax_bound="true">Dump almak için en sık kullanacağınız araçlardan olacaktır.&nbsp; <br minmax_bound="true"></font></span><span style="line-height: 115%; font-family: 'Calibri','sans-serif'; font-size: 11pt; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: calibri; mso-fareast-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: minor-bidi; mso-fareast-language: en-us; mso-ansi-language: tr; mso-bidi-language: ar-sa" minmax_bound="true"><font minmax_bound="true">&nbsp;</font></span></font></font></p> <p minmax_bound="true"><span style="line-height: 115%; font-family: 'Calibri','sans-serif'; font-size: 11pt; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: calibri; mso-fareast-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: minor-bidi; mso-fareast-language: en-us; mso-ansi-language: tr; mso-bidi-language: ar-sa" minmax_bound="true"><font size="2" face="Tahoma" minmax_bound="true">Sık kullanacağınız parametreler :</font></span><span style="line-height: 115%; font-family: 'Calibri','sans-serif'; font-size: 11pt; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: calibri; mso-fareast-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: minor-bidi; mso-fareast-language: en-us; mso-ansi-language: tr; mso-bidi-language: ar-sa" minmax_bound="true"><font minmax_bound="true"><br minmax_bound="true"></p></font></span> <table border="1" cellspacing="0" cellpadding="2" width="822" minmax_bound="true"> <tbody minmax_bound="true"> <tr minmax_bound="true"> <td valign="top" width="76" minmax_bound="true"><font size="2" face="Tahoma" minmax_bound="true"><strong minmax_bound="true">Parametre</strong></font></td> <td valign="top" width="744" minmax_bound="true"><font size="2" face="Tahoma" minmax_bound="true"><strong minmax_bound="true">Açıklama</strong></font><br minmax_bound="true"></td></tr> <tr minmax_bound="true"> <td valign="top" width="76" minmax_bound="true"><font size="2" face="Tahoma" minmax_bound="true">-p</font></td> <td valign="top" width="744" minmax_bound="true"><font size="2" face="Tahoma" minmax_bound="true">Process ID’sini verebileceğimiz parametre. PID’yi görev yöneticisinden öğrenebilirsiniz. Ya da bulunduğunuz dizindeki tlist.exe isimli uygulama da Process ID’lerini&nbsp; listeler.</font></td></tr> <tr minmax_bound="true"> <td valign="top" width="76" minmax_bound="true"><font size="2" face="Tahoma" minmax_bound="true">-pn</font></td> <td valign="top" width="744" minmax_bound="true"><font size="2" face="Tahoma" minmax_bound="true">Process Name parametresi. “-p” yerine “-pn”yi kullanabiliriz. Bu durumda uygulamanın tam ismini vermemiz gerekir. Örneğin, -pn UITest.exe “.exe” uzantısını da kullanmanız gerekmektedir.</font></td></tr> <tr minmax_bound="true"> <td valign="top" width="76" minmax_bound="true"><font size="2" face="Tahoma" minmax_bound="true">-hang</font></td> <td valign="top" width="744" minmax_bound="true"><font size="2" face="Tahoma" minmax_bound="true">Uygulamaya bağlanıp dump dosyasının üretilmesini sağlayıp sonra da kapanan mod. </font></td></tr> <tr minmax_bound="true"> <td valign="top" width="76" minmax_bound="true"><font size="2" face="Tahoma" minmax_bound="true">-crash</font></td> <td valign="top" width="744" minmax_bound="true"><font size="2" face="Tahoma" minmax_bound="true">Uygulamaya bağlanıp exception oluşmasını bekler. Exception üretildiğinde ise yeni bir dosya oluşturup dump bilgilerini kaydeder. Uygulama kapanana kadar bu döngü devam eder.</font></td></tr> <tr minmax_bound="true"> <td valign="top" width="76" minmax_bound="true"><font size="2" face="Tahoma" minmax_bound="true">-o</font></td> <td valign="top" width="744" minmax_bound="true"><font size="2" face="Tahoma" minmax_bound="true">Dump dosyalarının nereye yazılacağını belirleyebilirsiniz.</font></td></tr> <tr minmax_bound="true"> <td valign="top" width="76" minmax_bound="true"><font size="2" face="Tahoma" minmax_bound="true">-quiet</font></td> <td valign="top" width="744" minmax_bound="true"><font size="2" face="Tahoma" minmax_bound="true">adplus scriptini çalıştırdığınızda size 4 uyarı mesajı verebilir. Bu uyarı mesajlarını almak istemiyorsanız "-quiet" parametresini ekleyin.</font></td></tr></tbody></table><span style="line-height: 115%; font-family: 'Calibri','sans-serif'; font-size: 11pt; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: calibri; mso-fareast-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: minor-bidi; mso-fareast-language: en-us; mso-ansi-language: tr; mso-bidi-language: ar-sa" minmax_bound="true"><font minmax_bound="true"></font></span> <p minmax_bound="true"><font size="2" face="Tahoma">Bir defada hang ve crash parametrelerinden sadece birini kullanabilirsiniz. </font></p> <p minmax_bound="true"><font size="2" face="Tahoma">"-p" ve "-pn" parametrelerini birlikte ve istediğiniz kadar kullanabilirsiniz. Dolayısıyla bir komutla birden fazla uygulamanın dump'ını aynı anda alabilirsiniz. </font></p> <p minmax_bound="true"><span style="line-height: 115%; font-family: 'Calibri','sans-serif'; font-size: 11pt; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: calibri; mso-fareast-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: minor-bidi; mso-fareast-language: en-us; mso-ansi-language: tr; mso-bidi-language: ar-sa" minmax_bound="true"><font minmax_bound="true"><font size="2" face="Tahoma">Adplus scriptini çalıştırırken “-quiet” parametresini kullanmadıysanız 4 uyarı/bilgi mesajı alabilirsiniz.<br minmax_bound="true"></font></p></font></span> <p minmax_bound="true"><span style="line-height: 115%; font-family: 'Calibri','sans-serif'; font-size: 11pt; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: calibri; mso-fareast-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: minor-bidi; mso-fareast-language: en-us; mso-ansi-language: tr; mso-bidi-language: ar-sa" minmax_bound="true"><font size="2" face="Tahoma" minmax_bound="true">Cscript’i default script çalıştırıcısı yapmak isteyip istemediğinizin sorulması :</font></span></p> <p minmax_bound="true" mce_keep="true"><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com//faikb/10010882.aspx" original-url="http://blogs.msdn.com/photos/faikb/picture10010882.aspx" target="_blank" minmax_bound="true"><IMG border=0 src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Components.PostAttachments/00/10/01/08/82/CScriptDefault.jpg" original-url="http://blogs.msdn.com/photos/faikb/images/10010882/original.aspx" minmax_bound="true"></a></p> <p minmax_bound="true"><span style="line-height: 115%; font-family: 'Calibri','sans-serif'; font-size: 11pt; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: calibri; mso-fareast-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: minor-bidi; mso-fareast-language: en-us; mso-ansi-language: tr; mso-bidi-language: ar-sa" minmax_bound="true"><font size="2" face="tahoma,arial,helvetica,sans-serif" minmax_bound="true">CScript’in varsayılan script çalıştırıcısı olup olmaması tamamen size kalmış bir tercih. Ben herhangi bir değişikliğe neden olmamak için bu adımda “Hayır/No” yu seçiyorum. <span style="line-height: 115%; font-family: 'Calibri','sans-serif'; font-size: 11pt; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: calibri; mso-fareast-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: minor-bidi; mso-fareast-language: en-us; mso-ansi-language: tr; mso-bidi-language: ar-sa" minmax_bound="true"><font size="2" face="tahoma,arial,helvetica,sans-serif" minmax_bound="true">No’yu seçerseniz gelebilecek uyarı :</font></span></font></span></p> <p minmax_bound="true"><span style="line-height: 115%; font-family: 'Calibri','sans-serif'; font-size: 11pt; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: calibri; mso-fareast-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: minor-bidi; mso-fareast-language: en-us; mso-ansi-language: tr; mso-bidi-language: ar-sa" minmax_bound="true"><font size="2" face="tahoma,arial,helvetica,sans-serif" minmax_bound="true"><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com//faikb/10010883.aspx" original-url="http://blogs.msdn.com/photos/faikb/picture10010883.aspx" target="_blank" minmax_bound="true"><IMG border=0 src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Components.PostAttachments/00/10/01/08/83/CScriptNotDefault.jpg" original-url="http://blogs.msdn.com/photos/faikb/images/10010883/original.aspx" minmax_bound="true"></a></font></span></p> <p minmax_bound="true"><span style="line-height: 115%; font-family: 'Calibri','sans-serif'; font-size: 11pt; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: calibri; mso-fareast-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: minor-bidi; mso-fareast-language: en-us; mso-ansi-language: tr; mso-bidi-language: ar-sa" minmax_bound="true"><font size="2" face="Tahoma" minmax_bound="true">Sembol ( daha sonraki yazılarda değineceğiz ) dizininin tanımsız olduğunu belirten uyarı :</font></span></p> <p minmax_bound="true"><span style="line-height: 115%; font-family: 'Calibri','sans-serif'; font-size: 11pt; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: calibri; mso-fareast-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: minor-bidi; mso-fareast-language: en-us; mso-ansi-language: tr; mso-bidi-language: ar-sa" minmax_bound="true"></span><span style="line-height: 115%; font-family: 'Calibri','sans-serif'; font-size: 11pt; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: calibri; mso-fareast-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: minor-bidi; mso-fareast-language: en-us; mso-ansi-language: tr; mso-bidi-language: ar-sa" minmax_bound="true"><font size="2" face="tahoma,arial,helvetica,sans-serif" minmax_bound="true"><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com//faikb/10010884.aspx" original-url="http://blogs.msdn.com/photos/faikb/picture10010884.aspx" target="_blank" minmax_bound="true"><IMG border=0 src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Components.PostAttachments/00/10/01/08/84/SymbolPath.jpg" original-url="http://blogs.msdn.com/photos/faikb/images/10010884/original.aspx" minmax_bound="true"></a></p> <p minmax_bound="true">ve en sonunda adplus’ın başarıyla çalıştığını bildiren mesaj :<br minmax_bound="true"></p></font></span> <p minmax_bound="true" mce_keep="true"><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com//faikb/10010881.aspx" original-url="http://blogs.msdn.com/photos/faikb/picture10010881.aspx" target="_blank" minmax_bound="true"><IMG border=0 src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Components.PostAttachments/00/10/01/08/81/AdplusSuccess.jpg" original-url="http://blogs.msdn.com/photos/faikb/images/10010881/original.aspx" minmax_bound="true"></a>&nbsp;</p> <p minmax_bound="true" mce_keep="true">&nbsp;</p> <p minmax_bound="true"><font size="3" face="Tahoma" minmax_bound="true"><strong minmax_bound="true">Hang modda dump alma</strong></font></p> <p minmax_bound="true"><font size="2" face="Tahoma" minmax_bound="true">1. Bir komut satırı açın ve “C:\Program Files\Debugging Tools for Windows (x86)” dizinine geçin.</font></p> <p minmax_bound="true"><font size="2" face="Tahoma" minmax_bound="true">ÖNEMLİ : Eğer Windows Vista ve sonrası bir işletim sistemi kullanıyorsanız elevated privilege olan bir komut satırı kullanın. Diğer bir bir değişle, komut satırını Administrator olarak çalıştırın.</font> </p> <p minmax_bound="true"><l minmax_bound="true" I><font size="2" face="Tahoma" minmax_bound="true">2. Eğer henüz çalıştırmadıysanız UITest.exe uygulamasını başlatın.</font> <l minmax_bound="true" I><font size="2" face="Tahoma" minmax_bound="true"></font></p> <p minmax_bound="true"><font size="2" face="Tahoma" minmax_bound="true">3. “Deadlock” isimli butona basın. </font></p> <p minmax_bound="true"><l minmax_bound="true" I><font size="2" face="Tahoma" minmax_bound="true">4. 2-3 saniye kadar bekleyin sonra uygulamayı sağa sola çekmeğe çalışın. Başlığa “(Not Responding)” ibaresinin eklendiğini göreceksiniz.</font> </p> <p minmax_bound="true" mce_keep="true">&nbsp;<a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com//faikb/10010886.aspx" original-url="http://blogs.msdn.com/photos/faikb/picture10010886.aspx" target="_blank" minmax_bound="true"><IMG border=0 src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Components.PostAttachments/00/10/01/08/86/UITestNotResponding.jpg" original-url="http://blogs.msdn.com/photos/faikb/images/10010886/original.aspx" minmax_bound="true"></a></p> <p minmax_bound="true" mce_keep="true">&nbsp;</p> <p minmax_bound="true"><l minmax_bound="true" I><font size="2" face="Tahoma" minmax_bound="true">5. c:\ sürücüsünde ( veya size uygun gelen başka bir sürücüde ) yeni bir dizin açın. C:\dumps adlı bir dizin açtığınızı farzediyorum.</font> </p> <p minmax_bound="true" mce_keep="true"><font size="2" face="Tahoma" minmax_bound="true">6. Komut satırına geri dönün ve aşağıdaki komudu çalıştırın : </font></p> <p minmax_bound="true"><font size="2" face="Tahoma" minmax_bound="true">Adplus -hang -pn UITest.exe -o c:\dumps –quiet </font></p> <p minmax_bound="true"><font size="2" face="Tahoma" minmax_bound="true"></font>&nbsp;</p> <p minmax_bound="true"><font size="2" face="Tahoma" minmax_bound="true">İşlem 1-2 saniye içinde tamamlanacaktır.</font><font minmax_bound="true"><br minmax_bound="true"></p></font> <p minmax_bound="true"><l minmax_bound="true" I><font size="2" face="Tahoma" minmax_bound="true">7. Dump alma tamamlandıktan sonra UITest.exe’nin kapanmadığını, hala açık olduğunu göreceksiniz. Bu daha önce belirttiğimiz “hang” çalışma biçimidir. İsterseniz Görev Yöneticisi’ndeki ( Task Manager ) process sekmesinden cdb.exe ve cscript.exe olup olmadığını da kontrol edebilirsiniz. Bu da hang mod davranışının gereği. Debugger dump dosyasını ürettikten sonra kapanır.</font> </p> <p minmax_bound="true" mce_keep="true">8. <l minmax_bound="true" I><font size="2" face="Tahoma" minmax_bound="true">Şimdi c:\dumps dizinine bakalım. ”c:\dumps”ın altına yeni bir dizin yaratıldığını göreceksiniz. Dizin adının şöyle bir formatı olacak : <em minmax_bound="true">Hang_Mode__Date_AY-GÜN-YIL__Time_Saat-Dakika-SaniyeSalise</em></font></p> <p minmax_bound="true"><font size="2" face="Tahoma" minmax_bound="true">Bu dizinin altında bir dizin daha göreceksiniz : <em minmax_bound="true">CDBScripts</em>. CDBScripts dizini içinde <em minmax_bound="true">PID-UygulamanınProcessIDsi__UITEST.EXE.cfg</em> adlı bir dosya göreceksiniz. Bu dosya adplus scriptinin çalışmasıyla ilgili bir takım bilgi ve parametreleri içerir. <em minmax_bound="true">Hang_Mode__Date_AY-GÜN-YIL__Time_Saat-Dakika-SaniyeSalise</em> isim formatındaki bir üst dizine geri dönelim. </font></p> <p minmax_bound="true"><font size="2" face="Tahoma" minmax_bound="true">Burada 4 tane dosya göreceksiniz. Dosya isimleri sizde tarih,saat ve ProcessID’leri farklı olacağı için aynı olmayacaktır ancak isimlerin formatı aynı kalacak. </font></p> <table border="1" cellspacing="0" cellpadding="2" width="822" minmax_bound="true"> <tbody minmax_bound="true"> <tr minmax_bound="true"> <td valign="top" width="422" minmax_bound="true"><strong minmax_bound="true"><font size="2" face="tahoma,arial,helvetica,sans-serif" minmax_bound="true">Dosya Adı</font></strong></td> <td valign="top" width="398" minmax_bound="true"><strong minmax_bound="true"><font size="2" face="tahoma,arial,helvetica,sans-serif" minmax_bound="true">İçeriği</font></strong></td></tr> <tr minmax_bound="true"> <td valign="top" width="422" minmax_bound="true"><font size="2" face="Tahoma" minmax_bound="true">ADPlus_report.txt</font></td> <td valign="top" width="398" minmax_bound="true"><font size="2" face="Tahoma" minmax_bound="true">Bu dosya adplus’ın ürettiği bir takım çalışma zamanı loglarını tutar.</font></td></tr> <tr minmax_bound="true"> <td valign="top" width="422" minmax_bound="true"><font size="2" face="Tahoma" minmax_bound="true">PID-1484__UITEST.EXE__Date_05-10-2010__Time_13-40-3737.log</font></td> <td valign="top" width="398" minmax_bound="true"><font size="2" face="Tahoma" minmax_bound="true">Bu dosyada cdb.exe (debugger’ın) tuttuğu log bilgilerini bulabilirsiniz.</font></td></tr> <tr minmax_bound="true"> <td valign="top" width="422" minmax_bound="true"><font size="2" face="Tahoma" minmax_bound="true">PID-1484__UITEST.EXE__full_1428_2010-05-10_13-40-38-678_05cc.dmp</font></td> <td valign="top" width="398" minmax_bound="true"><font size="2" face="Tahoma" minmax_bound="true">Uygulamaya ait dump dosyası.</font></td></tr> <tr minmax_bound="true"> <td valign="top" width="422" minmax_bound="true"><font size="2" face="Tahoma" minmax_bound="true">Process_List.txt</font></td> <td valign="top" width="398" minmax_bound="true"><font size="2" minmax_bound="true"><font face="Tahoma" minmax_bound="true">Dump’ın alındığı esnada çalışan diğer uygulamaların listesi. <br>Eğer uygulamamızın başka bir uygulamayı beklediğini düşünürsek <br>o zaman bu liste çok işe yarayacaktır. <l minmax_bound="true" I></font></font></td></tr></tbody></table><font size="2" face="Tahoma" minmax_bound="true"> <p minmax_bound="true" mce_keep="true">&nbsp;</p> <p minmax_bound="true">Artık uygulamanın “yanıt vermez” durumdan çıkamayacağını varsayıyoruz. O yüzden uygulamayı (ALT+F4, Görev Yöneticisinden, vs) sonlandırabiliriz.</font></p> <p align="left" minmax_bound="true"><font size="2" face="Tahoma" minmax_bound="true">Dikkat ettiyseniz UITest.exe uygulamasının işlemci kullanımını hiç denetlemedik. İsterseniz UITest.exe’yi tekrar çalıştırın. “Deadlock” ve “Orphant CriticalSection” butonlarına basın ve uygulamanın işlemci kullanımını task manager veya performance monitor’den takip edin. Bakalım ne sonuç bulacaksınız?</font></p> <p align="left" minmax_bound="true"><font size="2" face="Tahoma" minmax_bound="true">"Orphant CriticalSection” butonunu denerken yukarıdaki adımları tekrarlayarak UITest.exe uygulamasının dump’ını bir kez daha alın. </font></p> <p align="left" minmax_bound="true"><font size="2" face="Tahoma" minmax_bound="true"></font>&nbsp;</p> <p minmax_bound="true"><font size="2" face="Tahoma" minmax_bound="true">Gelecek yazımda işlemci zamanı tüketen ve “yanıt vermez” durumdaki uygulamanın dump’ını almaktan bahsedeceğim.</font></p> <p minmax_bound="true"><font size="2" face="Tahoma" minmax_bound="true">Hoşçakalın<br minmax_bound="true">-faik</font></p> <p minmax_bound="true"><font size="2" minmax_bound="true"><br minmax_bound="true"><font face="Tahoma" minmax_bound="true"></font></font></p>
<p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Components.PostAttachments/00/10/01/08/78/UITest.zip" original-url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-components-postattachments/00-10-01-08-78/UITest.zip">UITest.zip</a></p>]]></content:encoded>
    </item>
    <item>
      <title>Debugger'ı kurmak</title>
      <link>https://docs.microsoft.com/archive/blogs/faik/debugger-kurmak</link>
      <pubDate>Fri, 07 May 2010 04:54:00 GMT</pubDate>
      <dc:creator><![CDATA[faikb]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/faik/2010/05/07/debugger-kurmak/</guid>
      <description><![CDATA[Merhaba, 
Geçen yazımda uygulamaların gösterdiği beklenmedik davranışlar, debugger, dump dosyaları,...]]></description>
      <content:encoded><![CDATA[<P style="MARGIN: 0cm 0cm 10pt" class=MsoNormal minmax_bound="true"><FONT size=3 minmax_bound="true"><FONT face=Calibri minmax_bound="true">Merhaba, </FONT></FONT></P>
<P style="MARGIN: 0cm 0cm 10pt" class=MsoNormal minmax_bound="true"><FONT size=3 minmax_bound="true"><FONT face=Calibri minmax_bound="true">Geçen yazımda uygulamaların gösterdiği beklenmedik davranışlar, debugger, dump dosyaları, dump dosyası üretme kavramlarına değinmiştim. Bu yazımda debugger’ın nasıl kurulduğunu, nelere dikkat etmek gerektiğini anlatacağım.<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /><o:p minmax_bound="true"></o:p></FONT></FONT></P>
<P style="MARGIN: 0cm 0cm 10pt" class=MsoNormal minmax_bound="true"><FONT size=3 minmax_bound="true"><FONT face=Calibri minmax_bound="true">Debugger’ın 3 farklı için platform versiyonu vardır :<o:p minmax_bound="true"></o:p></FONT></FONT></P>
<P style="TEXT-INDENT: -36pt; MARGIN: 0cm 0cm 0pt 54pt; mso-add-space: auto; mso-list: l0 level1 lfo1" class=MsoListParagraphCxSpFirst minmax_bound="true"><SPAN style="mso-bidi-font-family: calibri; mso-bidi-theme-font: minor-latin" minmax_bound="true"><SPAN style="mso-list: ignore" minmax_bound="true"><FONT size=3 face=Calibri minmax_bound="true">i.</FONT><SPAN style="FONT: 7pt 'Times New Roman'" minmax_bound="true">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></SPAN></SPAN><FONT size=3 minmax_bound="true"><FONT face=Calibri minmax_bound="true">X86, 32-bit debugger. Hem x86 hem de x64 sistemlere kurulabilir.<o:p minmax_bound="true"></o:p></FONT></FONT></P>
<P style="TEXT-INDENT: -36pt; MARGIN: 0cm 0cm 0pt 54pt; mso-add-space: auto; mso-list: l0 level1 lfo1" class=MsoListParagraphCxSpMiddle minmax_bound="true"><SPAN style="mso-bidi-font-family: calibri; mso-bidi-theme-font: minor-latin" minmax_bound="true"><SPAN style="mso-list: ignore" minmax_bound="true"><FONT size=3 face=Calibri minmax_bound="true">ii.</FONT><SPAN style="FONT: 7pt 'Times New Roman'" minmax_bound="true">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></SPAN></SPAN><FONT size=3 minmax_bound="true"><FONT face=Calibri minmax_bound="true">X64, 64-bit debugger. Sadece x64 tabanlı sistemlere kurulabilir.<o:p minmax_bound="true"></o:p></FONT></FONT></P>
<P style="TEXT-INDENT: -36pt; MARGIN: 0cm 0cm 10pt 54pt; mso-add-space: auto; mso-list: l0 level1 lfo1" class=MsoListParagraphCxSpLast minmax_bound="true"><SPAN style="mso-bidi-font-family: calibri; mso-bidi-theme-font: minor-latin" minmax_bound="true"><SPAN style="mso-list: ignore" minmax_bound="true"><FONT size=3 face=Calibri minmax_bound="true">iii.</FONT><SPAN style="FONT: 7pt 'Times New Roman'" minmax_bound="true">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></SPAN></SPAN><FONT size=3 minmax_bound="true"><FONT face=Calibri minmax_bound="true">IA64, 64-bit debugger. Sadece Itanium tabanlı sistemlere kurulabilir.<o:p minmax_bound="true"></o:p></FONT></FONT></P>
<P style="MARGIN: 0cm 0cm 10pt" class=MsoNormal minmax_bound="true"><FONT size=3 minmax_bound="true"><FONT face=Calibri minmax_bound="true">Itanium tabanlı sistemleri çok nadir kullanıldıkları için kapsama dahil etmeyeceğiz.<o:p minmax_bound="true"></o:p></FONT></FONT></P>
<P style="MARGIN: 0cm 0cm 10pt" class=MsoNormal minmax_bound="true"><B style="mso-bidi-font-weight: normal" minmax_bound="true"><FONT size=3 minmax_bound="true"><FONT face=Calibri minmax_bound="true">Pekiyi hangi versiyonu kurmalıyım ?<o:p minmax_bound="true"></o:p></FONT></FONT></B></P>
<P style="MARGIN: 0cm 0cm 10pt" class=MsoNormal minmax_bound="true"><FONT size=3 minmax_bound="true"><FONT face=Calibri minmax_bound="true">Burada önemli olan işletim sisteminin kaç bit olduğu değil uygulamanın kaç bit olduğudur. Aşağıdaki tablo bir referans olabilir.<o:p minmax_bound="true"></o:p></FONT></FONT></P>
<TABLE style="BORDER-BOTTOM: medium none; BORDER-LEFT: medium none; BORDER-COLLAPSE: collapse; BORDER-TOP: medium none; BORDER-RIGHT: medium none; mso-border-alt: solid black .5pt; mso-border-themecolor: text1; mso-yfti-tbllook: 1184; mso-padding-alt: 0cm 5.4pt 0cm 5.4pt" class=MsoTableGrid border=1 cellSpacing=0 cellPadding=0 minmax_bound="true" class="MsoTableGrid">
<TBODY minmax_bound="true">
<TR style="mso-yfti-irow: 0; mso-yfti-firstrow: yes" minmax_bound="true">
<TD style="BORDER-BOTTOM: black 1pt solid; BORDER-LEFT: black 1pt solid; PADDING-BOTTOM: 0cm; BACKGROUND-COLOR: transparent; PADDING-LEFT: 5.4pt; WIDTH: 81.2pt; PADDING-RIGHT: 5.4pt; BORDER-TOP: black 1pt solid; BORDER-RIGHT: black 1pt solid; PADDING-TOP: 0cm; mso-border-alt: solid black .5pt; mso-border-themecolor: text1" vAlign=top width=108 minmax_bound="true">
<P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt" class=MsoNormal minmax_bound="true"><B style="mso-bidi-font-weight: normal" minmax_bound="true"><FONT size=3 minmax_bound="true"><FONT face=Calibri minmax_bound="true">İşletim Sistemi<o:p minmax_bound="true"></o:p></FONT></FONT></B></P></TD>
<TD style="BORDER-BOTTOM: black 1pt solid; PADDING-BOTTOM: 0cm; BACKGROUND-COLOR: transparent; PADDING-LEFT: 5.4pt; WIDTH: 61.15pt; PADDING-RIGHT: 5.4pt; BORDER-LEFT-COLOR: #f0f0f0; BORDER-TOP: black 1pt solid; BORDER-RIGHT: black 1pt solid; PADDING-TOP: 0cm; mso-border-alt: solid black .5pt; mso-border-themecolor: text1; mso-border-left-alt: solid black .5pt; mso-border-left-themecolor: text1" vAlign=top width=82 minmax_bound="true">
<P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt" class=MsoNormal minmax_bound="true"><B style="mso-bidi-font-weight: normal" minmax_bound="true"><FONT size=3 minmax_bound="true"><FONT face=Calibri minmax_bound="true">Uygulama<o:p minmax_bound="true"></o:p></FONT></FONT></B></P></TD>
<TD style="BORDER-BOTTOM: black 1pt solid; PADDING-BOTTOM: 0cm; BACKGROUND-COLOR: transparent; PADDING-LEFT: 5.4pt; WIDTH: 153.5pt; PADDING-RIGHT: 5.4pt; BORDER-LEFT-COLOR: #f0f0f0; BORDER-TOP: black 1pt solid; BORDER-RIGHT: black 1pt solid; PADDING-TOP: 0cm; mso-border-alt: solid black .5pt; mso-border-themecolor: text1; mso-border-left-alt: solid black .5pt; mso-border-left-themecolor: text1" vAlign=top width=205 minmax_bound="true">
<P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt" class=MsoNormal minmax_bound="true"><B style="mso-bidi-font-weight: normal" minmax_bound="true"><FONT size=3 minmax_bound="true"><FONT face=Calibri minmax_bound="true">Kullanılması gereken debugger<o:p minmax_bound="true"></o:p></FONT></FONT></B></P></TD></TR>
<TR style="mso-yfti-irow: 1" minmax_bound="true">
<TD style="BORDER-BOTTOM: black 1pt solid; BORDER-LEFT: black 1pt solid; PADDING-BOTTOM: 0cm; BACKGROUND-COLOR: transparent; BORDER-TOP-COLOR: #f0f0f0; PADDING-LEFT: 5.4pt; WIDTH: 81.2pt; PADDING-RIGHT: 5.4pt; BORDER-RIGHT: black 1pt solid; PADDING-TOP: 0cm; mso-border-alt: solid black .5pt; mso-border-themecolor: text1; mso-border-top-alt: solid black .5pt; mso-border-top-themecolor: text1" vAlign=top width=108 minmax_bound="true">
<P style="TEXT-ALIGN: center; LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt" class=MsoNormal align=center minmax_bound="true"><FONT size=3 minmax_bound="true"><FONT face=Calibri minmax_bound="true">x86<o:p minmax_bound="true"></o:p></FONT></FONT></P></TD>
<TD style="BORDER-BOTTOM: black 1pt solid; PADDING-BOTTOM: 0cm; BACKGROUND-COLOR: transparent; BORDER-TOP-COLOR: #f0f0f0; PADDING-LEFT: 5.4pt; WIDTH: 61.15pt; PADDING-RIGHT: 5.4pt; BORDER-LEFT-COLOR: #f0f0f0; BORDER-RIGHT: black 1pt solid; PADDING-TOP: 0cm; mso-border-alt: solid black .5pt; mso-border-themecolor: text1; mso-border-left-alt: solid black .5pt; mso-border-left-themecolor: text1; mso-border-top-alt: solid black .5pt; mso-border-top-themecolor: text1; mso-border-bottom-themecolor: text1; mso-border-right-themecolor: text1" vAlign=top width=82 minmax_bound="true">
<P style="TEXT-ALIGN: center; LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt" class=MsoNormal align=center minmax_bound="true"><FONT size=3 minmax_bound="true"><FONT face=Calibri minmax_bound="true">32 bit<o:p minmax_bound="true"></o:p></FONT></FONT></P></TD>
<TD style="BORDER-BOTTOM: black 1pt solid; PADDING-BOTTOM: 0cm; BACKGROUND-COLOR: transparent; BORDER-TOP-COLOR: #f0f0f0; PADDING-LEFT: 5.4pt; WIDTH: 153.5pt; PADDING-RIGHT: 5.4pt; BORDER-LEFT-COLOR: #f0f0f0; BORDER-RIGHT: black 1pt solid; PADDING-TOP: 0cm; mso-border-alt: solid black .5pt; mso-border-themecolor: text1; mso-border-left-alt: solid black .5pt; mso-border-left-themecolor: text1; mso-border-top-alt: solid black .5pt; mso-border-top-themecolor: text1; mso-border-bottom-themecolor: text1; mso-border-right-themecolor: text1" vAlign=top width=205 minmax_bound="true">
<P style="TEXT-ALIGN: center; LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt" class=MsoNormal align=center minmax_bound="true"><FONT size=3 minmax_bound="true"><FONT face=Calibri minmax_bound="true">32 bit<o:p minmax_bound="true"></o:p></FONT></FONT></P></TD></TR>
<TR style="mso-yfti-irow: 2" minmax_bound="true">
<TD style="BORDER-BOTTOM: black 1pt solid; BORDER-LEFT: black 1pt solid; PADDING-BOTTOM: 0cm; BACKGROUND-COLOR: transparent; BORDER-TOP-COLOR: #f0f0f0; PADDING-LEFT: 5.4pt; WIDTH: 81.2pt; PADDING-RIGHT: 5.4pt; BORDER-RIGHT: black 1pt solid; PADDING-TOP: 0cm; mso-border-alt: solid black .5pt; mso-border-themecolor: text1; mso-border-top-alt: solid black .5pt; mso-border-top-themecolor: text1" vAlign=top width=108 minmax_bound="true">
<P style="TEXT-ALIGN: center; LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt" class=MsoNormal align=center minmax_bound="true"><FONT size=3 minmax_bound="true"><FONT face=Calibri minmax_bound="true">x64<o:p minmax_bound="true"></o:p></FONT></FONT></P></TD>
<TD style="BORDER-BOTTOM: black 1pt solid; PADDING-BOTTOM: 0cm; BACKGROUND-COLOR: transparent; BORDER-TOP-COLOR: #f0f0f0; PADDING-LEFT: 5.4pt; WIDTH: 61.15pt; PADDING-RIGHT: 5.4pt; BORDER-LEFT-COLOR: #f0f0f0; BORDER-RIGHT: black 1pt solid; PADDING-TOP: 0cm; mso-border-alt: solid black .5pt; mso-border-themecolor: text1; mso-border-left-alt: solid black .5pt; mso-border-left-themecolor: text1; mso-border-top-alt: solid black .5pt; mso-border-top-themecolor: text1; mso-border-bottom-themecolor: text1; mso-border-right-themecolor: text1" vAlign=top width=82 minmax_bound="true">
<P style="TEXT-ALIGN: center; LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt" class=MsoNormal align=center minmax_bound="true"><FONT size=3 minmax_bound="true"><FONT face=Calibri minmax_bound="true">32 bit<o:p minmax_bound="true"></o:p></FONT></FONT></P></TD>
<TD style="BORDER-BOTTOM: black 1pt solid; PADDING-BOTTOM: 0cm; BACKGROUND-COLOR: transparent; BORDER-TOP-COLOR: #f0f0f0; PADDING-LEFT: 5.4pt; WIDTH: 153.5pt; PADDING-RIGHT: 5.4pt; BORDER-LEFT-COLOR: #f0f0f0; BORDER-RIGHT: black 1pt solid; PADDING-TOP: 0cm; mso-border-alt: solid black .5pt; mso-border-themecolor: text1; mso-border-left-alt: solid black .5pt; mso-border-left-themecolor: text1; mso-border-top-alt: solid black .5pt; mso-border-top-themecolor: text1; mso-border-bottom-themecolor: text1; mso-border-right-themecolor: text1" vAlign=top width=205 minmax_bound="true">
<P style="TEXT-ALIGN: center; LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt" class=MsoNormal align=center minmax_bound="true"><FONT size=3 minmax_bound="true"><FONT face=Calibri minmax_bound="true">32 bit<o:p minmax_bound="true"></o:p></FONT></FONT></P></TD></TR>
<TR style="mso-yfti-irow: 3; mso-yfti-lastrow: yes" minmax_bound="true">
<TD style="BORDER-BOTTOM: black 1pt solid; BORDER-LEFT: black 1pt solid; PADDING-BOTTOM: 0cm; BACKGROUND-COLOR: transparent; BORDER-TOP-COLOR: #f0f0f0; PADDING-LEFT: 5.4pt; WIDTH: 81.2pt; PADDING-RIGHT: 5.4pt; BORDER-RIGHT: black 1pt solid; PADDING-TOP: 0cm; mso-border-alt: solid black .5pt; mso-border-themecolor: text1; mso-border-top-alt: solid black .5pt; mso-border-top-themecolor: text1" vAlign=top width=108 minmax_bound="true">
<P style="TEXT-ALIGN: center; LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt" class=MsoNormal align=center minmax_bound="true"><FONT size=3 minmax_bound="true"><FONT face=Calibri minmax_bound="true">x64<o:p minmax_bound="true"></o:p></FONT></FONT></P></TD>
<TD style="BORDER-BOTTOM: black 1pt solid; PADDING-BOTTOM: 0cm; BACKGROUND-COLOR: transparent; BORDER-TOP-COLOR: #f0f0f0; PADDING-LEFT: 5.4pt; WIDTH: 61.15pt; PADDING-RIGHT: 5.4pt; BORDER-LEFT-COLOR: #f0f0f0; BORDER-RIGHT: black 1pt solid; PADDING-TOP: 0cm; mso-border-alt: solid black .5pt; mso-border-themecolor: text1; mso-border-left-alt: solid black .5pt; mso-border-left-themecolor: text1; mso-border-top-alt: solid black .5pt; mso-border-top-themecolor: text1; mso-border-bottom-themecolor: text1; mso-border-right-themecolor: text1" vAlign=top width=82 minmax_bound="true">
<P style="TEXT-ALIGN: center; LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt" class=MsoNormal align=center minmax_bound="true"><FONT size=3 minmax_bound="true"><FONT face=Calibri minmax_bound="true">64 bit<o:p minmax_bound="true"></o:p></FONT></FONT></P></TD>
<TD style="BORDER-BOTTOM: black 1pt solid; PADDING-BOTTOM: 0cm; BACKGROUND-COLOR: transparent; BORDER-TOP-COLOR: #f0f0f0; PADDING-LEFT: 5.4pt; WIDTH: 153.5pt; PADDING-RIGHT: 5.4pt; BORDER-LEFT-COLOR: #f0f0f0; BORDER-RIGHT: black 1pt solid; PADDING-TOP: 0cm; mso-border-alt: solid black .5pt; mso-border-themecolor: text1; mso-border-left-alt: solid black .5pt; mso-border-left-themecolor: text1; mso-border-top-alt: solid black .5pt; mso-border-top-themecolor: text1; mso-border-bottom-themecolor: text1; mso-border-right-themecolor: text1" vAlign=top width=205 minmax_bound="true">
<P style="TEXT-ALIGN: center; LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt" class=MsoNormal align=center minmax_bound="true"><FONT size=3 minmax_bound="true"><FONT face=Calibri minmax_bound="true">64 bit<o:p minmax_bound="true"></o:p></FONT></FONT></P></TD></TR></TBODY></TABLE>
<P style="MARGIN: 0cm 0cm 10pt" class=MsoNormal minmax_bound="true"><o:p minmax_bound="true"><FONT size=3 face=Calibri minmax_bound="true">&nbsp;</FONT></o:p></P>
<P style="MARGIN: 0cm 0cm 10pt" class=MsoNormal minmax_bound="true"><FONT size=3 minmax_bound="true"><FONT face=Calibri minmax_bound="true">X64 bir sisteme hem 64bit hem de 32bit debugger kurabilirsiniz.<o:p minmax_bound="true"></o:p></FONT></FONT></P>
<P style="MARGIN: 0cm 0cm 10pt" class=MsoNormal minmax_bound="true"><FONT size=3 minmax_bound="true"><FONT face=Calibri minmax_bound="true">Debugger paketinin adı “Debugging Tools for Windows" olarak geçiyor. Ana sayfası :<o:p minmax_bound="true"></o:p></FONT></FONT></P>
<P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt" class=MsoNormal minmax_bound="true"><B style="mso-bidi-font-weight: normal" minmax_bound="true"><FONT size=3 minmax_bound="true"><FONT face=Calibri minmax_bound="true">Debugging Tools for Windows - Overview<o:p minmax_bound="true"></o:p></FONT></FONT></B></P>
<P style="MARGIN: 0cm 0cm 10pt" class=MsoNormal minmax_bound="true"><A href="http://www.microsoft.com/whdc/devtools/debugging/default.mspx" minmax_bound="true" mce_href="http://www.microsoft.com/whdc/devtools/debugging/default.mspx"><FONT color=#0000ff size=3 face=Calibri minmax_bound="true">http://www.microsoft.com/whdc/devtools/debugging/default.mspx</FONT></A><o:p minmax_bound="true"></o:p></P>
<P style="MARGIN: 0cm 0cm 10pt" class=MsoNormal minmax_bound="true"><FONT size=3 minmax_bound="true"><FONT face=Calibri minmax_bound="true">Bu sayfanın içinden 32 bit ve 64 bit paketlerin indirilebileceği sayfalara ait linkler de bulunmaktadır :<o:p minmax_bound="true"></o:p></FONT></FONT></P>
<P style="MARGIN: 0cm 0cm 0pt" class=MsoNormal minmax_bound="true"><B style="mso-bidi-font-weight: normal" minmax_bound="true"><FONT size=3 minmax_bound="true"><FONT face=Calibri minmax_bound="true">Install Debugging Tools for Windows 32-bit Version<o:p minmax_bound="true"></o:p></FONT></FONT></B></P>
<P style="MARGIN: 0cm 0cm 10pt" class=MsoNormal minmax_bound="true"><A href="http://www.microsoft.com/whdc/devtools/debugging/installx86.mspx#a" minmax_bound="true" mce_href="http://www.microsoft.com/whdc/devtools/debugging/installx86.mspx#a"><FONT color=#0000ff size=3 face=Calibri minmax_bound="true">http://www.microsoft.com/whdc/devtools/debugging/installx86.mspx#a</FONT></A><FONT size=3 minmax_bound="true"><FONT face=Calibri minmax_bound="true"> <o:p minmax_bound="true"></o:p></FONT></FONT></P>
<P style="MARGIN: 0cm 0cm 10pt" class=MsoNormal minmax_bound="true"><o:p minmax_bound="true"><FONT size=3 face=Calibri minmax_bound="true">&nbsp;</FONT></o:p></P>
<P style="MARGIN: 0cm 0cm 0pt" class=MsoNormal minmax_bound="true"><B style="mso-bidi-font-weight: normal" minmax_bound="true"><FONT size=3 minmax_bound="true"><FONT face=Calibri minmax_bound="true">Install Debugging Tools for Windows 64-bit Version<o:p minmax_bound="true"></o:p></FONT></FONT></B></P>
<P style="MARGIN: 0cm 0cm 10pt" class=MsoNormal minmax_bound="true"><A href="http://www.microsoft.com/whdc/devtools/debugging/install64bit.mspx#" minmax_bound="true" mce_href="http://www.microsoft.com/whdc/devtools/debugging/install64bit.mspx#"><FONT color=#0000ff size=3 face=Calibri minmax_bound="true">http://www.microsoft.com/whdc/devtools/debugging/install64bit.mspx#</FONT></A><FONT size=3 minmax_bound="true"><FONT face=Calibri minmax_bound="true"> <o:p minmax_bound="true"></o:p></FONT></FONT></P>
<P style="MARGIN: 0cm 0cm 10pt" class=MsoNormal minmax_bound="true"><FONT size=3 minmax_bound="true"><FONT face=Calibri minmax_bound="true">Her iki sayfanın altlarına doğru “Previous Versions” linkleri bulunmaktadır. Eğer buradan indirirseniz tek başına “Debugging Tools for Windows” paketini indirirsiniz. Yakın zamanda bu değişti ve debugger Windows SDK ve Driver Development Kit’in içine alındı. <o:p minmax_bound="true"></o:p></FONT></FONT></P>
<P style="MARGIN: 0cm 0cm 10pt" class=MsoNormal minmax_bound="true"><FONT size=3 minmax_bound="true"><FONT face=Calibri minmax_bound="true">Merak etmeyin sadece debugger kurmak için bu büyük kit’leri indirmenize gerek yok. Şu adımları izleyebilirsiniz :</FONT></FONT></P>
<P style="MARGIN: 0cm 0cm 10pt" class=MsoNormal minmax_bound="true"><FONT size=3 face=Calibri minmax_bound="true"><STRONG minmax_bound="true"></STRONG></FONT>&nbsp;</P>
<P style="MARGIN: 0cm 0cm 10pt" class=MsoNormal minmax_bound="true"><FONT size=3 face=Calibri minmax_bound="true"><STRONG minmax_bound="true">Windows SDK'sı içinden Debugger paketini kurmak </STRONG></FONT></P><FONT size=3 face=Calibri minmax_bound="true">
<P style="MARGIN: 0cm 0cm 10pt" class=MsoNormal minmax_bound="true">#1 Aşağıdaki sayfayı açın :<o:p minmax_bound="true"></o:p></P>
<P style="MARGIN: 0cm 0cm 10pt" class=MsoNormal minmax_bound="true"><A href="http://www.microsoft.com/downloads/details.aspx?FamilyID=c17ba869-9671-4330-a63e-1fd44e0e2505&amp;displaylang=en" minmax_bound="true" mce_href="http://www.microsoft.com/downloads/details.aspx?FamilyID=c17ba869-9671-4330-a63e-1fd44e0e2505&amp;displaylang=en"><FONT color=#0000ff minmax_bound="true">http://www.microsoft.com/downloads/details.aspx?FamilyID=c17ba869-9671-4330-a63e-1fd44e0e2505&amp;displaylang=en</FONT></A><o:p minmax_bound="true"></o:p></P>
<P style="MARGIN: 0cm 0cm 10pt" class=MsoNormal minmax_bound="true"><SPAN style="LINE-HEIGHT: 115%; FONT-FAMILY: 'Calibri','sans-serif'; FONT-SIZE: 11pt; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: minor-bidi; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: calibri; mso-fareast-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-fareast-language: en-us; mso-ansi-language: tr; mso-bidi-language: ar-sa" minmax_bound="true">#2 Download butonuna basın.</SPAN></P>
<P style="MARGIN: 0cm 0cm 10pt" class=MsoNormal minmax_bound="true"><SPAN style="LINE-HEIGHT: 115%; FONT-FAMILY: 'Calibri','sans-serif'; FONT-SIZE: 11pt; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: minor-bidi; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: calibri; mso-fareast-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-fareast-language: en-us; mso-ansi-language: tr; mso-bidi-language: ar-sa" minmax_bound="true">#3 File download ekranı ile karşılaşacaksınız :</SPAN></P>
<P style="MARGIN: 0cm 0cm 10pt" class=MsoNormal minmax_bound="true"><A href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/BlogFileStorage/blogs_msdn/faik/WindowsLiveWriter/Debuggerkurmak_DC8E/FileDownload_2.jpg" original-url="http://blogs.msdn.com/blogfiles/faik/WindowsLiveWriter/Debuggerkurmak_DC8E/FileDownload_2.jpg" mce_href="http://blogs.msdn.com/blogfiles/faik/WindowsLiveWriter/Debuggerkurmak_DC8E/FileDownload_2.jpg"></A><A href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com//faikb/10009110.aspx" original-url="http://blogs.msdn.com/photos/faikb/picture10009110.aspx" target=_blank></A><A href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com//faikb/10009110.aspx" original-url="http://blogs.msdn.com/photos/faikb/picture10009110.aspx" target=_blank><IMG border=0 src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Components.PostAttachments/00/10/00/91/10/FileDownload.jpg" original-url="http://blogs.msdn.com/photos/faikb/images/10009110/original.aspx"></A>&nbsp;</P><SPAN style="LINE-HEIGHT: 115%; FONT-FAMILY: 'Calibri','sans-serif'; FONT-SIZE: 11pt; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: minor-bidi; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: calibri; mso-fareast-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-fareast-language: en-us; mso-ansi-language: tr; mso-bidi-language: ar-sa" minmax_bound="true">
<P style="MARGIN: 0cm 0cm 10pt" class=MsoNormal minmax_bound="true">#4 Run butonuna basın.<o:p minmax_bound="true"></o:p></P>
<P style="MARGIN: 0cm 0cm 10pt" class=MsoNormal minmax_bound="true">#5 UAC izni sorulursa izin verin.<o:p minmax_bound="true"></o:p></P>
<P style="MARGIN: 0cm 0cm 10pt" class=MsoNormal minmax_bound="true">#6 Aşağıdaki karşılama ekranında “Next” butonuna basın.</P>
<P style="MARGIN: 0cm 0cm 10pt" class=MsoNormal minmax_bound="true"><A href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/BlogFileStorage/blogs_msdn/faik/WindowsLiveWriter/Debuggerkurmak_DC8E/SDKSetupWizard_2.jpg" original-url="http://blogs.msdn.com/blogfiles/faik/WindowsLiveWriter/Debuggerkurmak_DC8E/SDKSetupWizard_2.jpg" minmax_bound="true" mce_href="http://blogs.msdn.com/blogfiles/faik/WindowsLiveWriter/Debuggerkurmak_DC8E/SDKSetupWizard_2.jpg"></A><A href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com//faikb/10009113.aspx" original-url="http://blogs.msdn.com/photos/faikb/picture10009113.aspx" target=_blank><IMG border=0 src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Components.PostAttachments/00/10/00/91/13/SDKSetupWizard.jpg" original-url="http://blogs.msdn.com/photos/faikb/images/10009113/original.aspx"></A>&nbsp;</P>
<P style="MARGIN: 0cm 0cm 10pt" class=MsoNormal minmax_bound="true" mce_keep="true">&nbsp;</P>
<P style="MARGIN: 0cm 0cm 10pt" class=MsoNormal minmax_bound="true">#7 Lisans anlaşmasını kabul edin ve “Next” butonuna basın.</P>
<P style="MARGIN: 0cm 0cm 10pt" class=MsoNormal minmax_bound="true" mce_keep="true">&nbsp;</P>
<P style="MARGIN: 0cm 0cm 10pt" class=MsoNormal minmax_bound="true"><A href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/BlogFileStorage/blogs_msdn/faik/WindowsLiveWriter/Debuggerkurmak_DC8E/EULA_2.jpg" original-url="http://blogs.msdn.com/blogfiles/faik/WindowsLiveWriter/Debuggerkurmak_DC8E/EULA_2.jpg" minmax_bound="true" mce_href="http://blogs.msdn.com/blogfiles/faik/WindowsLiveWriter/Debuggerkurmak_DC8E/EULA_2.jpg"></A><A href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com//faikb/10009112.aspx" original-url="http://blogs.msdn.com/photos/faikb/picture10009112.aspx" target=_blank><IMG border=0 src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Components.PostAttachments/00/10/00/91/12/EULA.jpg" original-url="http://blogs.msdn.com/photos/faikb/images/10009112/original.aspx"></A>&nbsp;</P>
<P style="MARGIN: 0cm 0cm 10pt" class=MsoNormal minmax_bound="true"></SPAN></FONT><FONT size=3 minmax_bound="true"><FONT face=Calibri minmax_bound="true"></FONT></FONT>&nbsp;</P>
<P style="MARGIN: 0cm 0cm 10pt" class=MsoNormal minmax_bound="true"><FONT size=3 minmax_bound="true"><FONT face=Calibri minmax_bound="true">#8 Kurulum yapılacak dizini belirleyin.</FONT></FONT></P>
<P style="MARGIN: 0cm 0cm 10pt" class=MsoNormal minmax_bound="true"><FONT size=3 face=Calibri minmax_bound="true"><A href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/BlogFileStorage/blogs_msdn/faik/WindowsLiveWriter/Debuggerkurmak_DC8E/InstallLocations_2.jpg" original-url="http://blogs.msdn.com/blogfiles/faik/WindowsLiveWriter/Debuggerkurmak_DC8E/InstallLocations_2.jpg" minmax_bound="true" mce_href="http://blogs.msdn.com/blogfiles/faik/WindowsLiveWriter/Debuggerkurmak_DC8E/InstallLocations_2.jpg"></A><A href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com//faikb/10009114.aspx" original-url="http://blogs.msdn.com/photos/faikb/picture10009114.aspx" target=_blank><IMG border=0 src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Components.PostAttachments/00/10/00/91/14/InstallLocations.jpg" original-url="http://blogs.msdn.com/photos/faikb/images/10009114/original.aspx"></A>&nbsp;</FONT></P>
<P minmax_bound="true"><FONT face=Calibri minmax_bound="true"><FONT size=3 minmax_bound="true">#9 Esas dikkat edilmesi gereken adım budur!</FONT><FONT size=3 minmax_bound="true">&nbsp;<o:p minmax_bound="true"></o:p></FONT></P>
<P style="MARGIN: 0cm 0cm 10pt" class=MsoNormal minmax_bound="true"><FONT size=3 minmax_bound="true">“Installation Option” ekranında sadece “Debugging Tools for Windows” seçili kalmalı diğer seçimleri kaldırın. “Next”e basmadan önce ekrandaki seçimler şu şekilde olmalıdır :</FONT></P>
<P style="MARGIN: 0cm 0cm 10pt" class=MsoNormal minmax_bound="true"><FONT size=3 minmax_bound="true"></FONT>&nbsp;</P>
<P style="MARGIN: 0cm 0cm 10pt" class=MsoNormal minmax_bound="true"><FONT size=3 minmax_bound="true"><A href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/BlogFileStorage/blogs_msdn/faik/WindowsLiveWriter/Debuggerkurmak_DC8E/InstallOptions_2.jpg" original-url="http://blogs.msdn.com/blogfiles/faik/WindowsLiveWriter/Debuggerkurmak_DC8E/InstallOptions_2.jpg" minmax_bound="true" mce_href="http://blogs.msdn.com/blogfiles/faik/WindowsLiveWriter/Debuggerkurmak_DC8E/InstallOptions_2.jpg"></A>&nbsp;<A href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com//faikb/10009115.aspx" original-url="http://blogs.msdn.com/photos/faikb/picture10009115.aspx" target=_blank><IMG border=0 src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Components.PostAttachments/00/10/00/91/15/InstallOptions.jpg" original-url="http://blogs.msdn.com/photos/faikb/images/10009115/original.aspx"></A></FONT></P>
<P style="MARGIN: 0cm 0cm 10pt" class=MsoNormal minmax_bound="true"><FONT size=3 minmax_bound="true"></FONT>&nbsp;</P>
<P style="MARGIN: 0cm 0cm 10pt" class=MsoNormal minmax_bound="true"><FONT size=3 minmax_bound="true">#10 </FONT><FONT size=3 minmax_bound="true">Bir sonraki adımda kurulum başlayacaktır. “Next” butonuna basarak devam ettirin.</FONT></P>
<P style="MARGIN: 0cm 0cm 10pt" class=MsoNormal minmax_bound="true"><FONT size=3 minmax_bound="true"></FONT>&nbsp;</P>
<P style="MARGIN: 0cm 0cm 10pt" class=MsoNormal minmax_bound="true"><FONT size=3 minmax_bound="true"><A href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/BlogFileStorage/blogs_msdn/faik/WindowsLiveWriter/Debuggerkurmak_DC8E/BeginInstallation_2.jpg" original-url="http://blogs.msdn.com/blogfiles/faik/WindowsLiveWriter/Debuggerkurmak_DC8E/BeginInstallation_2.jpg" minmax_bound="true" mce_href="http://blogs.msdn.com/blogfiles/faik/WindowsLiveWriter/Debuggerkurmak_DC8E/BeginInstallation_2.jpg"></A><A href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com//faikb/10009116.aspx" original-url="http://blogs.msdn.com/photos/faikb/picture10009116.aspx" target=_blank><IMG border=0 src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Components.PostAttachments/00/10/00/91/16/BeginInstallation.jpg" original-url="http://blogs.msdn.com/photos/faikb/images/10009116/original.aspx"></A>&nbsp;</FONT></P>
<P style="MARGIN: 0cm 0cm 10pt" class=MsoNormal minmax_bound="true"><FONT size=3 minmax_bound="true"></FONT>&nbsp;</P>
<P style="MARGIN: 0cm 0cm 10pt" class=MsoNormal minmax_bound="true"><FONT size=3 minmax_bound="true">#11 <SPAN style="LINE-HEIGHT: 115%; FONT-FAMILY: 'Calibri','sans-serif'; FONT-SIZE: 11pt; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: minor-bidi; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: calibri; mso-fareast-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-fareast-language: en-us; mso-ansi-language: tr; mso-bidi-language: ar-sa" minmax_bound="true">İşlemin tamamlandığını gösteren ekranda “Finish” butonuna basarak kurulumu sonlandırabiliriz.</SPAN></FONT></P>
<P style="MARGIN: 0cm 0cm 10pt" class=MsoNormal minmax_bound="true"><FONT size=3 minmax_bound="true"><SPAN style="LINE-HEIGHT: 115%; FONT-FAMILY: 'Calibri','sans-serif'; FONT-SIZE: 11pt; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: minor-bidi; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: calibri; mso-fareast-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-fareast-language: en-us; mso-ansi-language: tr; mso-bidi-language: ar-sa" minmax_bound="true"></SPAN><o:p minmax_bound="true"></o:p></FONT>&nbsp;</P>
<P style="MARGIN: 0cm 0cm 10pt" class=MsoNormal minmax_bound="true"><FONT size=3 minmax_bound="true"><o:p minmax_bound="true"><A href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/BlogFileStorage/blogs_msdn/faik/WindowsLiveWriter/Debuggerkurmak_DC8E/InstallationComplete_2.jpg" original-url="http://blogs.msdn.com/blogfiles/faik/WindowsLiveWriter/Debuggerkurmak_DC8E/InstallationComplete_2.jpg" minmax_bound="true" mce_href="http://blogs.msdn.com/blogfiles/faik/WindowsLiveWriter/Debuggerkurmak_DC8E/InstallationComplete_2.jpg"></A><A href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com//faikb/10009117.aspx" original-url="http://blogs.msdn.com/photos/faikb/picture10009117.aspx" target=_blank><IMG border=0 src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Components.PostAttachments/00/10/00/91/17/InstallationComplete.jpg" original-url="http://blogs.msdn.com/photos/faikb/images/10009117/original.aspx"></A>&nbsp;</o:p></FONT></P>
<P style="MARGIN: 0cm 0cm 10pt" class=MsoNormal minmax_bound="true"><FONT size=3 minmax_bound="true"><o:p minmax_bound="true"></o:p></FONT>&nbsp;</P>
<P style="MARGIN: 0cm 0cm 10pt" class=MsoNormal minmax_bound="true"><FONT size=3 minmax_bound="true"><o:p minmax_bound="true"><SPAN style="LINE-HEIGHT: 115%; FONT-FAMILY: 'Calibri','sans-serif'; FONT-SIZE: 11pt; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: minor-bidi; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: calibri; mso-fareast-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-fareast-language: en-us; mso-ansi-language: tr; mso-bidi-language: ar-sa" minmax_bound="true"></SPAN></o:p></FONT>&nbsp;</P>
<P style="MARGIN: 0cm 0cm 10pt" class=MsoNormal minmax_bound="true"><FONT size=3 minmax_bound="true"><o:p minmax_bound="true"><SPAN style="LINE-HEIGHT: 115%; FONT-FAMILY: 'Calibri','sans-serif'; FONT-SIZE: 11pt; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: minor-bidi; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: calibri; mso-fareast-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-fareast-language: en-us; mso-ansi-language: tr; mso-bidi-language: ar-sa" minmax_bound="true">Kurulum tamamlandıktan sonra Start butonuna basıp “Programları” açarsanız aşağıdaki yeni program dizini görebilirsiniz :</SPAN></o:p></FONT></P>
<P style="MARGIN: 0cm 0cm 10pt" class=MsoNormal minmax_bound="true"><FONT size=3 minmax_bound="true"><o:p minmax_bound="true"></o:p></FONT>&nbsp;</P>
<P style="MARGIN: 0cm 0cm 10pt" class=MsoNormal minmax_bound="true"><FONT size=3 minmax_bound="true"><o:p minmax_bound="true"><A href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/BlogFileStorage/blogs_msdn/faik/WindowsLiveWriter/Debuggerkurmak_DC8E/StartButton_2.jpg" original-url="http://blogs.msdn.com/blogfiles/faik/WindowsLiveWriter/Debuggerkurmak_DC8E/StartButton_2.jpg" minmax_bound="true" mce_href="http://blogs.msdn.com/blogfiles/faik/WindowsLiveWriter/Debuggerkurmak_DC8E/StartButton_2.jpg"></A><A href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com//faikb/10009118.aspx" original-url="http://blogs.msdn.com/photos/faikb/picture10009118.aspx" target=_blank><IMG border=0 src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Components.PostAttachments/00/10/00/91/18/StartButton.jpg" original-url="http://blogs.msdn.com/photos/faikb/images/10009118/original.aspx"></A>&nbsp;</o:p></FONT></P>
<P style="MARGIN: 0cm 0cm 10pt" class=MsoNormal minmax_bound="true"><FONT size=3 minmax_bound="true"><o:p minmax_bound="true"></o:p></FONT>&nbsp;</P>
<P style="MARGIN: 0cm 0cm 10pt" class=MsoNormal minmax_bound="true"><FONT size=3 minmax_bound="true"><o:p minmax_bound="true">Yeni araçlarınızı güle güle kullanın. </o:p></FONT></P>
<P style="MARGIN: 0cm 0cm 10pt" class=MsoNormal minmax_bound="true"><FONT size=3 minmax_bound="true"><o:p minmax_bound="true"></o:p></FONT>&nbsp;</P>
<P style="MARGIN: 0cm 0cm 10pt" class=MsoNormal minmax_bound="true"><FONT size=3 minmax_bound="true"><o:p minmax_bound="true">Hoşçakalın</o:p></FONT></P>
<P style="MARGIN: 0cm 0cm 10pt" class=MsoNormal minmax_bound="true"><FONT size=3 minmax_bound="true"><o:p minmax_bound="true">-faik</o:p></FONT></P>
<P style="MARGIN: 0cm 0cm 10pt" class=MsoNormal minmax_bound="true"><FONT size=3 minmax_bound="true"><o:p minmax_bound="true"></o:p></FONT>&nbsp;</P><o:p minmax_bound="true"></o:p>
<P minmax_bound="true"><o:p minmax_bound="true"></o:p></FONT></P>]]></content:encoded>
    </item>
    <item>
      <title>Debugging'e Giriş</title>
      <link>https://docs.microsoft.com/archive/blogs/faik/debugginge-giri</link>
      <pubDate>Fri, 07 May 2010 03:51:00 GMT</pubDate>
      <dc:creator><![CDATA[faikb]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/faik/2010/05/07/debugginge-giri/</guid>
      <description><![CDATA[&nbsp;
Bilgisayar kullanırken kimi zaman kullandığımız uygulamalar beklenmedik davranışlar...]]></description>
      <content:encoded><![CDATA[<P style="MARGIN: 0cm 0cm 10pt" class=MsoNormal><FONT size=3><FONT face=Calibri></FONT></FONT>&nbsp;</P>
<P style="MARGIN: 0cm 0cm 10pt" class=MsoNormal><FONT size=3><FONT face=Calibri>Bilgisayar kullanırken kimi zaman kullandığımız uygulamalar beklenmedik davranışlar gösterirler. Bu davranışları iki gruba ayırabiliriz :<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /><o:p></o:p></FONT></FONT></P>
<P style="MARGIN: 0cm 0cm 10pt" class=MsoNormal><FONT size=3><FONT face=Calibri>#1 Uygulama bir hata ile karşılaşır. Bu durumda ya kapanır ya da uyarı verir ve çalışmaya devam eder.<o:p></o:p></FONT></FONT></P>
<P style="MARGIN: 0cm 0cm 10pt" class=MsoNormal><FONT size=3><FONT face=Calibri>#2 Uygulama cevap veremez hale gelir.<o:p></o:p></FONT></FONT></P>
<P style="MARGIN: 0cm 0cm 10pt" class=MsoNormal><FONT size=3><FONT face=Calibri>Uygulamadan kastedilen tüm komut satırı uygulamaları, servisler ve&nbsp;GUI uygulamalarıdır. Uygulamanın .net tabanlı olup olmaması veya hangi programlama dilinde geliştirildiğinin bir önemi yok.</FONT></FONT></P>
<P style="MARGIN: 0cm 0cm 10pt" class=MsoNormal><FONT size=3><FONT face=Calibri>Beklenmeyen davranışın sebebini bulmak için kullanabileceğimiz güçlü bir araç mevcut : Debugger (hata ayıklayıcı). Debugger’ın yaptığı çalışan uygulamanın içine bakmamızı sağlamak. İsterseniz debugger’ı röntgen cihazı gibi de düşünebilirsiniz. Debugger, sorunlu uygulamaya bağlanabilir ve sizin bu uygulamayı incelemenizi sağlar. Tabii, akla gelen soru “Production/live (üretim/canlı) ortamlarında kimin bunu yapma şansı olabilir?” dir. Genellikle de yanıt “kimsenin” olacaktır. İşte tam bu noktada debugger’ın çok sık kullanacağımız bir özelliğinden bahsedebiliriz : dump dosyası&nbsp; üretmek. <o:p></o:p></FONT></FONT></P>
<P style="MARGIN: 0cm 0cm 10pt" class=MsoNormal><FONT size=3><FONT face=Calibri>Dump dosyası, uygulamanın kullandığı bellek alanlarını, işlemci içeriğini ve işletim sisteminde tutulan bir takım bilgileri barındırır. Dump dosyası, debugger ile açılabilir. Dolayısıyla dump’ın alındığı anda uygulamanın durumunu daha sonra incelemek mümkün.</FONT></FONT></P>
<P style="MARGIN: 0cm 0cm 10pt" class=MsoNormal><FONT size=3><FONT face=Calibri>Debugger, nasıl başlatıldığına bağlı olarak aşağıdaki durumlarda dump dosyası üretebilir :<o:p></o:p></FONT></FONT></P>
<P style="MARGIN: 0cm 0cm 10pt" class=MsoNormal><FONT size=3><FONT face=Calibri>#1 Eğer debugger exception durumlarında dump dosyası üretmeye ayarlandıysa debugger uygulamaya bağlandığı andan itibaren onu takip eder ve bir exception&nbsp;olduğunda bir dump dosyası üretir. Debugger uygulama kapanana kadar çalışır ve ona bağlı kalır. Buna “Crash Mode” dump alma denir. “Crash Mode”dan kasıt mutlaka uygulamanın bir exception sonucu kapanması değildir. Her exception üretildiğinde dump alınmasıdır. Maalesef, “crash” sözcüğü bu karışıklığa yol açıyor.<o:p></o:p></FONT></FONT></P>
<P style="MARGIN: 0cm 0cm 10pt" class=MsoNormal><FONT size=3><FONT face=Calibri>#2 Diğer bir çalıştırma yöntemi ise debugger’in uygulamaya bağlanması ve o anki bilgileri dump dosyasına kaydetmesi, akabinde bağlantıyı kesip, kapanmasıdır. Uygulama çalışmaya devam eder. Debugger’ın bu tip çalıştırılmasına “Hang Mode” denir. Maalesef burada da “hang” sözcüğü farklı bir algıya yol açıyor. Debugger, uygulamanın ne zaman “hang” olduğunu ( cevap vermediğini ) takip etmez, fark edemez, sadece çalıştırıldığı <U>o andaki</U> uygulamanın durumunu kaydeder.<o:p></o:p></FONT></FONT></P>
<P style="MARGIN: 0cm 0cm 10pt" class=MsoNormal><FONT size=3><FONT face=Calibri>Sanıyorum, ilk&nbsp;yöntem “exception” ikincisi de “snapshot” mode olarak anılsaydı daha doğru olurdu.<o:p></o:p></FONT></FONT></P>
<P style="MARGIN: 0cm 0cm 10pt" class=MsoNormal><FONT size=3><FONT face=Calibri>Üretilen bu dosyalarla ilgili hiç unutulmaması gereken bir nokta var : Dump dosyası uygulamanın “<STRONG><U>o ana ait</U></STRONG>” durumunu gösterir, ne bir cycle önce ne de bir cycle sonra :)&nbsp;Yani süreğen bir bilgi barındırmaz. Bu varsayımdan yola çıkarak hangi tip sorunlu durumda debugger’ı hangi halde başlatıp (crash/hang) kaç tane dump dosyasına ihtiyacımız olduğunu belirleyeceğiz. <o:p></o:p></FONT></FONT></P>
<P style="MARGIN: 0cm 0cm 10pt" class=MsoNormal><o:p><FONT size=3 face=Calibri>&nbsp;</FONT></o:p></P>
<P style="MARGIN: 0cm 0cm 10pt" class=MsoNormal><o:p></o:p><FONT size=3><FONT face=Calibri>Beklenilmeyen durumları tekrar gözden geçirelim :<o:p></o:p></FONT></FONT></P>
<P style="MARGIN: 0cm 0cm 10pt" class=MsoNormal><B style="mso-bidi-font-weight: normal"><SPAN style="LINE-HEIGHT: 115%; FONT-SIZE: 12pt; mso-bidi-font-size: 11.0pt"><FONT face=Calibri>Hata alınan durumlar</FONT></SPAN></B></P>
<P style="MARGIN: 0cm 0cm 10pt" class=MsoNormal><FONT size=3><FONT face=Calibri>#1 Uygulama bir süre düzgün şekilde çalışıyor ancak herhangi bir anda “Beklenmeyen hata oluştu” gibi bir mesaj çıkıyor ve “tamam”a bastığınızda uygulama kapanıyor. Ya da bu uyarı dahi çıkmıyor ve uygulama kapanıyor.<o:p></o:p></FONT></FONT></P>
<P style="MARGIN: 0cm 0cm 10pt" class=MsoNormal><FONT size=3><FONT face=Calibri>Nasıl dump dosyası toplanır ?<o:p></o:p></FONT></FONT></P>
<P style="MARGIN: 0cm 0cm 10pt" class=MsoNormal><FONT size=3><FONT face=Calibri>Yapılması gereken uygulama çalışmaya başladıktan sonra debugger’ı “crash” modda çalıştırmak ve uygulama beklenmedik şekilde kapanana kadar beklemek. Amacımız hangi exception’ndan ötürü uygulamanın kapandığını anlamak. Daha sonra dump dosyası içinde exception'a yol açan call stack'i inceleyeceğiz.</FONT></FONT></P>
<P style="MARGIN: 0cm 0cm 10pt" class=MsoNormal><o:p><FONT size=3 face=Calibri>&nbsp;</FONT></o:p></P>
<P style="MARGIN: 0cm 0cm 10pt" class=MsoNormal><FONT size=3><FONT face=Calibri>#2 Uygulama bir süre düzgün çalışıyor.&nbsp;Ancak, belli bir işlevi çalıştırmak istediğinizde size hata mesajı döndürüyor. Mesajı kapattığınızda uygulama kapanmıyor ve geri kalan işlevler beklendiği gibi çalışmaya devam ediyor. <o:p></o:p></FONT></FONT></P>
<P style="MARGIN: 0cm 0cm 10pt" class=MsoNormal><FONT size=3><FONT face=Calibri>Nasıl dump dosyası toplanır ?<o:p></o:p></FONT></FONT></P>
<P style="MARGIN: 0cm 0cm 10pt" class=MsoNormal><FONT size=3><FONT face=Calibri>Hata mesajının gösterildiği anda debugger’i “hang” modda çalıştırmak. Amacımız MessageBox’ı gösteren call stack’i bulmak olacaktır. Buradaki ümidimiz mesaja yol açan fonksiyonların callstack'te hala mevcut olmaları.</FONT></FONT></P>
<P style="MARGIN: 0cm 0cm 10pt" class=MsoNormal><o:p><FONT size=3 face=Calibri>&nbsp;</FONT></o:p></P>
<P style="MARGIN: 0cm 0cm 10pt" class=MsoNormal><FONT size=3><FONT face=Calibri>#3 Uygulama çalıştıktan bir süre sonra yetersiz kaynaklarla ilgili mesajlar verir veya sistem/uygulama günlüklerine kayıt atmaya başlar. Kimi zaman uygulama kapanmaz ancak kesinlikle beklendiği gibi de davranmaz. <o:p></o:p></FONT></FONT></P>
<P style="MARGIN: 0cm 0cm 10pt" class=MsoNormal><FONT size=3><FONT face=Calibri>Nasıl dump dosyası alınır?<o:p></o:p></FONT></FONT></P>
<P style="MARGIN: 0cm 0cm 10pt" class=MsoNormal><FONT size=3><FONT face=Calibri>Bu kez soruya soruyla yanıt vereceğiz. Yapmamız gereken ilk şey dump almak mıdır ? Hayır! Öncelikle&nbsp;hangi kaynağın&nbsp;kullanılıp geri verilmediğini anlamalıyız. Örneğin, artan, uygulamanın sanal bellek alanı mıdır,&nbsp;yoksa işletim sistemi nesneleri (&nbsp;dosya, thread, vs&nbsp;) midir? Bunların yanıtı önce task manager’dan bu tip değerleri kontrol etmek, daha sonra uygulamanın çalışmaya başladığı andan itibaren sorun çıkarmaya başladığı zamana kadar performans sayaçları ile log toplayıp bir artış trendi gözlemlemeye çalışmaktır. Eğer bunları yapmaya fırsatımız olmadıysa o zaman bir hang dump almak işe yarayabilir.&nbsp;Elbette, bu dump dosyası büyük ihtimalle sadece neyin fazla kullanıldığını gösterecektir. Buna neden olan sebebi göstermeyecektir. Teorik olarak bir dump’tan sebebi öğrenme ihtimali de var ancak bunun için gerçekten şanslı olmalısınız ve uygulamanın kaynak kodunu yakından tanımalısınız.<o:p></o:p></FONT></FONT></P>
<P style="MARGIN: 0cm 0cm 10pt" class=MsoNormal><o:p><FONT size=3 face=Calibri>&nbsp;</FONT></o:p></P>
<P style="MARGIN: 0cm 0cm 10pt" class=MsoNormal><B style="mso-bidi-font-weight: normal"><SPAN style="LINE-HEIGHT: 115%; FONT-SIZE: 12pt; mso-bidi-font-size: 11.0pt"><FONT face=Calibri>Uygulamanın yanıt veremez hale gelmesi <o:p></o:p></FONT></SPAN></B></P>
<P style="MARGIN: 0cm 0cm 10pt" class=MsoNormal><FONT size=3><FONT face=Calibri>Bu tip durumlarda yanıtlanması gereken iki soru var :<o:p></o:p></FONT></FONT></P>
<P style="MARGIN: 0cm 0cm 10pt" class=MsoNormal><FONT size=3><FONT face=Calibri>#1 Uygulamanın işlemci kullanımı ne düzeyde?<o:p></o:p></FONT></FONT></P>
<P style="MARGIN: 0cm 0cm 10pt" class=MsoNormal><FONT size=3><FONT face=Calibri>#2 Yanıt vermeme durumu ne kadar sürüyor?<o:p></o:p></FONT></FONT></P>
<P style="MARGIN: 0cm 0cm 10pt" class=MsoNormal><o:p><FONT size=3 face=Calibri>&nbsp;</FONT></o:p></P>
<P style="MARGIN: 0cm 0cm 10pt" class=MsoNormal><FONT size=3><FONT face=Calibri>Eğer işlemci kullanımı yüksek ( örneğin uygulama en az bir işlemcinin tamamını kullanıyorsa &gt; %90 ) ve bu durum bir kez başladı mı uygulama kapanana kadar devam ediyorsa o zaman birer dakika arayla 3 kez “hang” mode dump almak gerekir. Bu durumlar genellikle uygulamanın sonsuz bir döngüye girmesinden kaynaklanır. Dump dosyalarında aynı thread’lere ait callstack’lerdeki ortak payda aranacaktır.<o:p></o:p></FONT></FONT></P>
<P style="MARGIN: 0cm 0cm 10pt" class=MsoNormal><FONT size=3><FONT face=Calibri>Eğer uygulamanın, işlemci kullanımı yüksek ve bu durum belirli bir süre devam ediyorsa ve sonra işlemci kullanımı normal oranlarına geri dönüyorsa mümkün olduğunca çok dump dosyası toplamak isabetli olacaktır. Eşit aralıklarla 4 tane dump almak iyi bir başlangıçtır. Ancak, bu durumlarda ( anlık yükseliş ) sadece dump dosyalarının içeriği yeterli olmayacaktır. Performans monitor yardımıyla sistemde diğer yükselen değerleri de gözlemlemek gerekir. Örneğin, disk I/O'su da artıyor mu? Sisteme gelen istek sayısında bir artış var mı? Çünkü; genellikle bu durum birim zaman içindeki istek sayısının artmasından kaynaklanır.<o:p></o:p></FONT></FONT></P>
<P style="MARGIN: 0cm 0cm 10pt" class=MsoNormal><FONT size=3><FONT face=Calibri>Eğer uygulamanın, işlemci kullanımı düşük ( neredeyse 0 ) ve bu durum uygulama kapanana kadar devam ediyorsa ve uygulama hiçbir isteğeye yanıt vermiyorsa o zaman bir kez “hang” dump almak yeterlidir. Bu tip durumlar, genellikle sonsuz bir bekleyişten kaynaklanır. Dump dosyasında thread’lerin callstack’leri incelenerek neyin beklendiğini ve neden yanıt alınamadığı araştırılır.<o:p></o:p></FONT></FONT></P>
<P style="MARGIN: 0cm 0cm 10pt" class=MsoNormal><FONT size=3><FONT face=Calibri>Eğer uygulamanın işlemci kullanımı düşük ve bu durum bir süre devam edip sonrasında çözülüyorsa o zaman durağan süre boyunca eşit aralıklarla 3-4 kez “hang” mode’da dump almak uygun olacaktır. Bu tip durumlar, genelikle uygulamanın başka bir uygulamadan yanıt beklemesinden kaynaklanır.</FONT></FONT></P>
<P style="MARGIN: 0cm 0cm 10pt" class=MsoNormal><FONT size=3><FONT face=Calibri><o:p>&nbsp;</o:p></FONT></FONT></P>
<P style="MARGIN: 0cm 0cm 10pt" class=MsoNormal><FONT size=3><FONT face=Calibri><o:p>Son söz olarak, tek bir defa dump dosyası üretmek her zaman sorunun kaynağını aydınlatmada yardımcı olmayabilir. Aynı işlem ve hatta farklı modlarda tekrar dump almak gerekebilir.</o:p></FONT></FONT></P>
<P style="MARGIN: 0cm 0cm 10pt" class=MsoNormal><FONT size=3><FONT face=Calibri><o:p>Hoşçakalın</o:p></FONT></FONT></P>
<P style="MARGIN: 0cm 0cm 10pt" class=MsoNormal><FONT size=3><FONT face=Calibri><o:p>-faik</o:p></FONT></FONT></P>
<P style="MARGIN: 0cm 0cm 10pt" class=MsoNormal><FONT size=3><FONT face=Calibri><o:p></o:p></FONT></FONT>&nbsp;</P>]]></content:encoded>
    </item>
  </channel>
</rss>