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++]如果 = bpType
BPT_CODE
,則包含 BP_RESOLUTION_CODE 結構。
bpResLocation.bpresData
[僅限 C++]如果 = bpType
BPT_DATA
,則包含 BP_RESOLUTION_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 |
範例
此範例示範如何在 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