Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Kesme noktasının konumunu açıklamak için kullanılan yapı türünü belirtir.
Sözdizimi
public struct BP_LOCATION {
public uint bpLocationType;
public IntPtr unionmember1;
public IntPtr unionmember2;
public IntPtr unionmember3;
public IntPtr unionmember4;
};
Üyeler
bpLocationType
birleşimini veya üyeleri yorumlamak için kullanılan BP_LOCATION_TYPE numaralandırmasından bir bpLocation unionmemberX değer.
bpLocation.bplocCodeFileLine
[Yalnızca C++] ise bpLocationType = BPLT_CODE_FILE_LINEBP_LOCATION_CODE_FILE_LINE yapısını içerir.
bpLocation.bplocCodeFuncOffset
[Yalnızca C++] ise bpLocationType = BPLT_CODE_FUNC_OFFSETBP_LOCATION_CODE_FUNC_OFFSET yapısını içerir.
bpLocation.bplocCodeContext
[Yalnızca C++] ise bpLocationType = BPLT_CODE_CONTEXTBP_LOCATION_CODE_CONTEXT yapısını içerir.
bpLocation.bplocCodeString
[Yalnızca C++] ise bpLocationType = BPLT_CODE_STRINGBP_LOCATION_CODE_STRING yapısını içerir.
bpLocation.bplocCodeAddress
[Yalnızca C++] ise bpLocationType = BPLT_CODE_ADDRESSBP_LOCATION_CODE_ADDRESS yapısını içerir.
bpLocation.bplocDataString
[Yalnızca C++] ise bpLocationType = BPLT_DATA_STRINGBP_LOCATION_DATA_STRING yapısını içerir.
bpLocation.bplocResolution
[Yalnızca C++] ise bpLocationType = BPLT_RESOLUTIONBP_LOCATION_RESOLUTION yapısını içerir.
unionmember1
[Yalnızca C# ] Bkz. Yorumla ilgili açıklamalar.
unionmember2
[Yalnızca C# ] Bkz. Yorumla ilgili açıklamalar.
unionmember3
[Yalnızca C# ] Bkz. Yorumla ilgili açıklamalar.
unionmember4
[Yalnızca C# ] Bkz. Yorumla ilgili açıklamalar.
Açıklamalar
Bu yapı, BP_REQUEST_INFO ve BP_REQUEST_INFO2 yapılarının bir üyesidir.
[Yalnızca C# ] Üyeler unionmemberX aşağıdaki tabloya göre yorumlanır. Değerin sol sütununa bpLocationType bakın ve ardından diğer sütunlara bakarak her unionmemberX üyenin neyi temsil edip uygun şekilde sıraladığını unionmemberX belirleyin. C# dilinde bu yapının bir bölümünü yorumlamanın bir yolunun örneğine bakın.
bpLocationType |
unionmember1 |
unionmember2 |
unionmember3 |
unionmember4 |
|---|---|---|---|---|
BPLT_CODE_FILE_LINE |
string (bağlam) |
IDebugDocumentPosition2 | - | - |
BPLT_CODE_FUNC_OFFSET |
string (bağlam) |
IDebugFunctionPosition2 | - | - |
BPLT_CODE_CONTEXT |
IDebugCodeContext2 | - | - | - |
BPLT_CODE_STRING |
string (bağlam) |
string (koşullu ifade) |
- | - |
BPLT_CODE_ADDRESS |
string (bağlam) |
string (modül URL'si) |
string (işlev adı) |
string (adres) |
BPLT_DATA_STRING |
IDebugThread2 | string (bağlam) |
string (veri ifadesi) |
uint (öğe sayısı) |
BPLT_RESOLUTION |
IDebugBreakpointResolution2 | - | - | - |
Örnek
Bu örnekte, türü için C# dilindeki yapıyı BP_LOCATION yorumlama gösterilmektedir BPLT_DATA_STRING . Bu özel tür, dört unionmemberX üyenin de tüm olası biçimlerde (nesne, dize ve sayı) nasıl yorumlanıp yorumlana bilir.
using System;
using System.Runtime.Interop.Services;
using Microsoft.VisualStudio.Debugger.Interop;
namespace MyPackage
{
public class MyClass
{
public void Interpret(BP_LOCATION bp)
{
if (bp.bpLocationType == (uint)enum_BP_LOCATION_TYPE.BPLT_DATA_STRING)
{
IDebugThread2 pThread = (IDebugThread2)Marshal.GetObjectForIUnknown(bp.unionmember1);
string context = Marshal.PtrToStringBSTR(bp.unionmember2);
string dataExpression = Marshal.PtrToStringBSTR(bp.unionmember3);
uint numElements = (uint)Marshal.ReadInt32(bp.unionmember4);
}
}
}
}
Gereksinimler
Üst bilgi: msdbg.h
Ad Alanı: Microsoft.VisualStudio.Debugger.Interop
Derleme: Microsoft.VisualStudio.Debugger.Interop.dll