DkmCustomModuleInstance Klasse

Definition

' Dkmcustommoduleinstance ' wird für Module aus einer benutzerdefinierten Laufzeitumgebung (nicht nativ oder CLR-basiert) verwendet. Dies kann z. b. in einem benutzerdefinierten Interpreter oder Just-in-Time-Compiler verwendet werden.

public ref class DkmCustomModuleInstance : Microsoft::VisualStudio::Debugger::DkmModuleInstance
[System.Runtime.InteropServices.Guid("28a2ee07-bdcf-31f8-66e9-09b958e66fe8")]
public class DkmCustomModuleInstance : Microsoft.VisualStudio.Debugger.DkmModuleInstance
[<System.Runtime.InteropServices.Guid("28a2ee07-bdcf-31f8-66e9-09b958e66fe8")>]
type DkmCustomModuleInstance = class
    inherit DkmModuleInstance
Public Class DkmCustomModuleInstance
Inherits DkmModuleInstance
Vererbung
Attribute

Eigenschaften

BaseAddress

Optionale Die Start Speicheradresse, an der das Modul geladen wurde. Dieser Wert ist 0 (null), wenn das Modul nicht in einem zusammenhängenden Speicherblock geladen wurde.

(Geerbt von DkmModuleInstance)
Connection

Dies stellt eine Verbindung zwischen dem Monitor und der IDE dar. Dabei kann es sich entweder um eine lokale Verbindung handeln, wenn der Monitor in demselben Prozess wie die IDE ausgeführt wird, oder um eine Remote Verbindung. Im Überwachungsprozess gibt es nur eine Verbindung.

(Geerbt von DkmModuleInstance)
Flags

Flags, die die Merkmale einer dkmmoduleinstance angeben.

(Geerbt von DkmModuleInstance)
FullName

