Bagikan melalui


IDebugEngine2::Attach

Melampirkan mesin debug (DE) ke program atau program. Dipanggil oleh manajer debug sesi (SDM) ketika DE berjalan dalam proses ke SDM.

Sintaks

int Attach( 
   IDebugProgram2[]     pProgram,
   IDebugProgramNode2[] rgpProgramNodes,
   uint                 celtPrograms,
   IDebugEventCallback2 pCallback,
   Enum_ATTACH_REASON   dwReason
);

Parameter

pProgram
[di] Array objek IDebugProgram2 yang mewakili program yang akan dilampirkan. Ini adalah program port.

rgpProgramNodes
[di] Array objek IDebugProgramNode2 yang mewakili simpul program, satu untuk setiap program. Simpul program dalam array ini mewakili program yang sama seperti dalam pProgram. Simpul program diberikan agar DE dapat mengidentifikasi program yang akan dilampirkan.

celtPrograms
[di] Jumlah program dan/atau simpul program dalam pProgram array dan rgpProgramNodes .

pCallback
[di] Objek IDebugEventCallback2 yang akan digunakan untuk mengirim peristiwa debug ke SDM.

dwReason
[di] Nilai dari enumerasi ATTACH_REASON yang menentukan alasan untuk melampirkan program ini. Untuk informasi lebih lanjut, lihat bagian Keterangan.

Tampilkan Nilai

Jika berhasil, mengembalikan S_OK; jika tidak, mengembalikan kode galat.

Keterangan

Ada tiga alasan untuk melampirkan ke program, sebagai berikut:

  • ATTACH_REASON_LAUNCH menunjukkan bahwa DE melampirkan ke program karena pengguna meluncurkan proses yang berisinya.

  • ATTACH_REASON_USER menunjukkan bahwa pengguna telah secara eksplisit meminta DE untuk melampirkan ke program (atau proses yang berisi program).

  • ATTACH_REASON_AUTO menunjukkan DE melampirkan ke program tertentu karena sudah men-debug program lain dalam proses tertentu. Ini juga disebut melampirkan otomatis.

    Ketika metode ini dipanggil, DE perlu mengirim peristiwa ini secara berurutan:

  1. IDebugEngineCreateEvent2 (jika belum dikirim untuk instans tertentu dari mesin debug)

  2. IDebugProgramCreateEvent2

  3. IDebugLoadCompleteEvent2

    Selain itu, jika alasan untuk melampirkan adalah ATTACH_REASON_LAUNCH, DE perlu mengirim peristiwa IDebugEntryPointEvent2 .

    Setelah DE mendapatkan objek IDebugProgramNode2 yang sesuai dengan program yang di-debug, de dapat dikueri untuk antarmuka privat apa pun.

    Sebelum memanggil metode simpul program dalam array yang diberikan oleh pProgram atau rgpProgramNodes, peniruan identitas, jika diperlukan, harus diaktifkan pada IDebugProgram2 antarmuka yang mewakili simpul program. Namun, biasanya, langkah ini tidak diperlukan. Untuk informasi selengkapnya, lihat Masalah Keamanan.

Baca juga