Sdílet prostřednictvím


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 = bpLocationTypeBPLT_CODE_FILE_LINE .

bpLocation.bplocCodeFuncOffset
[Pouze C++] Obsahuje strukturu BP_LOCATION_CODE_FUNC_OFFSET if = bpLocationTypeBPLT_CODE_FUNC_OFFSET .

bpLocation.bplocCodeContext
[Pouze C++] Obsahuje strukturu BP_LOCATION_CODE_CONTEXT pokud = bpLocationTypeBPLT_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 = bpLocationTypeBPLT_CODE_ADDRESS .

bpLocation.bplocDataString
[Pouze C++] Obsahuje strukturu BP_LOCATION_DATA_STRING if = bpLocationTypeBPLT_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

Viz také