{"id":8704,"date":"2011-01-28T23:40:00","date_gmt":"2011-01-28T21:40:00","guid":{"rendered":"https:\/\/fatihboy.com\/post\/csharp-ile-hata-mini-dokumunu-almak"},"modified":"2011-01-28T23:40:00","modified_gmt":"2011-01-28T21:40:00","slug":"csharp-ile-hata-mini-dokumunu-almak","status":"publish","type":"post","link":"https:\/\/fatihboy.com\/en\/csharp-ile-hata-mini-dokumunu-almak\/","title":{"rendered":"C# ile Hata Mini D\u00f6k\u00fcm\u00fcn\u00fc Almak"},"content":{"rendered":"<p>&nbsp;&nbsp;&nbsp; Hata ay\u0131klama konusunda \u015fimdiye kadarki payla\u015f\u0131mlar\u0131mda sizlere \u00f6nemli bilgiler aktarabildi\u011fimi umuyorum. Bu makale serisinde en ba\u015f\u0131ndan, daha uygulamalar\u0131m\u0131z\u0131 geli\u015ftirirken nas\u0131l <a href=\"\/en\/?p=8572\">log tutarak olu\u015fabilecek hatalar hakk\u0131nda bilgi kaydedebilece\u011fimizi<\/a> g\u00f6rm\u00fc\u015ft\u00fck. Devam\u0131nda \u00e7al\u0131\u015fan bir i\u015flemin hata d\u00f6k\u00fcm\u00fcn\u00fc yazaca\u011f\u0131m\u0131z <a href=\"\/en\/?p=8624\">bir C# program\u0131yla<\/a> ya da <a href=\"\/en\/?p=8651\">ADPlus kullanarak<\/a> nas\u0131l alabilece\u011fimizi \u00f6\u011frenmi\u015f, son olarak da debugger mant\u0131\u011f\u0131n\u0131 \u00f6\u011frenerek Win32 uygulamalar\u0131 i\u00e7in <a href=\"\/en\/?p=8667\">basit bir debugger<\/a> geli\u015ftirmi\u015ftik.<\/p>\n\n\n\n<p>&nbsp;&nbsp;&nbsp; Bu makalemde daha \u00f6nceden sizlerle payla\u015ft\u0131\u011f\u0131m iki bilgiyi, <a href=\"\/en\/?p=8624\">C# ile mini d\u00f6k\u00fcm\u00fc alma <\/a>ve <a href=\"\/en\/?p=8667\">Win32 debugger yazma<\/a>, nas\u0131l hata ay\u0131klamada birlikte kullanabilece\u011fimizi anlat\u0131yor olaca\u011f\u0131m. Makalemin sonunda olu\u015fturmu\u015f olaca\u011f\u0131m\u0131z uygulama, i\u015flev olarak <a href=\"\/en\/?p=8651\">ADPlus ile Hata D\u00f6k\u00fcm\u00fc<\/a> makalemde sizlerle payla\u015ft\u0131\u011f\u0131m ADPlus uygulamas\u0131n\u0131n Hata\/\u00c7ak\u0131lma (Crash) modu ile benzer bir i\u015fleve sahip olacakt\u0131r.<\/p>\n\n\n\n<p>&nbsp;&nbsp;&nbsp; C# ile mini d\u00f6k\u00fcm\u00fc almak i\u00e7in geli\u015ftirdi\u011fimiz, a\u015fa\u011f\u0131da ekran g\u00f6r\u00fcnt\u00fcs\u00fcn\u00fc bulaca\u011f\u0131n\u0131z, \u00f6rnek uygulamay\u0131 hat\u0131rlay\u0131n;<\/p>\n\n\n\n<figure class=\"wp-block-image\"><a href=\"https:\/\/fatihboy.com\/wp-content\/uploads\/2011\/01\/MiniDump1.png\"><img decoding=\"async\" src=\"https:\/\/fatihboy.com\/wp-content\/uploads\/2011\/01\/MiniDump_thumb1.png\" alt=\"MiniDump\" \/><\/a><\/figure>\n\n\n\n<p>&nbsp;&nbsp;&nbsp; Geli\u015ftirdi\u011fimiz bu uygulama, &#8220;<em>Se\u00e7ili \u0130\u015flemin Dump&#8217;\u0131n\u0131 Al<\/em>&#8221; butonuna bas\u0131lmas\u0131 ile Win32 API&#8217;lerini kullanarak belirtilen i\u015fin mini hata d\u00f6k\u00fcm\u00fcn\u00fc almaktayd\u0131. Ger\u00e7ek hayatta, bu uygulamaya ihtiya\u00e7 duydu\u011funuz zamanlar muhtemelen geli\u015ftirdi\u011finiz uygulamada sorunla kar\u015f\u0131la\u015ft\u0131\u011f\u0131n\u0131z zamanlar olacakt\u0131r. B\u00f6yle bir durumda da anl\u0131k olarak al\u0131nacak bir hata an\u0131nda h\u0131zla bu butona basarak mini hata d\u00f6k\u00fcm\u00fc almak b\u00fcy\u00fck bir olas\u0131l\u0131kla da m\u00fcmk\u00fcn olmayacakt\u0131r. B\u00f6ylesi bir durumda, hata d\u00f6k\u00fcm\u00fc alan uygulamadan bekletiniz yaz\u0131l\u0131m\u0131n\u0131z\u0131 takip ederek hata durumu olu\u015ftu\u011fu anda i\u015fleyi\u015fi durdurup bir mini hata d\u00f6k\u00fcm\u00fc almas\u0131 olacakt\u0131r.<\/p>\n\n\n\n<p>&nbsp;&nbsp;&nbsp; Debugger yazd\u0131\u011f\u0131m\u0131z makaleyi hat\u0131rlayacak olursak; Win32 API&#8217;lerini kullanarak \u00e7al\u0131\u015fan bir i\u015fleme ba\u011flanarak dll y\u00fcklenmesi\/kald\u0131r\u0131lmas\u0131, i\u015flem ve i\u015f par\u00e7ac\u0131\u011f\u0131 ba\u015flat\u0131lmas\u0131\/sonlanmas\u0131 gibi pek \u00e7ok olay bildirimi yan\u0131nda hata olaylar\u0131 da iletilmekteydi. Asl\u0131na bakarsan\u0131z bu hata bildirimleri de tam da yukar\u0131daki isterimize uygun. Bu durumda mini hata d\u00f6k\u00fcm\u00fc uygulamam\u0131za k\u0131smi debugger yeteneklerini de katacak olursak istedi\u011fimiz uygulamaya ula\u015fm\u0131\u015f olaca\u011f\u0131z. Her ne kadar debugger&#8217;lara pek \u00e7ok olay hakk\u0131nda bilgi iletiliyor olsa da, bizim ihtiyac\u0131m\u0131z olan tek bilgi hata olay bildirimidir. Bu durumda bir i\u015fleme ba\u011flanarak gelen olay bildirimlerinden sadece hata bildirimini dinleyen ve bu bildirim geldi\u011finde de i\u015flemin mini hata d\u00f6k\u00fcm\u00fcn\u00fc alan bir uygulama ihtiyac\u0131m\u0131z\u0131 kar\u015f\u0131layacakt\u0131r.<\/p>\n\n\n\n<figure class=\"wp-block-image\"><a href=\"https:\/\/fatihboy.com\/wp-content\/uploads\/2011\/01\/yeni_MiniDump.png\"><img decoding=\"async\" src=\"https:\/\/fatihboy.com\/wp-content\/uploads\/2011\/01\/yeni_MiniDump_thumb.png\" alt=\"Yeni haliyle mini sump uygulama ekran\u0131\" \/><\/a><\/figure>\n\n\n\n<p>&nbsp;&nbsp;&nbsp; Yukar\u0131daki ekran g\u00f6r\u00fcnt\u00fcs\u00fcnden de g\u00f6rece\u011finiz gibi, \u00f6nceki mini d\u00f6k\u00fcm uygulamam\u0131za ek bir buton daha ekleyerek hata durumunda d\u00f6k\u00fcm al\u0131nmas\u0131 se\u00e7ene\u011fi sunabiliriz. Kullan\u0131c\u0131 bu butona t\u0131klad\u0131\u011f\u0131nda, se\u00e7ili olan i\u015fleme bir debugger gibi ba\u011flan\u0131lacak ve debug d\u00f6ng\u00fcs\u00fc ba\u015flat\u0131lacakt\u0131r; fakat bu debug d\u00f6ng\u00fcs\u00fc debugger makalemizdekinden farkl\u0131 olarak g\u00f6nderilen olay bildirimleri aras\u0131ndan sadece hata ve sonlanma bildirimlerini dinleyecek, bunlar\u0131 event olarak \u00f6ny\u00fcze bildirecektir. Bu bildirimleri alan \u00f6ny\u00fcz ise daha \u00f6nce oldu\u011fu gibi Win32 API&#8217;leri yard\u0131m\u0131yla o an i\u015fletim sistemince durdurulmu\u015f olan bu i\u015flemin mini d\u00f6k\u00fcm\u00fcn\u00fc alacakt\u0131r. C# ile mini hata d\u00f6k\u00fcm\u00fc i\u00e7in geli\u015ftirdi\u011fimiz projemizde yer alan <strong>IslemIzleyici<\/strong> s\u0131n\u0131f\u0131 i\u00e7erisine Win32 debugger&#8217;\u0131m\u0131zda yer alan <strong>Debugger<\/strong> s\u0131n\u0131f\u0131 i\u00e7erisindeki debug mant\u0131\u011f\u0131n\u0131 kopyalay\u0131p, <strong>OlayBilgisiniIsle<\/strong> fonksiyonunu a\u015fa\u011f\u0131daki \u015fekilde g\u00fcncellemeliyiz;<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"csharp\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">private ContinueStatus OlayBilgisiniIsle(SynchronizationContext synchronizationContext, DebugEventHeader header, DebugEventUnion union) {\n    var debugState = ContinueStatus.DBG_CONTINUE;\n    var debugEventArgs = new DebugEventArgs(header, union);\n\n    switch (header.dwDebugEventCode) {\n        case DebugEventCodes.EXCEPTION_DEBUG_EVENT:\n            synchronizationContext.Send(HataOlustuBildir, debugEventArgs);\n            debugState = debugEventArgs.DebugState;\n            break;\n        case DebugEventCodes.EXIT_PROCESS_DEBUG_EVENT:\n            synchronizationContext.Send(IslemSonlandiBildir, debugEventArgs);\n            debugState = debugEventArgs.DebugState;\n            break;\n        case DebugEventCodes.CREATE_THREAD_DEBUG_EVENT:\n        case DebugEventCodes.CREATE_PROCESS_DEBUG_EVENT:\n        case DebugEventCodes.EXIT_THREAD_DEBUG_EVENT:\n        case DebugEventCodes.LOAD_DLL_DEBUG_EVENT:\n        case DebugEventCodes.UNLOAD_DLL_DEBUG_EVENT:\n        case DebugEventCodes.OUTPUT_DEBUG_STRING_EVENT:\n            break;\n        case DebugEventCodes.RIP_EVENT:\n            synchronizationContext.Send(IslemSonlandiBildir, debugEventArgs);\n            debugState = debugEventArgs.DebugState;\n            break;\n    }\n\n    return debugState;\n}\n\n#region Olay Bildirimleri\nprivate void HataOlustuBildir(object veri) {\n    var debugEventArgs = (DebugEventArgs)veri;\n\n    if (HataOlustu != null) {\n        HataOlustu(this, debugEventArgs);\n    }\n}\n\nprivate void IslemSonlandiBildir(object veri) {\n    var debugEventArgs = (DebugEventArgs)veri;\n\n    if (IslemSonlandi != null) {\n        IslemSonlandi(this, debugEventArgs);\n    }\n\n    izle = false;\n}\n#endregion<\/pre>\n\n\n\n<p>&nbsp;&nbsp;&nbsp; Uygulamam\u0131za ekledi\u011fimiz &#8220;<em>Se\u00e7ili \u0130\u015flemin Dump&#8217;\u0131n\u0131 Al<\/em>&#8221; butonuna t\u0131kland\u0131\u011f\u0131nda i\u015fleme ba\u011flanarak hatalara kar\u015f\u0131 takip etmek i\u00e7in ise a\u015fa\u011f\u0131daki kodlar <strong>AnaEkran<\/strong> s\u0131n\u0131f\u0131na eklenmeli;<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"csharp\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">private void hataDokumuAl_Click(object sender, EventArgs e) {\n    var seciliIslem = (Process)islemListesi.SelectedRows[0].DataBoundItem;\n    var onerilenDosyaAdi = seciliIslem.ProcessName + \".mdmp\";\n\n    dosyaSaklamaDiyalogu.FileName = onerilenDosyaAdi;\n    if (dosyaSaklamaDiyalogu.ShowDialog() == DialogResult.OK) {\n        progressPanel.Visible = true;\n\n        var islemIzleyici = new IslemIzleyici(seciliIslem) { Tag = dosyaSaklamaDiyalogu.FileName };\n        islemIzleyici.HataOlustu += islemIzleyici_HataOlustu;\n        islemIzleyici.IslemSonlandi += islemIzleyici_IslemSonlandi;\n\n        islemIzleyici.Izle();\n    }\n}\n\nprivate void islemIzleyici_IslemSonlandi(object sender, DebugEventArgs args) {\n    var islemIzleyici = (IslemIzleyici)sender;\n\n    islemIzleyici.IslemSonlandi -= islemIzleyici_IslemSonlandi;\n    islemIzleyici.HataOlustu -= islemIzleyici_HataOlustu;\n\n    progressPanel.Visible = false;\n}\n\nprivate void islemIzleyici_HataOlustu(object sender, DebugEventArgs args) {\n    if (args.Union.Exception.ExceptionRecord.ExceptionCode != ExceptionCode.STATUS_BREAKPOINT &amp;&amp; !args.Union.Exception.dwFirstChance) {\n        var islemIzleyici = (IslemIzleyici)sender;\n\n        using (var dumpFileStream = new FileStream((string)islemIzleyici.Tag, FileMode.Create, FileAccess.ReadWrite, FileShare.Write)) {\n            MiniDumpWriteDump(islemIzleyici.Islem.Handle,\n                    (uint)islemIzleyici.Islem.Id,\n                    dumpFileStream.SafeFileHandle,\n                    0x00000002, \/\/MiniDumpWithFullMemory, http:\/\/msdn.microsoft.com\/en-us\/library\/ms680519%28v=VS.85%29.aspx\n                    IntPtr.Zero,\n                    IntPtr.Zero,\n                    IntPtr.Zero);\n        }\n\n        MessageBox.Show(\"Mini Dump ba\u015far\u0131yla al\u0131nd\u0131\");\n    }\n\n    args.DebugState = ContinueStatus.DBG_EXCEPTION_NOT_HANDLED;\n}<\/pre>\n\n\n\n<p>&nbsp;&nbsp;&nbsp; T\u00fcm ikinci \u015fans hata bildirimlerinde mini d\u00f6k\u00fcm alan ve ard\u0131ndan i\u015fletim sistemine <strong>DBG_EXCEPTION_NOT_HANDLED<\/strong> mesaj\u0131n\u0131 ileten bu uygulamay\u0131 kendi i\u015f mant\u0131\u011f\u0131n\u0131z do\u011frultusunda de\u011fi\u015ftirebilmeniz de m\u00fcmk\u00fcnd\u00fcr. Hat\u0131rlarsan\u0131z baz\u0131 istisnai durumlarda ilk \u015fans hata bildirimlerinin d\u00f6k\u00fcmleri daha detayl\u0131 bilgi verebiliyordu. Yaz\u0131l\u0131m geli\u015ftirici isterse sadece belirli bir hata kodu i\u00e7in mini d\u00f6k\u00fcm alabilir ya da sadece ilk bildirimlerde d\u00f6k\u00fcm alabilir. Ba\u015fka bir kullan\u0131m senaryosunda da hata bilgileri kullan\u0131c\u0131ya g\u00f6sterilerek mini d\u00f6k\u00fcm almay\u0131 isteyip istemedi\u011fi de sorulabilir.<\/p>\n\n\n\n<p>&nbsp;&nbsp;&nbsp; Alternatif olarak; bir Windows Forms uygulamas\u0131nda bu tarz bir y\u00f6ntem takip etmek yerine bir Windows Hizmeti geli\u015ftirilerek okunacak olan bir yap\u0131land\u0131rma dosyas\u0131ndan belirli i\u015flemin\/i\u015flemlerin takip edilmesi ve hata durumlar\u0131nda mini d\u00f6k\u00fcmlerinin al\u0131nmas\u0131 da m\u00fcmk\u00fcnd\u00fcr.<\/p>\n\n\n\n<p>&nbsp;&nbsp;&nbsp; Mini d\u00f6k\u00fcm alma ve bir i\u015flemin olay bildirimlerini yakalayabilme konusunda bilgi sahibi olunduktan sonra, bu bilgiler yukar\u0131da da \u00f6rneklemeye \u00e7al\u0131\u015ft\u0131\u011f\u0131m gibi \u00e7ok farkl\u0131 senaryolarda kullan\u0131labilir ve hatan\u0131n kayna\u011f\u0131na ula\u015fman\u0131z\u0131 kolayla\u015ft\u0131rabilir.<\/p>\n\n\n\n<p>&nbsp;&nbsp; A\u015fa\u011f\u0131da, makalemde bahsetti\u011fim ve hata durumunda mini d\u00f6k\u00fcm alabilen uygulaman\u0131n kaynak kodlar\u0131n\u0131 bulabilirsiniz.<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"alignleft\"><img loading=\"lazy\" decoding=\"async\" width=\"32\" height=\"32\" src=\"https:\/\/fatihboy.com\/wp-content\/uploads\/2011\/01\/Archive.png\" alt=\"alt\" class=\"wp-image-8633\" srcset=\"https:\/\/fatihboy.com\/wp-content\/uploads\/2011\/01\/Archive.png 32w, https:\/\/fatihboy.com\/wp-content\/uploads\/2011\/01\/Archive-12x12.png 12w\" sizes=\"auto, (max-width: 32px) 100vw, 32px\" \/><\/figure><\/div>\n\n\n\n<p><a href=\"https:\/\/fatihboy.com\/en\/post\/csharp-ile-hata-mini-dokumunu-almak\/minidump2\/\" rel=\"attachment wp-att-8706\">Hata Mini D\u00f6k\u00fcm\u00fc uygulamas\u0131<\/a><\/p>","protected":false},"excerpt":{"rendered":"<p>&nbsp;&nbsp;&nbsp; Hata ay\u0131klama konusunda \u015fimdiye kadarki payla\u015f\u0131mlar\u0131mda sizlere \u00f6nemli bilgiler aktarabildi\u011fimi umuyorum. Bu makale serisinde en ba\u015f\u0131ndan, daha uygulamalar\u0131m\u0131z\u0131 geli\u015ftirirken nas\u0131l log tutarak olu\u015fabilecek hatalar hakk\u0131nda bilgi kaydedebilece\u011fimizi g\u00f6rm\u00fc\u015ft\u00fck. Devam\u0131nda \u00e7al\u0131\u015fan bir i\u015flemin hata d\u00f6k\u00fcm\u00fcn\u00fc yazaca\u011f\u0131m\u0131z bir C# program\u0131yla ya da ADPlus kullanarak nas\u0131l alabilece\u011fimizi \u00f6\u011frenmi\u015f, son olarak da debugger mant\u0131\u011f\u0131n\u0131 \u00f6\u011frenerek Win32 uygulamalar\u0131 i\u00e7in&#8230;<\/p>\n<p><a class=\"read-more\" href=\"https:\/\/fatihboy.com\/en\/csharp-ile-hata-mini-dokumunu-almak\/\">Read More<\/a><\/p>","protected":false},"author":1,"featured_media":8709,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[77,28],"tags":[118],"class_list":["post-8704","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-csharp","category-turkce","tag-hata-ayiklama"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v26.7 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>C# ile Hata Mini D\u00f6k\u00fcm\u00fcn\u00fc Almak - Fatih Boy<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/fatihboy.com\/en\/csharp-ile-hata-mini-dokumunu-almak\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"C# ile Hata Mini D\u00f6k\u00fcm\u00fcn\u00fc Almak - Fatih Boy\" \/>\n<meta property=\"og:description\" content=\"&nbsp;&nbsp;&nbsp; Hata ay\u0131klama konusunda \u015fimdiye kadarki payla\u015f\u0131mlar\u0131mda sizlere \u00f6nemli bilgiler aktarabildi\u011fimi umuyorum. Bu makale serisinde en ba\u015f\u0131ndan, daha uygulamalar\u0131m\u0131z\u0131 geli\u015ftirirken nas\u0131l log tutarak olu\u015fabilecek hatalar hakk\u0131nda bilgi kaydedebilece\u011fimizi g\u00f6rm\u00fc\u015ft\u00fck. Devam\u0131nda \u00e7al\u0131\u015fan bir i\u015flemin hata d\u00f6k\u00fcm\u00fcn\u00fc yazaca\u011f\u0131m\u0131z bir C# program\u0131yla ya da ADPlus kullanarak nas\u0131l alabilece\u011fimizi \u00f6\u011frenmi\u015f, son olarak da debugger mant\u0131\u011f\u0131n\u0131 \u00f6\u011frenerek Win32 uygulamalar\u0131 i\u00e7in...Read More\" \/>\n<meta property=\"og:url\" content=\"https:\/\/fatihboy.com\/en\/csharp-ile-hata-mini-dokumunu-almak\/\" \/>\n<meta property=\"og:site_name\" content=\"Fatih Boy\" \/>\n<meta property=\"article:published_time\" content=\"2011-01-28T21:40:00+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/fatihboy.com\/wp-content\/uploads\/2011\/01\/kagit_thumb.png\" \/>\n\t<meta property=\"og:image:width\" content=\"209\" \/>\n\t<meta property=\"og:image:height\" content=\"208\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Fatih Boy\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Fatih Boy\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"6 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/fatihboy.com\/csharp-ile-hata-mini-dokumunu-almak\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/fatihboy.com\/csharp-ile-hata-mini-dokumunu-almak\/\"},\"author\":{\"name\":\"Fatih Boy\",\"@id\":\"https:\/\/fatihboy.com\/#\/schema\/person\/6b06a41d42eed36eaa0780fbeb774158\"},\"headline\":\"C# ile Hata Mini D\u00f6k\u00fcm\u00fcn\u00fc Almak\",\"datePublished\":\"2011-01-28T21:40:00+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/fatihboy.com\/csharp-ile-hata-mini-dokumunu-almak\/\"},\"wordCount\":935,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/fatihboy.com\/#\/schema\/person\/6b06a41d42eed36eaa0780fbeb774158\"},\"image\":{\"@id\":\"https:\/\/fatihboy.com\/csharp-ile-hata-mini-dokumunu-almak\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/fatihboy.com\/wp-content\/uploads\/2011\/01\/kagit_thumb.png\",\"keywords\":[\"Hata Ayiklama\"],\"articleSection\":[\"C#\",\"T\u00fcrk\u00e7e\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/fatihboy.com\/csharp-ile-hata-mini-dokumunu-almak\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/fatihboy.com\/csharp-ile-hata-mini-dokumunu-almak\/\",\"url\":\"https:\/\/fatihboy.com\/csharp-ile-hata-mini-dokumunu-almak\/\",\"name\":\"C# ile Hata Mini D\u00f6k\u00fcm\u00fcn\u00fc Almak - Fatih Boy\",\"isPartOf\":{\"@id\":\"https:\/\/fatihboy.com\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/fatihboy.com\/csharp-ile-hata-mini-dokumunu-almak\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/fatihboy.com\/csharp-ile-hata-mini-dokumunu-almak\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/fatihboy.com\/wp-content\/uploads\/2011\/01\/kagit_thumb.png\",\"datePublished\":\"2011-01-28T21:40:00+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/fatihboy.com\/csharp-ile-hata-mini-dokumunu-almak\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/fatihboy.com\/csharp-ile-hata-mini-dokumunu-almak\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/fatihboy.com\/csharp-ile-hata-mini-dokumunu-almak\/#primaryimage\",\"url\":\"https:\/\/fatihboy.com\/wp-content\/uploads\/2011\/01\/kagit_thumb.png\",\"contentUrl\":\"https:\/\/fatihboy.com\/wp-content\/uploads\/2011\/01\/kagit_thumb.png\",\"width\":209,\"height\":208},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/fatihboy.com\/csharp-ile-hata-mini-dokumunu-almak\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/fatihboy.com\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"C# ile Hata Mini D\u00f6k\u00fcm\u00fcn\u00fc Almak\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/fatihboy.com\/#website\",\"url\":\"https:\/\/fatihboy.com\/\",\"name\":\"Fatih Boy\",\"description\":\"Ki\u015fisel Web Sitesi\",\"publisher\":{\"@id\":\"https:\/\/fatihboy.com\/#\/schema\/person\/6b06a41d42eed36eaa0780fbeb774158\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/fatihboy.com\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https:\/\/fatihboy.com\/#\/schema\/person\/6b06a41d42eed36eaa0780fbeb774158\",\"name\":\"Fatih Boy\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/fatihboy.com\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/5b3de123ad95a2ffe30b75a54cee98b55f65185c6d6805b35088a3d945f2feb4?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/5b3de123ad95a2ffe30b75a54cee98b55f65185c6d6805b35088a3d945f2feb4?s=96&d=mm&r=g\",\"caption\":\"Fatih Boy\"},\"logo\":{\"@id\":\"https:\/\/fatihboy.com\/#\/schema\/person\/image\/\"},\"sameAs\":[\"https:\/\/fatihboy.com\"],\"url\":\"https:\/\/fatihboy.com\/en\/author\/fatih\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"C# ile Hata Mini D\u00f6k\u00fcm\u00fcn\u00fc Almak - Fatih Boy","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/fatihboy.com\/en\/csharp-ile-hata-mini-dokumunu-almak\/","og_locale":"en_US","og_type":"article","og_title":"C# ile Hata Mini D\u00f6k\u00fcm\u00fcn\u00fc Almak - Fatih Boy","og_description":"&nbsp;&nbsp;&nbsp; Hata ay\u0131klama konusunda \u015fimdiye kadarki payla\u015f\u0131mlar\u0131mda sizlere \u00f6nemli bilgiler aktarabildi\u011fimi umuyorum. Bu makale serisinde en ba\u015f\u0131ndan, daha uygulamalar\u0131m\u0131z\u0131 geli\u015ftirirken nas\u0131l log tutarak olu\u015fabilecek hatalar hakk\u0131nda bilgi kaydedebilece\u011fimizi g\u00f6rm\u00fc\u015ft\u00fck. Devam\u0131nda \u00e7al\u0131\u015fan bir i\u015flemin hata d\u00f6k\u00fcm\u00fcn\u00fc yazaca\u011f\u0131m\u0131z bir C# program\u0131yla ya da ADPlus kullanarak nas\u0131l alabilece\u011fimizi \u00f6\u011frenmi\u015f, son olarak da debugger mant\u0131\u011f\u0131n\u0131 \u00f6\u011frenerek Win32 uygulamalar\u0131 i\u00e7in...Read More","og_url":"https:\/\/fatihboy.com\/en\/csharp-ile-hata-mini-dokumunu-almak\/","og_site_name":"Fatih Boy","article_published_time":"2011-01-28T21:40:00+00:00","og_image":[{"width":209,"height":208,"url":"https:\/\/fatihboy.com\/wp-content\/uploads\/2011\/01\/kagit_thumb.png","type":"image\/png"}],"author":"Fatih Boy","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Fatih Boy","Est. reading time":"6 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/fatihboy.com\/csharp-ile-hata-mini-dokumunu-almak\/#article","isPartOf":{"@id":"https:\/\/fatihboy.com\/csharp-ile-hata-mini-dokumunu-almak\/"},"author":{"name":"Fatih Boy","@id":"https:\/\/fatihboy.com\/#\/schema\/person\/6b06a41d42eed36eaa0780fbeb774158"},"headline":"C# ile Hata Mini D\u00f6k\u00fcm\u00fcn\u00fc Almak","datePublished":"2011-01-28T21:40:00+00:00","mainEntityOfPage":{"@id":"https:\/\/fatihboy.com\/csharp-ile-hata-mini-dokumunu-almak\/"},"wordCount":935,"commentCount":0,"publisher":{"@id":"https:\/\/fatihboy.com\/#\/schema\/person\/6b06a41d42eed36eaa0780fbeb774158"},"image":{"@id":"https:\/\/fatihboy.com\/csharp-ile-hata-mini-dokumunu-almak\/#primaryimage"},"thumbnailUrl":"https:\/\/fatihboy.com\/wp-content\/uploads\/2011\/01\/kagit_thumb.png","keywords":["Hata Ayiklama"],"articleSection":["C#","T\u00fcrk\u00e7e"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/fatihboy.com\/csharp-ile-hata-mini-dokumunu-almak\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/fatihboy.com\/csharp-ile-hata-mini-dokumunu-almak\/","url":"https:\/\/fatihboy.com\/csharp-ile-hata-mini-dokumunu-almak\/","name":"C# ile Hata Mini D\u00f6k\u00fcm\u00fcn\u00fc Almak - Fatih Boy","isPartOf":{"@id":"https:\/\/fatihboy.com\/#website"},"primaryImageOfPage":{"@id":"https:\/\/fatihboy.com\/csharp-ile-hata-mini-dokumunu-almak\/#primaryimage"},"image":{"@id":"https:\/\/fatihboy.com\/csharp-ile-hata-mini-dokumunu-almak\/#primaryimage"},"thumbnailUrl":"https:\/\/fatihboy.com\/wp-content\/uploads\/2011\/01\/kagit_thumb.png","datePublished":"2011-01-28T21:40:00+00:00","breadcrumb":{"@id":"https:\/\/fatihboy.com\/csharp-ile-hata-mini-dokumunu-almak\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/fatihboy.com\/csharp-ile-hata-mini-dokumunu-almak\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/fatihboy.com\/csharp-ile-hata-mini-dokumunu-almak\/#primaryimage","url":"https:\/\/fatihboy.com\/wp-content\/uploads\/2011\/01\/kagit_thumb.png","contentUrl":"https:\/\/fatihboy.com\/wp-content\/uploads\/2011\/01\/kagit_thumb.png","width":209,"height":208},{"@type":"BreadcrumbList","@id":"https:\/\/fatihboy.com\/csharp-ile-hata-mini-dokumunu-almak\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/fatihboy.com\/"},{"@type":"ListItem","position":2,"name":"C# ile Hata Mini D\u00f6k\u00fcm\u00fcn\u00fc Almak"}]},{"@type":"WebSite","@id":"https:\/\/fatihboy.com\/#website","url":"https:\/\/fatihboy.com\/","name":"Fatih Boy","description":"Ki\u015fisel Web Sitesi","publisher":{"@id":"https:\/\/fatihboy.com\/#\/schema\/person\/6b06a41d42eed36eaa0780fbeb774158"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/fatihboy.com\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":["Person","Organization"],"@id":"https:\/\/fatihboy.com\/#\/schema\/person\/6b06a41d42eed36eaa0780fbeb774158","name":"Fatih Boy","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/fatihboy.com\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/5b3de123ad95a2ffe30b75a54cee98b55f65185c6d6805b35088a3d945f2feb4?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/5b3de123ad95a2ffe30b75a54cee98b55f65185c6d6805b35088a3d945f2feb4?s=96&d=mm&r=g","caption":"Fatih Boy"},"logo":{"@id":"https:\/\/fatihboy.com\/#\/schema\/person\/image\/"},"sameAs":["https:\/\/fatihboy.com"],"url":"https:\/\/fatihboy.com\/en\/author\/fatih\/"}]}},"brizy_media":[],"_links":{"self":[{"href":"https:\/\/fatihboy.com\/en\/wp-json\/wp\/v2\/posts\/8704","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/fatihboy.com\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/fatihboy.com\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/fatihboy.com\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/fatihboy.com\/en\/wp-json\/wp\/v2\/comments?post=8704"}],"version-history":[{"count":0,"href":"https:\/\/fatihboy.com\/en\/wp-json\/wp\/v2\/posts\/8704\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/fatihboy.com\/en\/wp-json\/wp\/v2\/media\/8709"}],"wp:attachment":[{"href":"https:\/\/fatihboy.com\/en\/wp-json\/wp\/v2\/media?parent=8704"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/fatihboy.com\/en\/wp-json\/wp\/v2\/categories?post=8704"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/fatihboy.com\/en\/wp-json\/wp\/v2\/tags?post=8704"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}