struktur CREATE_PROCESS_DEBUG_INFO (minwinbase.h)
Berisi informasi pembuatan proses yang dapat digunakan oleh debugger.
Sintaks
typedef struct _CREATE_PROCESS_DEBUG_INFO {
HANDLE hFile;
HANDLE hProcess;
HANDLE hThread;
LPVOID lpBaseOfImage;
DWORD dwDebugInfoFileOffset;
DWORD nDebugInfoSize;
LPVOID lpThreadLocalBase;
LPTHREAD_START_ROUTINE lpStartAddress;
LPVOID lpImageName;
WORD fUnicode;
} CREATE_PROCESS_DEBUG_INFO, *LPCREATE_PROCESS_DEBUG_INFO;
Anggota
hFile
Handel ke file gambar proses. Jika anggota ini NULL, handel tidak valid. Jika tidak, debugger dapat menggunakan anggota untuk membaca dari dan menulis ke file gambar.
Ketika debugger selesai dengan file ini, itu harus menutup handel menggunakan fungsi CloseHandle .
hProcess
Handel untuk proses. Jika anggota ini NULL, handel tidak valid. Jika tidak, debugger dapat menggunakan anggota untuk membaca dari dan menulis ke memori proses.
hThread
Handel ke utas awal proses yang diidentifikasi oleh anggota hProcess . Jika param hThread adalah NULL, handel tidak valid. Jika tidak, debugger memiliki akses THREAD_GET_CONTEXT, THREAD_SET_CONTEXT, dan THREAD_SUSPEND_RESUME ke utas, memungkinkan debugger membaca dari dan menulis ke daftar utas dan mengontrol eksekusi utas.
lpBaseOfImage
Alamat dasar gambar yang dapat dieksekusi yang dijalankan proses.
dwDebugInfoFileOffset
Offset ke informasi penelusuran kesalahan dalam file yang diidentifikasi oleh anggota hFile .
nDebugInfoSize
Ukuran informasi penelusuran kesalahan dalam file, dalam byte. Jika nilai ini nol, tidak ada informasi penelusuran kesalahan.
lpThreadLocalBase
Penunjuk ke blok data. Pada offset 0x2C ke blok ini adalah pointer lain, yang disebut ThreadLocalStoragePointer
, yang menunjuk ke array blok penyimpanan lokal utas per modul. Ini memberikan akses debugger ke data per utas dalam utas proses yang di-debug menggunakan algoritma yang sama dengan yang akan digunakan pengkompilasi.
lpStartAddress
Penunjuk ke alamat awal utas. Nilai ini mungkin hanya merupakan perkiraan dari alamat awal utas, karena aplikasi apa pun dengan akses yang sesuai ke utas dapat mengubah konteks utas dengan menggunakan fungsi SetThreadContext .
lpImageName
Penunjuk ke nama file yang terkait dengan anggota hFile . Parameter ini mungkin NULL, atau mungkin berisi alamat penunjuk string di ruang alamat proses yang sedang di-debug. Alamat tersebut dapat, pada gilirannya, baik NULL atau menunjuk ke nama file yang sebenarnya. Jika fUnicode adalah nilai bukan nol, string nama adalah Unicode; jika tidak, itu adalah ANSI.
Anggota ini benar-benar opsional. Debugger harus disiapkan untuk menangani kasus di mana lpImageName adalah NULL atau *lpImageName (di ruang alamat proses yang di-debug) adalah NULL. Secara khusus, sistem tidak memberikan nama gambar untuk peristiwa proses pembuatan, dan kemungkinan tidak akan meneruskan nama gambar untuk peristiwa DLL pertama. Sistem juga tidak memberikan informasi ini dalam kasus peristiwa debug yang berasal dari panggilan ke fungsi DebugActiveProcess .
fUnicode
Nilai yang menunjukkan apakah nama file yang ditentukan oleh anggota lpImageName adalah Unicode atau ANSI. Nilai bukan nol menunjukkan Unicode; nol menunjukkan ANSI.
Persyaratan
Persyaratan | Nilai |
---|---|
Klien minimum yang didukung | Windows XP [hanya aplikasi desktop] |
Server minimum yang didukung | Windows Server 2003 [hanya aplikasi desktop] |
Header | minwinbase.h (termasuk Windows.h) |