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_CODEbpType = )。

bpResLocation.bpresData
[仅限 C++]包含BP_RESOLUTION_DATA结构(如果BPT_DATAbpType = )。

bpResLocation.unused
[仅限 C++]占位符。

unionmember1
[仅限 C#]请参阅有关如何解释的备注。

unionmember2
[仅限 C#]请参阅有关如何解释的备注。

unionmember3
[仅限 C#]请参阅有关如何解释的备注。

unionmember4
[仅限 C#]请参阅有关如何解释的备注。

注解

此结构是BP_ERROR_RESOLUTION_INFOBP_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

另请参阅