共用方式為


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++]如果 = bpTypeBPT_CODE,則包含 BP_RESOLUTION_CODE 結構。

bpResLocation.bpresData
[僅限 C++]如果 = bpTypeBPT_DATA,則包含 BP_RESOLUTION_DATA 結構。

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

範例

此範例示範如何在 C# 中解譯 BP_RESOLUTION_LOCATION 結構。

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

另請參閱