Bagikan melalui


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)

Lihat juga

CREATE_THREAD_DEBUG_INFO

DEBUG_EVENT

DebugActiveProcess

LOAD_DLL_DEBUG_INFO

SetThreadContext