Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Menentukan jenis struktur yang digunakan untuk menjelaskan lokasi titik henti.
Sintaks
public struct BP_LOCATION {
public uint bpLocationType;
public IntPtr unionmember1;
public IntPtr unionmember2;
public IntPtr unionmember3;
public IntPtr unionmember4;
};
Anggota
bpLocationType
Nilai dari enumerasi BP_LOCATION_TYPE yang digunakan untuk menginterpretasikan bpLocation serikat pekerja atau unionmemberX anggota.
bpLocation.bplocCodeFileLine
[Hanya C++] Berisi struktur BP_LOCATION_CODE_FILE_LINE jika = bpLocationTypeBPLT_CODE_FILE_LINE .
bpLocation.bplocCodeFuncOffset
[Hanya C++] Berisi struktur BP_LOCATION_CODE_FUNC_OFFSET jika = bpLocationTypeBPLT_CODE_FUNC_OFFSET .
bpLocation.bplocCodeContext
[Hanya C++] Berisi struktur BP_LOCATION_CODE_CONTEXT jika = bpLocationTypeBPLT_CODE_CONTEXT .
bpLocation.bplocCodeString
[Hanya C++] Berisi struktur BP_LOCATION_CODE_STRING jika = bpLocationTypeBPLT_CODE_STRING .
bpLocation.bplocCodeAddress
[Hanya C++] Berisi struktur BP_LOCATION_CODE_ADDRESS jika = bpLocationTypeBPLT_CODE_ADDRESS .
bpLocation.bplocDataString
[Hanya C++] Berisi struktur BP_LOCATION_DATA_STRING jika = bpLocationTypeBPLT_DATA_STRING .
bpLocation.bplocResolution
[Hanya C++] Berisi struktur BP_LOCATION_RESOLUTION jika = bpLocationTypeBPLT_RESOLUTION .
unionmember1
[C# saja] Lihat Komentar tentang cara menafsirkan.
unionmember2
[C# saja] Lihat Komentar tentang cara menafsirkan.
unionmember3
[C# saja] Lihat Komentar tentang cara menafsirkan.
unionmember4
[C# saja] Lihat Komentar tentang cara menafsirkan.
Keterangan
Struktur ini adalah anggota struktur BP_REQUEST_INFO dan BP_REQUEST_INFO2 .
[C# saja] Anggota unionmemberX ditafsirkan sesuai dengan tabel berikut. Lihat ke bawah kolom kiri untuk bpLocationType nilai lalu lihat di seluruh kolom lain untuk menentukan apa yang diwakili setiap unionmemberX anggota dan marshal yang unionmemberX sesuai. Lihat contoh cara menginterpretasikan bagian dari struktur ini di C#.
bpLocationType |
unionmember1 |
unionmember2 |
unionmember3 |
unionmember4 |
|---|---|---|---|---|
BPLT_CODE_FILE_LINE |
string (konteks) |
IDebugDocumentPosition2 | - | - |
BPLT_CODE_FUNC_OFFSET |
string (konteks) |
IDebugFunctionPosition2 | - | - |
BPLT_CODE_CONTEXT |
IDebugCodeContext2 | - | - | - |
BPLT_CODE_STRING |
string (konteks) |
string (ekspresi kondisi) |
- | - |
BPLT_CODE_ADDRESS |
string (konteks) |
string (URL modul) |
string (nama fungsi) |
string (alamat) |
BPLT_DATA_STRING |
IDebugThread2 | string (konteks) |
string (ekspresi data) |
uint (jumlah elemen) |
BPLT_RESOLUTION |
IDebugBreakpointResolution2 | - | - | - |
Contoh
Contoh ini menunjukkan cara menginterpretasikan BP_LOCATION struktur dalam C# untuk jenis .BPLT_DATA_STRING Jenis khusus ini menunjukkan cara menginterpretasikan keempat unionmemberX anggota dalam semua format yang mungkin (objek, string, dan angka).
using System;
using System.Runtime.Interop.Services;
using Microsoft.VisualStudio.Debugger.Interop;
namespace MyPackage
{
public class MyClass
{
public void Interpret(BP_LOCATION bp)
{
if (bp.bpLocationType == (uint)enum_BP_LOCATION_TYPE.BPLT_DATA_STRING)
{
IDebugThread2 pThread = (IDebugThread2)Marshal.GetObjectForIUnknown(bp.unionmember1);
string context = Marshal.PtrToStringBSTR(bp.unionmember2);
string dataExpression = Marshal.PtrToStringBSTR(bp.unionmember3);
uint numElements = (uint)Marshal.ReadInt32(bp.unionmember4);
}
}
}
}
Persyaratan
Header: msdbg.h
Namespace: Microsoft.VisualStudio.Debugger.Interop
Rakitan: Microsoft.VisualStudio.Debugger.Interop.dll