Partager via


BP_RESOLUTION_LOCATION

Spécifie la structure de l’emplacement de résolution de point d’arrêt.

Syntaxe

public struct BP_RESOLUTION_LOCATION {
    public uint   bpType;
    public IntPtr unionmember1;
    public IntPtr unionmember2;
    public IntPtr unionmember3;
    public uint   unionmember4;
};

Membres

bpType
Valeur de l’énumération BP_TYPE qui spécifie comment interpréter l’union ou unionmemberX les bpResLocation membres.

bpResLocation.bpresCode
[C++ uniquement] Contient la structure BP_RESOLUTION_CODE si bpType = BPT_CODE.

bpResLocation.bpresData
[C++ uniquement] Contient la structure BP_RESOLUTION_DATA si bpType = BPT_DATA.

bpResLocation.unused
[C++ uniquement] Espace réservé.

unionmember1
[C# uniquement] Consultez les remarques sur la façon d’interpréter.

unionmember2
[C# uniquement] Consultez les remarques sur la façon d’interpréter.

unionmember3
[C# uniquement] Consultez les remarques sur la façon d’interpréter.

unionmember4
[C# uniquement] Consultez les remarques sur la façon d’interpréter.

Notes

Cette structure est membre des structures BP_ERROR_RESOLUTION_INFO et BP_RESOLUTION_INFO .

[C# uniquement] Les unionmemberX membres sont interprétés selon le tableau suivant. Examinez la colonne gauche de la bpType valeur, puis déterminez ce que chaque unionmemberX membre représente et marshale en unionmemberX conséquence. Consultez l’exemple pour obtenir un moyen d’interpréter cette structure en C#.

bpLocationType unionmember1 unionmember2 unionmember3 unionmember4
BPT_CODE IDebugCodeContext2 - - -
BPT_DATA string (expression de données) string (nom de la fonction) string (nom de l’image) enum_BP_RES_DATA_FLAGS

Exemple

Cet exemple montre comment interpréter la BP_RESOLUTION_LOCATION structure en C#.

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

Spécifications

En-tête : msdbg.h

Espace de noms : Microsoft.VisualStudio.Debugger.Interop

Assembly : Microsoft.VisualStudio.Debugger.Interop.dll

Voir aussi