Aracılığıyla paylaş


BP_LOCATION

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

Ayrıca bkz.