Freigeben über


BP_LOCATION

Gibt den Typ der Struktur an, die zum Beschreiben der Position des Haltepunkts verwendet wird.

Syntax

public struct BP_LOCATION {
    public uint   bpLocationType;
    public IntPtr unionmember1;
    public IntPtr unionmember2;
    public IntPtr unionmember3;
    public IntPtr unionmember4;
};

Mitglieder

bpLocationType
Ein Wert aus der BP_LOCATION_TYPE Enumeration, die zum Interpretieren der bpLocation Vereinigung oder der unionmemberX Mitglieder verwendet wird.

bpLocation.bplocCodeFileLine
[Nur C++] Enthält die BP_LOCATION_CODE_FILE_LINE Struktur, wennBPLT_CODE_FILE_LINEbpLocationType = .

bpLocation.bplocCodeFuncOffset
[Nur C++] Enthält die BP_LOCATION_CODE_FUNC_OFFSET Struktur, wennBPLT_CODE_FUNC_OFFSETbpLocationType = .

bpLocation.bplocCodeContext
[Nur C++] Enthält die BP_LOCATION_CODE_CONTEXT Struktur, wennBPLT_CODE_CONTEXTbpLocationType = .

bpLocation.bplocCodeString
[Nur C++] Enthält die BP_LOCATION_CODE_STRING Struktur, wennBPLT_CODE_STRINGbpLocationType = .

bpLocation.bplocCodeAddress
[Nur C++] Enthält die BP_LOCATION_CODE_ADDRESS Struktur, wennBPLT_CODE_ADDRESSbpLocationType = .

bpLocation.bplocDataString
[Nur C++] Enthält die BP_LOCATION_DATA_STRING Struktur, wennBPLT_DATA_STRINGbpLocationType = .

bpLocation.bplocResolution
[Nur C++] Enthält die BP_LOCATION_RESOLUTION Struktur, wennBPLT_RESOLUTIONbpLocationType = .

unionmember1
[Nur C#] Weitere Informationen zur Interpretation finden Sie in den Hinweisen.

unionmember2
[Nur C#] Weitere Informationen zur Interpretation finden Sie in den Hinweisen.

unionmember3
[Nur C#] Weitere Informationen zur Interpretation finden Sie in den Hinweisen.

unionmember4
[Nur C#] Weitere Informationen zur Interpretation finden Sie in den Hinweisen.

Hinweise

Diese Struktur ist ein Mitglied der BP_REQUEST_INFO und BP_REQUEST_INFO2 Strukturen.

[Nur C#] Die unionmemberX Elemente werden gemäß der folgenden Tabelle interpretiert. Suchen Sie nach unten die linke Spalte für den bpLocationType Wert, und suchen Sie dann über die anderen Spalten, um zu bestimmen, was die einzelnen unionmemberX Member darstellen und entsprechend unionmemberX marshallen. Sehen Sie sich das Beispiel an, um einen Teil dieser Struktur in C# zu interpretieren.

bpLocationType unionmember1 unionmember2 unionmember3 unionmember4
BPLT_CODE_FILE_LINE string (ein Kontext) IDebugDocumentPosition2 - -
BPLT_CODE_FUNC_OFFSET string (ein Kontext) IDebugFunctionPosition2 - -
BPLT_CODE_CONTEXT IDebugCodeContext2 - - -
BPLT_CODE_STRING string (ein Kontext) string (bedingter Ausdruck) - -
BPLT_CODE_ADDRESS string (ein Kontext) string (Modul-URL) string (Funktionsname) string (Adresse)
BPLT_DATA_STRING IDebugThread2 string (ein Kontext) string (Datenausdruck) uint (Anzahl der Elemente)
BPLT_RESOLUTION IDebugBreakpointResolution2 - - -

Beispiel

In diesem Beispiel wird gezeigt, wie die BP_LOCATION Struktur in C# für den BPLT_DATA_STRING Typ interpretiert wird. Dieser spezielle Typ zeigt, wie alle vier unionmemberX Elemente in allen möglichen Formaten (Objekt, Zeichenfolge und Zahl) interpretiert werden.

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);
            }
        }
    }
}

Anforderungen

Header: msdbg.h

Namespace: Microsoft.VisualStudio.Debugger.Interop

Assembly: Microsoft.VisualStudio.Debugger.Interop.dll

Siehe auch