Bagikan melalui


BP_LOCATION

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

Baca juga