C#

2011-05-04 9 views
17

kullanarak bellek dökümü alma System.Diagnostics.Process nesnem var. Benim C# programı bazı durumlar için izliyor. Durum vurulduğunda, İşlemin tam bir belleğini almak istiyorum.C#

Bunu başarmanın en iyi yolu nedir?

CLR tarafından sağlanan bir yolu var mı?

+0

Tam * * bellek dökümü:

[DllImport("dbghelp.dll", EntryPoint = "MiniDumpWriteDump", CallingConvention = CallingConvention.StdCall, CharSet = CharSet.Unicode, ExactSpelling = true, SetLastError = true)] [return: MarshalAs(UnmanagedType.Bool)] public static extern bool MiniDumpWriteDump( IntPtr hProcess, uint processId, SafeHandle hFile, MINIDUMP_TYPE dumpType, IntPtr expParam, IntPtr userStreamParam, IntPtr callbackParam); 

Bir örnek bu projenin kodunu kontrol edebilir misin? "Tüm adres alanı" nda olduğu gibi? – Jon

cevap

11

ProcDump from Sysinternals'u kullanabilir ve gerektiğinde C# programınızı çağırabilirsiniz.

Process.Start("procdump " + otherProgramPID.ToString());