Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
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