Поделиться через


BP_RESOLUTION_LOCATION

Указывает структуру расположения разрешения точек останова.

Синтаксис

public struct BP_RESOLUTION_LOCATION {
    public uint   bpType;
    public IntPtr unionmember1;
    public IntPtr unionmember2;
    public IntPtr unionmember3;
    public uint   unionmember4;
};

Участники

bpType
Значение из перечисления BP_TYPE , указывающее, как интерпретировать bpResLocation объединение или unionmemberX члены.

bpResLocation.bpresCode
[Только C++] Содержит структуру BP_RESOLUTION_CODE , если bpType = BPT_CODE.

bpResLocation.bpresData
[Только C++] Содержит структуру BP_RESOLUTION_DATA , если bpType = BPT_DATA.

bpResLocation.unused
[Только C++] Заполнитель.

unionmember1
[только C#] См. примечания о интерпретации.

unionmember2
[только C#] См. примечания о интерпретации.

unionmember3
[только C#] См. примечания о интерпретации.

unionmember4
[только C#] См. примечания о интерпретации.

Замечания

Эта структура является членом BP_ERROR_RESOLUTION_INFO и BP_RESOLUTION_INFO структур.

[только C#] Члены unionmemberX интерпретируются в соответствии со следующей таблицей. Просмотрите левый столбец для bpType значения, а затем по всему, чтобы определить, что представляет каждый unionmemberX элемент и маршалировать unionmemberX соответствующим образом. См. пример для интерпретации этой структуры в C#.

bpLocationType unionmember1 unionmember2 unionmember3 unionmember4
BPT_CODE IDebugCodeContext2 - - -
BPT_DATA string (выражение данных) string (имя функции) string (имя изображения) enum_BP_RES_DATA_FLAGS

Пример

В этом примере показано, как интерпретировать структуру BP_RESOLUTION_LOCATION в C#.

using System;
using System.Runtime.Interop.Services;
using Microsoft.VisualStudio.Debugger.Interop;

namespace MyPackage
{
    public class MyClass
    {
        public void Interpret(BP_RESOLUTION_LOCATION bprl)
        {
            if (bprl.bpType == (uint)enum_BP_TYPE.BPT_CODE)
            {
                IDebugCodeContext2 pContext = (IDebugCodeContext2)Marshal.GetObjectForIUnknown(bp.unionmember1);
            }
            else if (bprl.bpType == (uint)enum_BP_TYPE.BPT_DATA)
            {
                string dataExpression = Marshal.PtrToStringBSTR(bp.unionmember3);
                string functionName = Marshal.PtrToStringBSTR(bp.unionmember2);
                string imageName = Marshal.PtrToStringBSTR(bp.unionmember3);
                enum_BP_RES_DATA_FLAGS numElements = (enum_BP_RES_DATA_FLAGS)bp.unionmember4;
            }
        }
    }
}

Requirements

Заголовок: msdbg.h

Пространство имен: Microsoft.VisualStudio.Debugger.Interop

Сборка: Microsoft.VisualStudio.Debugger.Interop.dll

См. также