Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
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_TYPE usado 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 bpLocationType unionmemberX 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