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_LINE
bpLocationType
= .
bpLocation.bplocCodeFuncOffset
[Nur C++] Enthält die BP_LOCATION_CODE_FUNC_OFFSET Struktur, wennBPLT_CODE_FUNC_OFFSET
bpLocationType
= .
bpLocation.bplocCodeContext
[Nur C++] Enthält die BP_LOCATION_CODE_CONTEXT Struktur, wennBPLT_CODE_CONTEXT
bpLocationType
= .
bpLocation.bplocCodeString
[Nur C++] Enthält die BP_LOCATION_CODE_STRING Struktur, wennBPLT_CODE_STRING
bpLocationType
= .
bpLocation.bplocCodeAddress
[Nur C++] Enthält die BP_LOCATION_CODE_ADDRESS Struktur, wennBPLT_CODE_ADDRESS
bpLocationType
= .
bpLocation.bplocDataString
[Nur C++] Enthält die BP_LOCATION_DATA_STRING Struktur, wennBPLT_DATA_STRING
bpLocationType
= .
bpLocation.bplocResolution
[Nur C++] Enthält die BP_LOCATION_RESOLUTION Struktur, wennBPLT_RESOLUTION
bpLocationType
= .
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