Fungsi MiniDumpWriteDump (minidumpapiset.h)
Menulis informasi minidump mode pengguna ke file yang ditentukan.
Sintaks
BOOL MiniDumpWriteDump(
[in] HANDLE hProcess,
[in] DWORD ProcessId,
[in] HANDLE hFile,
[in] MINIDUMP_TYPE DumpType,
[in] PMINIDUMP_EXCEPTION_INFORMATION ExceptionParam,
[in] PMINIDUMP_USER_STREAM_INFORMATION UserStreamParam,
[in] PMINIDUMP_CALLBACK_INFORMATION CallbackParam
);
Parameter
[in] hProcess
Handel untuk proses yang informasinya akan dihasilkan.
Handel ini harus memiliki akses PROCESS_QUERY_INFORMATION dan PROCESS_VM_READ ke proses. Jika menangani informasi akan dikumpulkan, akses PROCESS_DUP_HANDLE juga diperlukan. Untuk informasi selengkapnya, lihat Keamanan Proses dan Hak Akses. Pemanggil juga harus bisa mendapatkan akses THREAD_ALL_ACCESS ke utas dalam prosesnya. Untuk informasi selengkapnya, lihat Keamanan Utas dan Hak Akses.
[in] ProcessId
Pengidentifikasi proses yang informasinya akan dihasilkan.
[in] hFile
Handel ke file tempat informasi akan ditulis.
[in] DumpType
Jenis informasi yang akan dihasilkan. Parameter ini bisa menjadi satu atau beberapa nilai dari enumerasi MINIDUMP_TYPE .
[in] ExceptionParam
Penunjuk ke struktur MINIDUMP_EXCEPTION_INFORMATION yang menjelaskan pengecualian klien yang menyebabkan minidump dihasilkan. Jika nilai parameter ini adalah NULL, tidak ada informasi pengecualian yang disertakan dalam file minidump.
[in] UserStreamParam
Penunjuk ke struktur MINIDUMP_USER_STREAM_INFORMATION . Jika nilai parameter ini ADALAH NULL, tidak ada informasi yang ditentukan pengguna yang disertakan dalam file minidump.
[in] CallbackParam
Penunjuk ke struktur MINIDUMP_CALLBACK_INFORMATION yang menentukan rutinitas panggilan balik yaitu menerima informasi minidump yang diperluas. Jika nilai parameter ini ADALAH NULL, tidak ada panggilan balik yang dilakukan.
Nilai kembali
Jika fungsi berhasil, nilai yang dikembalikan adalah TRUE; jika tidak, nilai yang dikembalikan adalah FALSE. Untuk mengambil informasi kesalahan yang diperluas, panggil GetLastError. Perhatikan bahwa kesalahan terakhir akan menjadi nilai HRESULT .
Jika operasi dibatalkan, kode kesalahan terakhir adalah HRESULT_FROM_WIN32(ERROR_CANCELLED)
.
Keterangan
Fungsi MiniDumpCallback menerima informasi minidump yang diperluas dari MiniDumpWriteDump. Ini juga menyediakan cara bagi pemanggil untuk menentukan granularitas informasi yang ditulis ke file minidump, karena fungsi panggilan balik dapat memfilter informasi default.
MiniDumpWriteDump harus dipanggil dari proses terpisah jika memungkinkan, daripada dari dalam proses target yang dicadangkan. Ini terutama berlaku ketika proses target sudah tidak stabil. Misalnya, jika hanya crash. Kebuntuan loader adalah salah satu dari banyak potensi efek samping dari panggilan MiniDumpWriteDump dari dalam proses target. Jika memanggil MiniDumpWriteDump dari proses terpisah tidak dimungkinkan, maka disarankan untuk memiliki utas khusus yang tujuan utamanya adalah memanggil MiniDumpWriteDump. Ini dapat membantu memastikan bahwa tumpukan belum habis sebelum panggilan ke MiniDumpWriteDump.
MiniDumpWriteDump mungkin tidak menghasilkan jejak tumpukan yang valid untuk utas panggilan. Untuk mengatasi masalah ini, Anda harus mengambil status utas panggilan sebelum memanggil MiniDumpWriteDump dan menggunakannya sebagai parameter ExceptionParam . Salah satu cara untuk melakukan ini adalah dengan memaksa pengecualian di dalam blok __try/__except dan menggunakan informasi EXCEPTION_POINTERS yang disediakan oleh GetExceptionInformation. Atau, Anda dapat memanggil fungsi dari utas pekerja baru dan memfilter utas pekerja ini dari cadangan.
Semua fungsi DbgHelp, seperti ini, adalah utas tunggal. Oleh karena itu, panggilan dari lebih dari satu utas ke fungsi ini kemungkinan akan mengakibatkan perilaku tak terduga atau kerusakan memori. Untuk menghindari hal ini, Anda harus menyinkronkan semua panggilan bersamaan dari lebih dari satu utas ke fungsi ini.
Persyaratan
Persyaratan | Nilai |
---|---|
Target Platform | Windows |
Header | minidumpapiset.h (termasuk Dbghelp.h) |
Pustaka | Dbghelp.lib |
DLL | Dbghelp.dll; Dbgcore.dll |
Redistribusi | DbgHelp.dll dan Dbgcore.dll |
Lihat juga
MINIDUMP_EXCEPTION_INFORMATION