Der voll qualifizierte Modulname. Bei dateibasierten Modulen ist dies der vollständige Pfad zum Modul (Beispiel: c:\windows\system32\kernel32.dll.

(Geerbt von DkmModuleInstance)
IsDisabled

Gibt an, ob diese Modul Instanz deaktiviert wurde. Deaktivierte Module werden größtenteils vom Debugger ignoriert. Bei nativen Modulen wird der Adressbereich des deaktivierten Moduls so behandelt, als ob es nicht zugeordnet ist. Für CLR-Module werden alle Frames aus diesen Modulen in der-aufrufsstapel ausgeblendet.

(Geerbt von DkmModuleInstance)
IsUnloaded

Gibt "true" zurück, wenn ein "entladen"-Ereignis für dieses Objekt ausgelöst wurde (Beispiel: dkmthread:: entladen wird aufgerufen) oder wenn das Objekt geschlossen wurde. Beachten Sie, dass bei der Überprüfung dieses Status, ohne Synchronisierung, der Status "zurückgegeben" möglicherweise nicht mehr genau der Anweisung entspricht, nachdem er gelesen wurde.

(Geerbt von DkmDataContainer)
LoadContext

Zeichen folgen Beschreibung des Kontexts, in dem das Modul geladen wurde. Beispiel: Win32 oder CLR v 2.0.50727: Standard Domäne.

(Geerbt von DkmModuleInstance)
LoadOrder

Die ganzzahlige Anzahl der Modul Instanzen, die bis zu diesem Modul geladen wurden. Jede Lauf Zeit Instanz verfolgt die eigene Anzahl der Lade Reihenfolgen nach.

(Geerbt von DkmModuleInstance)
MemoryLayout

Enumeration, die angibt, wie ein Modul im Arbeitsspeicher angeordnet ist.

(Geerbt von DkmModuleInstance)
MinidumpInfoPart

Optionale "Minidumpinfopart" wird verwendet, um zusätzliche Informationen zu Modulen in einem "dkmprocess" für ein Minidump zu vermitteln.

(Geerbt von DkmModuleInstance)
Module

Optionale Die Darstellung eines Moduls (dkmmodule) des Symbol Handlers, das dieser Modul Instanz zugeordnet ist. Dieser Wert ist anfänglich NULL und wird zugewiesen, wenn und wenn Symbole dieser Modul Instanz zugeordnet sind.

(Geerbt von DkmModuleInstance)
Name

Kurze Darstellung des Modul namens. Bei dateibasierten Modulen ist dies der Dateiname und die Erweiterung (Beispiel: kernel32.dll).

(Geerbt von DkmModuleInstance)
Process

Dkmprocess stellt einen Ziel Prozess dar, der debuggt wird. Der Debugger debuggt die Prozesse, sodass dies die grundlegende debugeinheit ist. Ein dkmprocess kann einen System Prozess oder einen virtuellen Prozess, z. b. Minidumps, darstellen.

(Geerbt von DkmModuleInstance)
RuntimeInstance

Die dkmruntimeinstance-Klasse stellt eine Ausführungsumgebung dar, die in einen dkmprocess geladen wird und den zu debuggenden Code enthält.

(Geerbt von DkmModuleInstance)
Size

Optionale Die Anzahl der Bytes im Arbeitsspeicher Bereich des Moduls. Dieser Wert ist 0 (null), wenn das Modul nicht in einem zusammenhängenden Speicherblock geladen wurde.

(Geerbt von DkmModuleInstance)
SymbolFileId

Optionale Enthält Informationen, die erforderlich sind, um Symbole für dieses Modul zu suchen. In Win32 sind diese Informationen im IMAGE_DEBUG_DIRECTORY enthalten.

(Geerbt von DkmModuleInstance)
TagValue

Dkmmoduleinstance ist eine abstrakte Basisklasse. Diese Enumeration gibt an, welche abgeleitete Klasse dieses Objekt eine Instanz von ist.

(Geerbt von DkmModuleInstance)
TimeDateStamp

Datum/Uhrzeit der Erstellung des geladenen Moduls. Dieser Wert wird aus der IMAGE_NT_HEADERS des geladenen Moduls abgerufen. Die Maßeinheit ist ein FILETIME-Wert, bei dem es sich um einen 64-Bit-Wert handelt, der die Anzahl der 100-Nanosecond-Intervalle seit dem 1. Januar 1601 (UTC) darstellt.

(Geerbt von DkmModuleInstance)
UniqueId

Identifiziert das dkmmoduleinstance-Objekt eindeutig.

(Geerbt von DkmModuleInstance)
Version

Optionale Datei Versionsinformationen.

(Geerbt von DkmModuleInstance)

Methoden

ClearTransitionModuleFlag()

Lauf Zeit Instanzen bezeichnen diese Methode, um ein Modul als Begrenzungs Modul zu markieren. Bei der schrittweisen Ausführung von Laufzeiten sollten Sie überprüfen, ob der Schritt ein Begrenzungs Modul getroffen hat, und mit der Ausführung von Schiedsgerichtsbarkeit beginnen. Beachten Sie, dass einige Laufzeiten diese Anforderung möglicherweise nicht einhalten können. Der Verteiler behält, wie oft flagastransitionmodule aufgerufen wurde. Nur wenn eine übereinstimmende Anzahl von Aufrufen von cleartransitionmoduleflag ist, wird das Modul nicht mehr als Übergangs Modul betrachtet.

Location-Einschränkung: die API muss von einer Monitor Komponente (Komponentenebene < 100.000) aufgerufen werden.

(Geerbt von DkmModuleInstance)
Create(String, String, UInt64, DkmRuntimeInstance, DkmModuleVersion, DkmSymbolFileId, DkmModuleFlags, DkmModuleMemoryLayout, UInt64, UInt32, UInt32, String, Boolean, DkmModule, DkmModuleInstance+MinidumpInfo, DkmDataItem)

Erstellen Sie eine neue dkmcustommoduleinstance-Objektinstanz.

Diese Methode sendet ein moduleinstanceload-Ereignis.

Location-Einschränkung: die API muss von einer Monitor Komponente (Komponentenebene < 100.000) aufgerufen werden.

Decompile()

Dekompiliert den Code für ein Modul in c# und erstellt eine neue Portable PDB, bei der diese Quelle eingebettet ist. Alle Module, die diese Symbol Datei freigeben, werden mit diesen aktualisierten Symbolen begonnen.

Location-Einschränkung: Diese Methode kann von einer IDE aus aufgerufen werden.

Diese API wurde in Visual Studio 16 Update 5 (dkmapiversion. VS16Update5) eingeführt.

(Geerbt von DkmModuleInstance)
Decompile(DkmWorkList, DkmCompletionRoutine<DkmDecompileAsyncResult>)

Dekompiliert den Code für ein Modul in c# und erstellt eine neue Portable PDB, bei der diese Quelle eingebettet ist. Alle Module, die diese Symbol Datei freigeben, werden mit diesen aktualisierten Symbolen begonnen.

Diese Methode fügt ein neues Arbeits Element an die angegebene Arbeitsliste an und gibt zurück, nachdem das Arbeits Element angefügt wurde. Die tatsächliche Verarbeitung der Arbeitsaufgabe erfolgt asynchron. Der Aufrufer wird benachrichtigt, dass die Anforderung durch die Abschluss Routine abgeschlossen wurde.

Location-Einschränkung: Diese Methode kann von einer IDE aus aufgerufen werden.

Diese API wurde in Visual Studio 16 Update 5 (dkmapiversion. VS16Update5) eingeführt.

(Geerbt von DkmModuleInstance)
FlagAsTransitionModule()

Lauf Zeit Instanzen bezeichnen diese Methode, um ein Modul als Begrenzungs Modul zu markieren. Bei der schrittweisen Ausführung von Laufzeiten sollten Sie überprüfen, ob der Schritt ein Begrenzungs Modul getroffen hat, und mit der Ausführung von Schiedsgerichtsbarkeit beginnen. Beachten Sie, dass einige Laufzeiten diese Anforderung möglicherweise nicht einhalten können. Der Verteiler behält, wie oft dieser aufgerufen wurde. Nur wenn eine übereinstimmende Anzahl von Aufrufen von cleartransitionmoduleflag erfolgt ist, wird das Modul nicht mehr als Übergangs Modul betrachtet.

Location-Einschränkung: die API muss von einer Monitor Komponente (Komponentenebene < 100.000) aufgerufen werden.

(Geerbt von DkmModuleInstance)
GetDataItem<T>()

Ruft die Instanz von 't ' ab, die dieser Container Instanz hinzugefügt wurde. Wenn dieser Container kein 't-Zeichen enthält, gibt diese Funktion NULL zurück.

(Geerbt von DkmDataContainer)
GetGPUDisassembly(UInt64, UInt32, Boolean, Boolean)

Rufen Sie die Disassembly des Adress Bereichs in der Debug-Modul Instanz ab.

(Geerbt von DkmModuleInstance)
GetGPUDisassemblySize()

Gibt die disassemblygröße in der Debug-Modul Instanz zurück.

(Geerbt von DkmModuleInstance)
GetNextGPUInstructionAddress(UInt64)

Gibt die Adresse der nächsten Anweisung relativ zu einer Startadresse zurück.

(Geerbt von DkmModuleInstance)
GetSymbolLoadInformation()

Gibt eine Zeichenfolge zurück, in der die verschiedenen Positionen beschrieben werden, nach denen Symbole gesucht wurden, und das Ergebnis der Überprüfung dieses Speicher Orts. Diese Informationen werden verwendet, um die "Symbol ladeinformationen" im Fenster "Module" aufzufüllen.

Location-Einschränkung: die API muss von einer IDE-Komponente (Komponentenebene > 100.000) aufgerufen werden.

(Geerbt von DkmModuleInstance)
GetSymbolStatusMessage(Boolean)

Eine lokalisierte Zeichen folgen Beschreibung des aktuellen Symbol Status abrufen.

Location-Einschränkung: die API muss von einer IDE-Komponente (Komponentenebene > 100.000) aufgerufen werden.

(Geerbt von DkmModuleInstance)
IsSuppressed()

Mit dieser Methode kann eine Komponente ermitteln, ob das Modul Lade Ereignis für ein Modul unterdrückt wurde.

Diese API wurde in Visual Studio 12 Update 3 (dkmapiversion. VS12Update3) eingeführt.

(Geerbt von DkmModuleInstance)
IsTransitionModule()

Gibt "true" zurück, wenn eine Lauf Zeit Instanz dieses Modul als Übergangs Modul gekennzeichnet hat.

Location-Einschränkung: die API muss von einer Monitor Komponente (Komponentenebene < 100.000) aufgerufen werden.

(Geerbt von DkmModuleInstance)
IsUserCode()

Bestimmt, ob ein Modul als Benutzercode angesehen wird.

Location-Einschränkung: Diese Methode kann von einer IDE-Komponente aufgerufen werden. Ab Visual Studio 2013 Update 2 ist es auch möglich, dies über eine Monitor Komponente für verwalteten Code aufzurufen. In Visual Studio 2017 Update 8 wurde die Aufruf Richtung der API "bidirektional" aus "Normal" hergestellt und kann nun von jeder Komponente aufgerufen werden, "asynccaller" wurde auf "true" festgelegt, und "callerlocationeinschränkung" wurde auf "None" aus "nomarshalling" festgelegt.

Diese API wurde in Visual Studio 12 RTM (dkmapiversion. VS12RTM) eingeführt.

(Geerbt von DkmModuleInstance)
IsUserCode(DkmWorkList, DkmCompletionRoutine<DkmModuleInstanceIsUserCodeAsyncResult>)

Bestimmt, ob ein Modul als Benutzercode angesehen wird.

Diese Methode fügt ein neues Arbeits Element an die angegebene Arbeitsliste an und gibt zurück, nachdem das Arbeits Element angefügt wurde. Die tatsächliche Verarbeitung der Arbeitsaufgabe erfolgt asynchron. Der Aufrufer wird benachrichtigt, dass die Anforderung durch die Abschluss Routine abgeschlossen wurde.

Location-Einschränkung: Diese Methode kann von einer IDE-Komponente aufgerufen werden. Ab Visual Studio 2013 Update 2 ist es auch möglich, dies über eine Monitor Komponente für verwalteten Code aufzurufen. In Visual Studio 2017 Update 8 wurde die Aufruf Richtung der API "bidirektional" aus "Normal" hergestellt und kann nun von jeder Komponente aufgerufen werden, "asynccaller" wurde auf "true" festgelegt, und "callerlocationeinschränkung" wurde auf "None" aus "nomarshalling" festgelegt.

Diese API wurde in Visual Studio 12 RTM (dkmapiversion. VS12RTM) eingeführt.

(Geerbt von DkmModuleInstance)
OnBinaryLoaded(String)

Hiermit wird ein binaryloaded-Ereignis generiert. Komponenten, die die Ereignis Senke-Schnittstelle implementieren, erhalten die Ereignis Benachrichtigung. Das Steuerelement wird zurückgegeben, sobald alle Komponenten benachrichtigt wurden.

Diese API wurde in Visual Studio 12 RTM (dkmapiversion. VS12RTM) eingeführt.

(Geerbt von DkmModuleInstance)
OnBinaryReloadOpportunity()

Hiermit wird ein binaryreloadopportunity-Ereignis generiert. Komponenten, die die Ereignis Senke-Schnittstelle implementieren, erhalten die Ereignis Benachrichtigung. Das Steuerelement wird zurückgegeben, sobald alle Komponenten benachrichtigt wurden.

Location-Einschränkung: die API muss von einer Monitor Komponente (Komponentenebene < 100.000) aufgerufen werden.

Diese API wurde in Visual Studio 12 Update 2 (dkmapiversion. VS12Update2) eingeführt.

(Geerbt von DkmModuleInstance)
OnModuleModified()

Diese Methode wird aufgerufen, wenn ein Modul aufgrund von UMC oder dynamisch ausgegebener Code geändert wird.

Location-Einschränkung: die API muss von einer Monitor Komponente (Komponentenebene < 100.000) aufgerufen werden.

Diese API wurde in Visual Studio 14 RTM (dkmapiversion. VS14RTM) eingeführt.

(Geerbt von DkmModuleInstance)
OnSymbolsLoaded(DkmModule, Boolean)

Diese Methode wird von Basis-debugmonitoren als Reaktion auf einen Aufruf von idkmmodulesymbolsloaded. raisesymbolsloadedevent aufgerufen. Diese Methode muss aus dem Ereignis Thread oder dem Anforderungs Thread als Teil eines erneuten Ladevorgang aufgerufen werden. Basis-debugmonitore sollten synchron zum Ereignis Thread wechseln, den Ziel Prozess anhalten und onsymbolsloaded aufrufen.

Location-Einschränkung: die API muss von einer Monitor Komponente (Komponentenebene < 100.000) aufgerufen werden.

(Geerbt von DkmModuleInstance)
OnSymbolsUpdated(DkmModule)

Gibt ein modulesymbolsupveralteten-Ereignis aus. Komponenten, die die Ereignis Senke-Schnittstelle implementieren, erhalten die Ereignis Benachrichtigung. Das Steuerelement wird zurückgegeben, sobald alle Komponenten benachrichtigt wurden.

(Geerbt von DkmModuleInstance)
ReadSymbols()

Diese Methode wird von Symbol Handlern aufgerufen, um Symbole für dkmmoduleinhaltungen zu lesen, deren Symbole sich im Arbeitsspeicher von debuggenden Speicher befinden.

(Geerbt von DkmModuleInstance)
RemoveDataItem<T>()

Entfernen Sie die Instanz von 't "aus diesem Container. Es ist in der Regel nicht erforderlich, diese Methode aufzurufen, da ein Datencontainer automatisch geleert wird, wenn das Objekt geschlossen wird.

(Geerbt von DkmDataContainer)
SetDataItem<T>(DkmDataCreationDisposition, T)

Fügen Sie ein neues Element in den Datencontainer ein.

(Geerbt von DkmDataContainer)
SetDisabled(Boolean)

Aktualisiert den deaktivierten Status eines Moduls. Diese Methode kann nur von einem moduleinstanceload-Ereignis aufgerufen werden. Bei der Deaktivierung eines Moduls wird das Modul Lade Ereignis häufig unterdrückt.

(Geerbt von DkmModuleInstance)
SetModule(DkmModule, Boolean)

Diese Methode wird von einem Symbol Anbieter aufgerufen, um ein dkmmoduldkmmoduleinstance zuzuordnen und ein modulesymbolsloaded-Ereignis zu initiieren. Sie kann für ein dkmmoduleinstance-Objekt nur einmal aufgerufen werden. Wenn Sie diese API aufrufen, wird sowohl die dkmmoduleinstance-Zuordnung von dkmmodule < - > als auch das Auslösen eines modulesymbolsloaded-Ereignisses ausgelöst.

(Geerbt von DkmModuleInstance)
TryLoadBinary()

Es wurde versucht, eine Binärdatei zu laden, die zuvor mit aktualisierten Symbol Pfaden nicht geladen wurde.

Location-Einschränkung: die API muss von einer IDE-Komponente (Komponentenebene > 100.000) aufgerufen werden.

(Geerbt von DkmModuleInstance)
TryLoadBinary(DkmWorkList, DkmCompletionRoutine<DkmTryLoadBinaryAsyncResult>)

Es wurde versucht, eine Binärdatei zu laden, die zuvor mit aktualisierten Symbol Pfaden nicht geladen wurde.

Diese Methode fügt ein neues Arbeits Element an die angegebene Arbeitsliste an und gibt zurück, nachdem das Arbeits Element angefügt wurde. Die tatsächliche Verarbeitung der Arbeitsaufgabe erfolgt asynchron. Der Aufrufer wird benachrichtigt, dass die Anforderung durch die Abschluss Routine abgeschlossen wurde.

Location-Einschränkung: die API muss von einer IDE-Komponente (Komponentenebene > 100.000) aufgerufen werden.

(Geerbt von DkmModuleInstance)
TryLoadSymbols()

Wird aufgerufen, um das Laden von Symbolen für dkmmoduleinhaltungen zu initiieren, deren Symbole beim Laden des Moduls nicht gefunden wurden.

Location-Einschränkung: die API muss von einer IDE-Komponente (Komponentenebene > 100.000) aufgerufen werden.

(Geerbt von DkmModuleInstance)
TryLoadSymbols(DkmWorkList, DkmCompletionRoutine<DkmTryLoadSymbolsAsyncResult>)

Wird aufgerufen, um das Laden von Symbolen für dkmmoduleinhaltungen zu initiieren, deren Symbole beim Laden des Moduls nicht gefunden wurden.

Diese Methode fügt ein neues Arbeits Element an die angegebene Arbeitsliste an und gibt zurück, nachdem das Arbeits Element angefügt wurde. Die tatsächliche Verarbeitung der Arbeitsaufgabe erfolgt asynchron. Der Aufrufer wird benachrichtigt, dass die Anforderung durch die Abschluss Routine abgeschlossen wurde.

Location-Einschränkung: die API muss von einer IDE-Komponente (Komponentenebene > 100.000) aufgerufen werden.

(Geerbt von DkmModuleInstance)
Unload()

Markieren Sie das Entlade Objekt als entladen, und Benachrichtigen Sie die Komponenten, die die Ereignis senken-Schnittstelle implementieren. Das Steuerelement wird zurückgegeben, sobald alle Komponenten benachrichtigt wurden.

Diese Methode kann nur von der Komponente aufgerufen werden, die das Objekt erstellt hat.

(Geerbt von DkmModuleInstance)

Gilt für