Share via


BP_LOCATION

Especifica o tipo de estrutura usada para descrever o local do ponto de interrupção.

Sintaxe

public struct BP_LOCATION {
    public uint   bpLocationType;
    public IntPtr unionmember1;
    public IntPtr unionmember2;
    public IntPtr unionmember3;
    public IntPtr unionmember4;
};

Membros

bpLocationType
Um valor da enumeração BP_LOCATION_TYPEusado para interpretar o bpLocation sindicato ou os unionmemberX membros.

bpLocation.bplocCodeFileLine
[Somente C++] Contém a estrutura BP_LOCATION_CODE_FILE_LINE se bpLocationType = BPLT_CODE_FILE_LINE.

bpLocation.bplocCodeFuncOffset
[Somente C++] Contém a estrutura BP_LOCATION_CODE_FUNC_OFFSET se bpLocationType = BPLT_CODE_FUNC_OFFSET.

bpLocation.bplocCodeContext
[Somente C++] Contém a estrutura BP_LOCATION_CODE_CONTEXT se bpLocationType = BPLT_CODE_CONTEXT.

bpLocation.bplocCodeString
[Somente C++] Contém a estrutura BP_LOCATION_CODE_STRING se bpLocationType = BPLT_CODE_STRING.

bpLocation.bplocCodeAddress
[Somente C++] Contém a estrutura BP_LOCATION_CODE_ADDRESS se bpLocationType = BPLT_CODE_ADDRESS.

bpLocation.bplocDataString
[Somente C++] Contém a estrutura BP_LOCATION_DATA_STRING se bpLocationType = BPLT_DATA_STRING.

bpLocation.bplocResolution
[Somente C++] Contém a estrutura BP_LOCATION_RESOLUTION se bpLocationType = BPLT_RESOLUTION.

unionmember1
[Somente C#] Veja Observações sobre como interpretar.

unionmember2
[Somente C#] Veja Observações sobre como interpretar.

unionmember3
[Somente C#] Veja Observações sobre como interpretar.

unionmember4
[Somente C#] Veja Observações sobre como interpretar.

Comentários

Essa estrutura é um membro das estruturas BP_REQUEST_INFO e BP_REQUEST_INFO2 .

[Somente C#] Os unionmemberX membros são interpretados de acordo com a tabela a seguir. Olhe para baixo na coluna esquerda para o valor e, em seguida, olhe para as outras colunas para determinar o que cada unionmemberX membro representa e marechal o bpLocationTypeunionmemberX correspondente. Consulte o exemplo para obter uma maneira de interpretar uma parte dessa estrutura em C#.

bpLocationType unionmember1 unionmember2 unionmember3 unionmember4
BPLT_CODE_FILE_LINE string (um contexto) IDebugDocumentPosition2 - -
BPLT_CODE_FUNC_OFFSET string (um contexto) IDebugFunctionPosition2 - -
BPLT_CODE_CONTEXT IDebugCodeContext2 - - -
BPLT_CODE_STRING string (um contexto) string (expressão condicional) - -
BPLT_CODE_ADDRESS string (um contexto) string (URL do módulo) string (nome da função) string (endereço)
BPLT_DATA_STRING IDebugThread2 string (um contexto) string (expressão de dados) uint (número de elementos)
BPLT_RESOLUTION IDebugBreakpointResolution2 - - -

Exemplo

Este exemplo mostra como interpretar a BP_LOCATION estrutura em C# para o BPLT_DATA_STRING tipo. Esse tipo específico mostra como interpretar todos os quatro unionmemberX membros em todos os formatos possíveis (objeto, cadeia de caracteres e número).

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);
            }
        }
    }
}

Requisitos

Cabeçalho: msdbg.h

Espaço para nome: Microsoft.VisualStudio.Debugger.Interop

Assembly: Microsoft.VisualStudio.Debugger.Interop.dll

Confira também