BP_LOCATION
Určuje typ struktury sloužící k popisu umístění zarážky.
Syntaxe
public struct BP_LOCATION {
public uint bpLocationType;
public IntPtr unionmember1;
public IntPtr unionmember2;
public IntPtr unionmember3;
public IntPtr unionmember4;
};
Členové
bpLocationType
Hodnota z BP_LOCATION_TYPE výčtu sloužící k interpretaci bpLocation
sjednocení nebo unionmemberX
členů.
bpLocation
.bplocCodeFileLine
[Pouze C++] Obsahuje strukturu BP_LOCATION_CODE_FILE_LINE if = bpLocationType
BPLT_CODE_FILE_LINE
.
bpLocation.bplocCodeFuncOffset
[Pouze C++] Obsahuje strukturu BP_LOCATION_CODE_FUNC_OFFSET if = bpLocationType
BPLT_CODE_FUNC_OFFSET
.
bpLocation.bplocCodeContext
[Pouze C++] Obsahuje strukturu BP_LOCATION_CODE_CONTEXT pokud = bpLocationType
BPLT_CODE_CONTEXT
.
bpLocation.bplocCodeString
[Pouze C++] Obsahuje BP_LOCATION_CODE_STRING strukturu ifBPLT_CODE_STRING
= bpLocationType
.
bpLocation.bplocCodeAddress
[Pouze C++] Obsahuje strukturu BP_LOCATION_CODE_ADDRESS if = bpLocationType
BPLT_CODE_ADDRESS
.
bpLocation.bplocDataString
[Pouze C++] Obsahuje strukturu BP_LOCATION_DATA_STRING if = bpLocationType
BPLT_DATA_STRING
.
bpLocation.bplocResolution
[Pouze C++] Obsahuje BP_LOCATION_RESOLUTION strukturu ifBPLT_RESOLUTION
= bpLocationType
.
unionmember1
[Jenom jazyk C#] Viz poznámky o tom, jak interpretovat.
unionmember2
[Jenom jazyk C#] Viz poznámky o tom, jak interpretovat.
unionmember3
[Jenom jazyk C#] Viz poznámky o tom, jak interpretovat.
unionmember4
[Jenom jazyk C#] Viz poznámky o tom, jak interpretovat.
Poznámky
Tato struktura je členem BP_REQUEST_INFO a BP_REQUEST_INFO2 struktur.
[Jenom jazyk C#] Členové unionmemberX
jsou interpretovány podle následující tabulky. V levém sloupci vyhledejte bpLocationType
hodnotu a pak se podívejte na ostatní sloupce, abyste zjistili, co každý unionmemberX
člen představuje a zařaďte unionmemberX
odpovídajícím způsobem. Podívejte se na příklad, jak interpretovat část této struktury v jazyce C#.
bpLocationType |
unionmember1 |
unionmember2 |
unionmember3 |
unionmember4 |
---|---|---|---|---|
BPLT_CODE_FILE_LINE |
string (kontext) |
IDebugDocumentPosition2 | - | - |
BPLT_CODE_FUNC_OFFSET |
string (kontext) |
IDebugFunctionPosition2 | - | - |
BPLT_CODE_CONTEXT |
IDebugCodeContext2 | - | - | - |
BPLT_CODE_STRING |
string (kontext) |
string (podmíněný výraz) |
- | - |
BPLT_CODE_ADDRESS |
string (kontext) |
string (adresa URL modulu) |
string (název funkce) |
string (adresa) |
BPLT_DATA_STRING |
IDebugThread2 | string (kontext) |
string (datový výraz) |
uint (počet prvků) |
BPLT_RESOLUTION |
IDebugBreakpointResolution2 | - | - | - |
Příklad
Tento příklad ukazuje, jak interpretovat BP_LOCATION
strukturu v jazyce C# pro BPLT_DATA_STRING
typ. Tento konkrétní typ ukazuje, jak interpretovat všechny čtyři unionmemberX
členy ve všech možných formátech (objekt, řetězec a číslo).
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);
}
}
}
}
Požadavky
Hlavička: msdbg.h
Obor názvů: Microsoft.VisualStudio.Debugger.Interop
Sestavení: Microsoft.VisualStudio.Debugger.Interop.dll