BP_RESOLUTION_LOCATION
중단점 해결 위치의 구조체를 지정합니다.
구문
public struct BP_RESOLUTION_LOCATION {
public uint bpType;
public IntPtr unionmember1;
public IntPtr unionmember2;
public IntPtr unionmember3;
public uint unionmember4;
};
멤버
bpType
bpResLocation
공용 구조체 또는 unionmemberX
멤버를 해석하는 방법을 지정하는 BP_TYPE 열거형의 값입니다.
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