Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Указывает структуру расположения разрешения точек останова.
Синтаксис
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