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结构(如果BPT_CODE
bpType
= )。
bpResLocation.bpresData
[仅限 C++]包含BP_RESOLUTION_DATA结构(如果BPT_DATA
bpType
= )。
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;
}
}
}
}
要求
标头:msdbg.h
命名空间:Microsoft.VisualStudio.Debugger.Interop
程序集:Microsoft.VisualStudio.Debugger.Interop.dll