Merhaba, bu yazımda sizlere Crash Durumlarında Procdump Kullanımı: Dump Analizi ve Komut Örnekleri konusundan detaylı bir şekilde bahsedeceğim. Bir sistem veya uygulama aniden çöktüğünde (crash, servis durması, BSOD), en kritik aşama dump dosyasını doğru şekilde almak ve hatanın kaynağını tespit etmektir.
Dump dosyası, o anda sistemin veya uygulamanın bellek durumunu kayıt altına alır. Bu sayede hatanın kök nedeni (Root Cause Analysis – RCA) tespit edilebilir. Bu makalede, dump anında yapılması gereken adımları, hangi araçların kullanılacağını ve özellikle Procdump ile hızlı dump alma yöntemini adım adım inceleyeceğim.
Dump Nedir ve Neden Önemlidir?
Dump (Memory Dump), bir uygulama veya sistem çökmesi sırasında bellek içeriğinin kopyalanarak .dmp dosyası olarak kaydedilmesidir.
Bu dosya, çökme anındaki tüm stack, thread, modül ve bellek bilgilerini içerir.
Hata analizi, bu dosyalar üzerinde yapılır.
En yaygın dump türleri
| Dump Türü | Açıklama |
| Mini Dump | Küçük boyutlu, temel hata bilgilerini içerir. |
| Kernel Dump | İşletim sisteminin çekirdek belleğini içerir. |
| Complete Dump | RAM’in tamamını kaydeder. |
| User Mode Dump | Belirli bir uygulamanın belleğini alır (örneğin w3wp.exe). |
Dump Anında Yapılması Gereken Adımlar
Çökme Türünü Belirleyin
Öncelikle neyin çöktüğünü anlamak gerekir:
- Sistem (BSOD) mi?
- Belirli bir uygulama (ör. w3wp.exe, sqlservr.exe) mı?
- Yoksa servis mi kilitlendi?
Bu tespit, hangi yöntemle dump alınacağını belirler.
Dump Dosyasını Hızlıca Alın
Dump almanın en hızlı ve kontrollü yolu, Microsoft Sysinternals Procdump aracını kullanmaktır.
Procdump, sistem yöneticileri arasında en yaygın kullanılan dump alma aracıdır çünkü hem manuel hem de otomatik dump oluşturabilir.
Procdump ile Dump Alma
Procdump’u İndirme
Microsoft’un resmi Sysinternals sayfasından indirin:
Yönetici Olarak Çalıştırın
procdump.exe dosyasını yönetici haklarıyla çalıştırın.
Dump dosyaları kaydedileceği klasörü önceden oluşturun (örneğin C:\dumps\).
Belirli Bir Uygulama İçin Dump Alın
Örneğin notepad.exe için:
procdump -ma notepad.exe C:\dumps\notepad_full.dmp
- -ma: Tam bellek (Full Memory Dump) alır.
- C:\dumps\: Dump dosyasının kaydedileceği dizin.
Bu komut, uygulamanın o anki bellek durumunu tam olarak kaydeder.
Otomatik Dump Alma Senaryoları
Uygulama Çökmesi Durumunda Otomatik Dump
procdump -e -ma myapp.exe C:\dumps\
- -e: Uygulama crash olduğunda dump oluşturur.
- -ma: Full dump üretir.
Bu senaryo, IIS servisleri (ör. w3wp.exe) veya arka plan çalışan uygulamalarda sıkça kullanılır.
CPU Kullanımı Yükseldiğinde Dump Alma
procdump -ma -c 90 -s 5 myapp.exe C:\dumps\
- -c 90: CPU %90 olduğunda dump oluşturur.
- -s 5: 5 saniye boyunca bu eşiğin korunmasını bekler.
Bu yöntem, performans problemleri veya bellek sızıntılarını tespit etmek için idealdir.
Servis İzleme
procdump -ma -e w3wp.exe C:\dumps\
Bu komut, her IIS process crash’inde otomatik dump üretir.
Her dump şu şekilde isimlendirilir:
C:\dumps\w3wp_20251013_1432.dmp
Dump Dosyasını İnceleme
Dump dosyasını analiz etmek için aşağıdaki araçlar kullanılır:
| Araç | Kullanım Amacı |
| WinDbg | En kapsamlı analiz aracı. Dump dosyasındaki exception, stack ve thread bilgilerini detaylı gösterir. |
| Visual Studio | Kod seviyesinde hata tespiti yapabilir. Özellikle geliştiriciler için uygundur. |
| DebugDiag | Otomatik dump toplama ve analiz raporu oluşturur. IIS ortamlarında idealdir. |
WinDbg ile Örnek Analiz
!analyze -v
Çıktı örneği:
EXCEPTION_CODE: 0xc0000005 (Access Violation)
FAULTING_MODULE: myapp.dll
STACK_TEXT:
00000000`0014f2c0 myapp!ProcessData+0x1a
00000000`0014f320 kernel32!BaseThreadInitThunk+0x14
Bu analiz, hatanın myapp.dll modülündeki bellek erişim ihlalinden kaynaklandığını gösterir.
Dump Anında Dikkat Edilmesi Gerekenler
| Yapılmaması Gerekenler | Neden |
| Dump alınmadan servisi yeniden başlatmak | Hatanın kanıtı kaybolur. |
| Dump dosyasını manuel açmak | .dmp dosyası sadece analiz araçlarıyla açılabilir. |
| Yetersiz disk alanında dump almak | Complete dump GB’larca yer kaplayabilir. |
Dump Analizi Süreci
[Crash] ➜ [Procdump ile Dump Al] ➜ [WinDbg veya DebugDiag ile Aç] ➜ [!analyze -v] ➜ [Root Cause Analizi]
Bu akış, sistem yöneticilerinin bir çökme anında doğru sırayla ve veri kaybı olmadan müdahale etmesini sağlar.
Dump anında doğru adımları atmak, olası sistem kesintilerini en aza indirir.
Procdump, hem manuel hem de otomatik dump alma yeteneğiyle profesyonel ortamların vazgeçilmez aracıdır.
Bir çökme anında:
- Uygulamanın adını tespit edin.
- Procdump ile uygun parametreyle dump alın.
- WinDbg veya Visual Studio ile analizi gerçekleştirin.
- Hata kodu ve modül bilgisine göre düzeltme adımlarını planlayın.
Doğru analiz, yalnızca hatayı bulmakla kalmaz, gelecekteki sistem kararlılığını da artırır.
Procdump Parametreleri ve Açıklamaları (Tüm Switch’lerle)
Procdump, Microsoft Sysinternals tarafından geliştirilen ve hem manuel hem de otomatik dump alma imkânı sağlayan güçlü bir komut satırı aracıdır.
Aşağıdaki tablo, Procdump’un tüm önemli parametrelerini ve kullanım senaryolarını teknik olarak açıklar:
| Parametre | Açıklama | Örnek Kullanım |
| -ma | Full Memory Dump alır. Tüm bellek içeriğini (heap, stack, thread, handle) kaydeder. | procdump -ma notepad.exe C:\dumps\ |
| -mp | Mini dump oluşturur. Full dump’a göre daha küçüktür, sadece temel hata bilgilerini içerir. | procdump -mp calc.exe C:\dumps\ |
| -e | Uygulama crash (exception) yaşadığında otomatik olarak dump oluşturur. | procdump -e -ma myapp.exe C:\dumps\ |
| -c <yüzde> | CPU kullanımı belirtilen değeri geçtiğinde dump alır. Performans sorunları için kullanılır. | procdump -ma -c 90 myapp.exe |
| -s <saniye> | CPU eşiğinin kaç saniye boyunca aşılması gerektiğini belirtir. | procdump -ma -c 90 -s 5 myapp.exe |
| -h | Process asılı kaldığında (hung) dump alır. GUI uygulamalarda sık kullanılır. | procdump -h notepad.exe |
| -n <sayı> | Kaç adet dump alınacağını belirtir. Döngüsel izleme durumlarında kullanılır. | procdump -e -n 3 w3wp.exe |
| -t | CPU threshold dump oluşturulduktan sonra process’i sonlandırır. Özellikle test senaryolarında kullanılır. | procdump -c 95 -t myapp.exe |
| -d | Hedef process crash ettiğinde oluşturulan dump’ı otomatik olarak silmez. | procdump -d -e myapp.exe |
| -w <process_adi> | Belirtilen process çalışmaya başladığında izlemeye başlar. Servislerin yeniden başlatılması sonrası izleme için çok kullanışlıdır. | procdump -w sqlservr.exe -e -ma |
| -m <MB> | Bellek kullanımı belirtilen MB değerini aştığında dump oluşturur. Memory leak tespiti için mükemmel parametredir. | procdump -ma -m 2048 myapp.exe |
| -p <pid> | Process ID’ye göre hedef belirler. Özellikle aynı isimde birden fazla process varsa tercih edilir. | procdump -ma -p 5468 C:\dumps\ |
| -f <hata_türü> | Belirli bir exception türü için dump oluşturur. Hedefe yönelik hata analizlerinde kullanılır. | procdump -e 1 -f StackOverflowException myapp.exe |
| -r | Reflection dump modunu etkinleştirir. Dump alma sürecinde process’i durdurmadan dump alır. | procdump -r -ma myapp.exe |
| -o | Var olan dump dosyasının üzerine yazar. Aynı dosya adıyla çoklu denemelerde tercih edilir. | procdump -ma -o myapp.exe |
| -accepteula | Sysinternals lisans sözleşmesini otomatik kabul eder (komut dosyaları veya otomasyon için). | procdump -accepteula -ma notepad.exe |
En Sık Kullanılan Procdump Komut Örnekleri
Uygulama Crash Olduğunda Dump Al
procdump -e -ma myapp.exe C:\dumps\
CPU Kullanımı %90 Üzerine Çıktığında Dump Al
procdump -ma -c 90 -s 10 myapp.exe C:\dumps\
Bellek Kullanımı 2 GB’ı Aştığında Dump Al
procdump -ma -m 2048 myapp.exe C:\dumps\
Servis Yeniden Başladığında İzlemeye Devam Et
procdump -w w3wp.exe -e -ma C:\dumps\
Tek Bir Exception Türüne Göre Dump Al
procdump -e 1 -f NullReferenceException myapp.exe C:\dumps\
Profesyonel Kullanım Önerileri
- Planlı İzleme: Procdump’u görev zamanlayıcıya ekleyerek servisleri düzenli aralıklarla izleyebilirsiniz.
- Otomatik RCA Süreci: Dump dosyalarını belirli klasörlere toplayıp WinDbg veya DebugDiag ile otomatik analiz ettirebilirsiniz.
- Sunucu Ortamında Kullanım: Özellikle IIS, SQL Server, Active Directory gibi servislerde Procdump + WinDbg kombinasyonu RCA sürecini hızlandırır.
Dump Analiz Zinciri
[Crash/Freeze] ➜ [Procdump ile Dump Al] ➜ [WinDbg/Visual Studio ile Aç] ➜ [!analyze -v] ➜ [Root Cause Analysis]
Bu zincir, üretim ortamlarında sorunları veri kaybı olmadan, adım adım analiz etmenin en etkili yoludur. Dump analizi, sistem kararlılığını korumanın en temel adımlarından biridir.
Procdump, hem manuel hem de tetikleyici bazlı dump alma yeteneği sayesinde çökme, donma ve performans sorunlarının hızlıca tespit edilmesini sağlar.
Doğru parametrelerle kullanıldığında, Procdump + WinDbg ikilisi, BT altyapısında gerçek zamanlı kök neden analizi (RCA) yapmanın en güçlü yoludur. Bu yazımda sizlere Crash Durumlarında Procdump Kullanımı: Dump Analizi ve Komut Örnekleri konusundan bahsettim. Faydalı olması dileğiyle.