DkmClrModuleInstance Klasa

Definicja

Element "DkmClrModuleInstance" jest używany w przypadku modułów, które są ładowane do środowiska uruchomieniowego języka wspólnego.

Klasy pochodne: DkmClrNcModuleInstance

public ref class DkmClrModuleInstance : Microsoft::VisualStudio::Debugger::DkmModuleInstance
[System.Runtime.InteropServices.Guid("29da4ffa-6063-6232-46dd-64d14cf56ddf")]
public class DkmClrModuleInstance : Microsoft.VisualStudio.Debugger.DkmModuleInstance
[<System.Runtime.InteropServices.Guid("29da4ffa-6063-6232-46dd-64d14cf56ddf")>]
type DkmClrModuleInstance = class
    inherit DkmModuleInstance
Public Class DkmClrModuleInstance
Inherits DkmModuleInstance
Dziedziczenie
Dziedziczenie
Pochodne
Atrybuty

Właściwości

AppDomain

DkmClrAppDomain reprezentuje domenę aplikacji CLR wewnątrz procesu, który jest debugowany.

BaseAddress

[Opcjonalnie] Adres pamięci początkowej, w którym załadowano moduł. Ta wartość będzie równa zero, jeśli moduł nie został załadowany w ciągłym bloku pamięci.

(Odziedziczone po DkmModuleInstance)
ClrFlags

Flagi wskazujące cechy klasy DkmModuleInstance załadowane przez CLR.

Connection

Reprezentuje to połączenie między monitorem a środowiskiem IDE. Może to być połączenie lokalne, jeśli monitor jest uruchomiony w tym samym procesie co środowisko IDE, lub może być połączeniem zdalnym. W procesie monitorowania istnieje tylko jedno połączenie.

(Odziedziczone po DkmModuleInstance)
Flags

Flagi wskazujące cechy klasy DkmModuleInstance.

(Odziedziczone po DkmModuleInstance)
FullName

W pełni kwalifikowana nazwa modułu. W przypadku modułów opartych na plikach jest to pełna ścieżka do modułu (np. c:\windows\system32\kernel32.dll.

(Odziedziczone po DkmModuleInstance)
ILImageSize

Określa rozmiar obrazu IL tego modułu, ponieważ dotyczy wyszukiwania serwera symboli. W przypadku .NET Framework klasycznych określi rozmiar obrazu IL, który będzie się różnić od pierwotnego rozmiaru obrazu w przypadku ngen. Wynika to z faktu, że jedyny obraz IL jest indeksowany na serwerach symboli. W przypadku programu .NET Core ngen i gotowego do uruchomienia określi on rozmiar obrazu pierwotnego jako ngen/ready do uruchomienia obrazu, który jest indeksowany i nie chcemy wyszukiwać na podstawie rozmiaru obrazu tylko il.

Ten interfejs API został wprowadzony w programie Visual Studio 12 RTM (DkmApiVersion.VS12RTM).

IsDisabled

Wskazuje, czy to wystąpienie modułu zostało wyłączone. Wyłączone moduły są w dużej mierze ignorowane przez debuger. W przypadku modułów natywnych zakres adresów wyłączonego modułu jest traktowany tak, jakby był niezamapowany. W przypadku modułów CLR wszystkie ramki z tych modułów są ukryte przed stosem wywołań.

(Odziedziczone po DkmModuleInstance)
IsUnloaded

Zwraca wartość true, jeśli dla tego obiektu zostało zgłoszone zdarzenie "zwolniony" (na przykład: DkmThread::Unload jest wywoływane) lub jeśli obiekt został zamknięty. Należy pamiętać, że podczas sprawdzania tego stanu należy zachować ostrożność, ponieważ bez synchronizacji zwrócony stan może nie być już dokładny po odczytaniu instrukcji.

(Odziedziczone po DkmDataContainer)
LoadContext

Opis ciągu kontekstu, w którym załadowano ten moduł. np. "Win32" lub "CLR v2.0.50727: Domena domyślna".

(Odziedziczone po DkmModuleInstance)
LoadOrder

Liczba całkowita liczby wystąpień modułu, które zostały załadowane do i w tym module. Każde wystąpienie środowiska uruchomieniowego śledzi własną liczbę zamówień ładowania.

(Odziedziczone po DkmModuleInstance)
MemoryLayout

Wyliczenie wskazujące sposób, w jaki moduł jest rozmieszczony w pamięci.

(Odziedziczone po DkmModuleInstance)
MinidumpInfoPart

[Opcjonalnie] Element "MinidumpInfoPart" służy do przekazywania dodatkowych informacji o modułach w module DkmProcess dla minidump.

(Odziedziczone po DkmModuleInstance)
Module

[Opcjonalnie] Reprezentacja modułu (DkmModule) programu obsługi symboli skojarzona z tym wystąpieniem modułu. Ta wartość początkowo ma wartość null i jest przypisywana, jeśli i kiedy symbole są skojarzone z tym wystąpieniem modułu.

(Odziedziczone po DkmModuleInstance)
Mvid

Identyfikator wersji modułu z załadowanego modułu. Jest to unikatowa wartość osadzona w pliku exe/dll przez konsolidatory/kompilatory podczas kompilowania biblioteki dll/exe. Nowa wartość jest generowana za każdym razem, gdy jest kompilowana biblioteka dll/exe.

Name

Krótka reprezentacja nazwy modułu. W przypadku modułów opartych na plikach jest to nazwa i rozszerzenie pliku (np. kernel32.dll).

(Odziedziczone po DkmModuleInstance)
Process

DkmProcess reprezentuje proces docelowy, który jest debugowany. Debuger debuguje procesy, więc jest to podstawowa jednostka debugowania. Proces DkmProcess może reprezentować proces systemowy lub proces wirtualny, taki jak minidumps.

(Odziedziczone po DkmModuleInstance)
RuntimeInstance

Reprezentuje wystąpienie środowiska CLR uruchomione w procesie docelowym.

Size

[Opcjonalnie] Liczba bajtów w regionie pamięci modułu. Ta wartość będzie równa zero, jeśli moduł nie został załadowany w ciągłym bloku pamięci.

(Odziedziczone po DkmModuleInstance)
SymbolFileId

[Opcjonalnie] Zawiera informacje potrzebne do zlokalizowania symboli dla tego modułu. W systemie Win32 te informacje znajdują się w IMAGE_DEBUG_DIRECTORY.

(Odziedziczone po DkmModuleInstance)
TagValue

DkmModuleInstance jest abstrakcyjną klasą bazową. To wyliczenie wskazuje, której klasy pochodnej ten obiekt jest wystąpieniem.

(Odziedziczone po DkmModuleInstance)
TimeDateStamp

Data/godzina utworzenia załadowanego modułu. Ta wartość jest uzyskiwana z IMAGE_NT_HEADERS załadowanego modułu. Jednostka miary jest wartością FILETIME, która jest wartością 64-bitową reprezentującą liczbę 100-nanosekundowych interwałów od 1 stycznia 1601 (UTC).

(Odziedziczone po DkmModuleInstance)
UniqueId

Jednoznacznie identyfikuje obiekt DkmModuleInstance.

(Odziedziczone po DkmModuleInstance)
Version

[Opcjonalnie] Informacje o wersji pliku.

(Odziedziczone po DkmModuleInstance)

Metody

CanDecompileMethod(DkmClrMethodId)

Zawiera informacje o tym, czy można dekompilować określoną metodę.

Ograniczenie lokalizacji: interfejs API musi być wywoływany ze składnika IDE (poziom > składnika 100 000).

Ten interfejs API został wprowadzony w programie Visual Studio 17 Update 5 (DkmApiVersion.VS17Update5).

CanDecompileModule(DkmDecompilerMode)

Zawiera informacje o tym, czy moduł można dekompilować w danym trybie.

Ograniczenie lokalizacji: interfejs API musi być wywoływany ze składnika IDE (poziom > składnika 100 000).

Ten interfejs API został wprowadzony w programie Visual Studio 17 Update 7 (DkmApiVersion.VS17Update7).

ClearTransitionModuleFlag()

Wystąpienia środowiska uruchomieniowego wywołają tę metodę, aby oznaczyć moduł jako moduł granic. W przypadku kroków środowiska uruchomieniowe powinny sprawdzić, czy krok uderzył w moduł granicy i rozpocząć kroki arbitrażu, jeśli mają. Należy pamiętać, że niektóre środowiska uruchomieniowe mogą nie być w stanie honorować tego żądania. Dyspozytor zachowa liczbę wywołań FlagAsTransitionModule. Tylko wtedy, gdy odpowiednia liczba wywołań funkcji ClearTransitionModuleFlag nie będzie już traktowana jako moduł przejściowy.

Ograniczenie lokalizacji: interfejs API musi być wywoływany ze składnika Monitor (poziom < składnika 100 000).

(Odziedziczone po DkmModuleInstance)
Create(String, String, UInt64, DkmModuleVersion, DkmSymbolFileId, DkmModuleFlags, DkmModuleMemoryLayout, UInt64, UInt32, UInt32, String, DkmClrRuntimeInstance, Guid, DkmClrModuleFlags, DkmClrAppDomain, Boolean, DkmModule, DkmModuleInstance+MinidumpInfo, DkmDataItem)

Twórca nowe wystąpienie obiektu DkmClrModuleInstance.

Ta metoda wyśle zdarzenie ModuleInstanceLoad.

Ograniczenie lokalizacji: interfejs API musi być wywoływany ze składnika Monitor (poziom < składnika 100 000).

Create(String, String, UInt64, DkmModuleVersion, DkmSymbolFileId, DkmModuleFlags, DkmModuleMemoryLayout, UInt64, UInt32, UInt32, String, DkmClrRuntimeInstance, Guid, DkmClrModuleFlags, DkmClrAppDomain, UInt32, Boolean, DkmModule, DkmModuleInstance+MinidumpInfo, DkmDataItem)

Twórca nowe wystąpienie obiektu DkmClrModuleInstance.

Ta metoda wyśle zdarzenie ModuleInstanceLoad.

Ograniczenie lokalizacji: interfejs API musi być wywoływany ze składnika Monitor (poziom < składnika 100 000).

Ten interfejs API został wprowadzony w programie Visual Studio 12 RTM (DkmApiVersion.VS12RTM).

Decompile()

Dekompiluje kod modułu w języku C# i tworzy nowy przenośny plik PDB z osadzonym źródłem. Wszystkie moduły, które współużytkują ten plik symboli, rozpocznie korzystanie z tych zaktualizowanych symboli.

Ograniczenie lokalizacji: interfejs API musi być wywoływany ze składnika IDE (poziom > składnika 100 000).

Ten interfejs API został wprowadzony w programie Visual Studio 16 Update 5 (DkmApiVersion.VS16Update5).

(Odziedziczone po DkmModuleInstance)
Decompile(DkmDecompilerMode, String, Int32)

Dekompiluje kod modułu w języku C# i tworzy nowy przenośny plik PDB z osadzonym źródłem. Wszystkie moduły, które współużytkują ten plik symboli, rozpocznie korzystanie z tych zaktualizowanych symboli. Implementacje powinny zwracać S_OK po awarii i zwracać rzeczywiste informacje o błędzie HRESULT oraz wszelkie dodatkowe informacje o błędach za pośrednictwem parametrów "HR" i "ErrorMessage".

Ograniczenie lokalizacji: interfejs API musi być wywoływany ze składnika IDE (poziom > składnika 100 000).

Ten interfejs API został wprowadzony w programie Visual Studio 17 Update 7 (DkmApiVersion.VS17Update7).

Decompile(DkmWorkList, DkmCompletionRoutine<DkmDecompileAsyncResult>)

Dekompiluje kod modułu w języku C# i tworzy nowy przenośny plik PDB z osadzonym źródłem. Wszystkie moduły, które współużytkują ten plik symboli, rozpocznie korzystanie z tych zaktualizowanych symboli.

Ta metoda dołączy nowy element roboczy do określonej listy roboczej i powróci po dołączeniu elementu roboczego. Rzeczywiste przetwarzanie elementu roboczego jest asynchroniczne. Obiekt wywołujący zostanie powiadomiony, że żądanie zostało ukończone przez procedurę ukończenia.

Ograniczenie lokalizacji: interfejs API musi być wywoływany ze składnika IDE (poziom > składnika 100 000).

Ten interfejs API został wprowadzony w programie Visual Studio 16 Update 5 (DkmApiVersion.VS16Update5).

(Odziedziczone po DkmModuleInstance)
Decompile(DkmWorkList, DkmCompletionRoutine<DkmDecompileAsyncResult173>)

Dekompiluje kod modułu w języku C# i tworzy nowy przenośny plik PDB z osadzonym źródłem. Wszystkie moduły, które współużytkują ten plik symboli, rozpocznie korzystanie z tych zaktualizowanych symboli. Implementacje powinny zwracać S_OK po awarii i zwracać rzeczywiste informacje o błędzie HRESULT oraz wszelkie dodatkowe informacje o błędach za pośrednictwem parametrów "HR" i "ErrorMessage".

Ta metoda dołączy nowy element roboczy do określonej listy roboczej i powróci po dołączeniu elementu roboczego. Rzeczywiste przetwarzanie elementu roboczego jest asynchroniczne. Obiekt wywołujący zostanie powiadomiony, że żądanie zostało ukończone przez procedurę ukończenia.

Ograniczenie lokalizacji: interfejs API musi być wywoływany ze składnika IDE (poziom > składnika 100 000).

Ten interfejs API został wprowadzony w programie Visual Studio 17 Update 3 (DkmApiVersion.VS17Update3).

(Odziedziczone po DkmModuleInstance)
Decompile(DkmWorkList, DkmDecompilerMode, DkmCompletionRoutine<DkmDecompileAsyncResult173>)

Dekompiluje kod modułu w języku C# i tworzy nowy przenośny plik PDB z osadzonym źródłem. Wszystkie moduły, które współużytkują ten plik symboli, rozpocznie korzystanie z tych zaktualizowanych symboli. Implementacje powinny zwracać S_OK po awarii i zwracać rzeczywiste informacje o błędzie HRESULT oraz wszelkie dodatkowe informacje o błędach za pośrednictwem parametrów "HR" i "ErrorMessage".

Ta metoda dołączy nowy element roboczy do określonej listy roboczej i powróci po dołączeniu elementu roboczego. Rzeczywiste przetwarzanie elementu roboczego jest asynchroniczne. Obiekt wywołujący zostanie powiadomiony, że żądanie zostało ukończone przez procedurę ukończenia.

Ograniczenie lokalizacji: interfejs API musi być wywoływany ze składnika IDE (poziom > składnika 100 000).

Ten interfejs API został wprowadzony w programie Visual Studio 17 Update 7 (DkmApiVersion.VS17Update7).

Decompile(String, Int32)

Dekompiluje kod modułu w języku C# i tworzy nowy przenośny plik PDB z osadzonym źródłem. Wszystkie moduły, które współużytkują ten plik symboli, rozpocznie korzystanie z tych zaktualizowanych symboli. Implementacje powinny zwracać S_OK po awarii i zwracać rzeczywiste informacje o błędzie HRESULT oraz wszelkie dodatkowe informacje o błędach za pośrednictwem parametrów "HR" i "ErrorMessage".

Ograniczenie lokalizacji: interfejs API musi być wywoływany ze składnika IDE (poziom > składnika 100 000).

Ten interfejs API został wprowadzony w programie Visual Studio 17 Update 3 (DkmApiVersion.VS17Update3).

(Odziedziczone po DkmModuleInstance)
DecompileDocument(DkmWorkList, String, DkmCompletionRoutine<DkmDecompileAsyncResult173>)

Dekompiluje kod dokumentu w języku C# i aktualizuje plik symboli skojarzony z modułem zawierającym niezbędne informacje o debugowaniu i osadzonym źródle. Wszystkie moduły, które współużytkują ten plik symboli, rozpocznie korzystanie z tych zaktualizowanych symboli. Implementacje powinny zwracać S_OK po awarii i zwracać rzeczywiste informacje o błędzie HRESULT oraz wszelkie dodatkowe informacje o błędach za pośrednictwem parametrów "HR" i "ErrorMessage".

Ta metoda dołączy nowy element roboczy do określonej listy roboczej i powróci po dołączeniu elementu roboczego. Rzeczywiste przetwarzanie elementu roboczego jest asynchroniczne. Obiekt wywołujący zostanie powiadomiony, że żądanie zostało ukończone przez procedurę ukończenia.

Ograniczenie lokalizacji: interfejs API musi być wywoływany ze składnika IDE (poziom > składnika 100 000).

Ten interfejs API został wprowadzony w programie Visual Studio 17 Update 5 (DkmApiVersion.VS17Update5).

DecompileDocument(String, String, Int32)

Dekompiluje kod dokumentu w języku C# i aktualizuje plik symboli skojarzony z modułem zawierającym niezbędne informacje o debugowaniu i osadzonym źródle. Wszystkie moduły, które współużytkują ten plik symboli, rozpocznie korzystanie z tych zaktualizowanych symboli. Implementacje powinny zwracać S_OK po awarii i zwracać rzeczywiste informacje o błędzie HRESULT oraz wszelkie dodatkowe informacje o błędach za pośrednictwem parametrów "HR" i "ErrorMessage".

Ograniczenie lokalizacji: interfejs API musi być wywoływany ze składnika IDE (poziom > składnika 100 000).

Ten interfejs API został wprowadzony w programie Visual Studio 17 Update 5 (DkmApiVersion.VS17Update5).

DecompileMethods(DkmWorkList, ReadOnlyCollection<DkmClrMethodId>, DkmCompletionRoutine<DkmDecompileAsyncResult173>)

Dekompiluje kod metod w języku C# i aktualizuje plik symboli skojarzony z modułem zawierającym informacje o debugowaniu i osadzonym źródle. Wszystkie moduły, które współużytkują ten plik symboli, rozpocznie korzystanie z tych zaktualizowanych symboli. Implementacje powinny zwracać S_OK po awarii i zwracać rzeczywiste informacje o błędzie HRESULT oraz wszelkie dodatkowe informacje o błędach za pośrednictwem parametrów "HR" i "ErrorMessage".

Ta metoda dołączy nowy element roboczy do określonej listy roboczej i powróci po dołączeniu elementu roboczego. Rzeczywiste przetwarzanie elementu roboczego jest asynchroniczne. Obiekt wywołujący zostanie powiadomiony, że żądanie zostało ukończone przez procedurę ukończenia.

Ograniczenie lokalizacji: interfejs API musi być wywoływany ze składnika IDE (poziom > składnika 100 000).

Ten interfejs API został wprowadzony w programie Visual Studio 17 Update 5 (DkmApiVersion.VS17Update5).

DecompileMethods(ReadOnlyCollection<DkmClrMethodId>, String, Int32)

Dekompiluje kod metod w języku C# i aktualizuje plik symboli skojarzony z modułem zawierającym informacje o debugowaniu i osadzonym źródle. Wszystkie moduły, które współużytkują ten plik symboli, rozpocznie korzystanie z tych zaktualizowanych symboli. Implementacje powinny zwracać S_OK po awarii i zwracać rzeczywiste informacje o błędzie HRESULT oraz wszelkie dodatkowe informacje o błędach za pośrednictwem parametrów "HR" i "ErrorMessage".

Ograniczenie lokalizacji: interfejs API musi być wywoływany ze składnika IDE (poziom > składnika 100 000).

Ten interfejs API został wprowadzony w programie Visual Studio 17 Update 5 (DkmApiVersion.VS17Update5).

FlagAsTransitionModule()

Wystąpienia środowiska uruchomieniowego wywołają tę metodę, aby oznaczyć moduł jako moduł granic. W przypadku kroków środowiska uruchomieniowe powinny sprawdzić, czy krok uderzył w moduł granicy i rozpocząć kroki arbitrażu, jeśli mają. Należy pamiętać, że niektóre środowiska uruchomieniowe mogą nie być w stanie honorować tego żądania. Dyspozytor zachowa liczbę wywołań. Tylko wtedy, gdy została wykonana zgodna liczba wywołań funkcji ClearTransitionModuleFlag, moduł nie będzie już traktowany jako moduł przejściowy.

Ograniczenie lokalizacji: interfejs API musi być wywoływany ze składnika Monitor (poziom < składnika 100 000).

(Odziedziczone po DkmModuleInstance)
GetBaselineMetaDataBytes()

Uzyskuje bajty punktu odniesienia metadanych CLR z danego modułu.

Ten interfejs API został wprowadzony w programie Visual Studio 15 Update 5 (DkmApiVersion.VS15Update5).

GetBaselineMetaDataBytesPtr(UInt32)

Pobierz wskaźnik do oryginalnych nieprzetworzonych bajtów metadanych dla danego modułu.

Ograniczenie lokalizacji: Brak.

Ten interfejs API został wprowadzony w programie Visual Studio 15 Update 5 (DkmApiVersion.VS15Update5).

GetCorObject()

Zapewnia bezpośredni dostęp do obiektu ICorDebugModule, który ewaluatory wyrażeń lub inne składniki mogą służyć do inspekcji domeny aplikacji.

Zwrócony interfejs może być używany tylko do inspekcji procesu docelowego i nigdy nie powinien być używany do kontrolowania wykonywania (bez kroków, brak punktów przerwania, brak kontynuacji itp.). Wykonanie tej czynności nie jest obsługiwane i spowoduje niezdefiniowane zachowanie.

Ograniczenie lokalizacji: interfejs API musi być wywoływany ze składnika Monitor (poziom < składnika 100 000).

GetDataItem<T>()

Pobiera wystąpienie elementu "T", które zostało dodane do tego wystąpienia kontenera. Jeśli ten kontener nie zawiera ciągu "T", ta funkcja zwróci wartość null.

(Odziedziczone po DkmDataContainer)
GetEncAvailability(String)

Sprawdza, czy opcja Edytuj i Kontynuuj jest obsługiwana dla odpowiedniego wystąpienia modułu zarządzanego.

Ograniczenie lokalizacji: interfejs API musi być wywoływany ze składnika IDE (poziom > składnika 100 000).

Ten interfejs API został wprowadzony w programie Visual Studio 16 Update 1 (DkmApiVersion.VS16Update1).

GetEncILDelta(Int32)

Odpowiedzialne za wykonywanie zapytań dotyczących różnicy IL skojarzonej z wystąpieniem modułu CLR. Delta IL jest wynikiem bajtów ze zmiany kodu, która może mieć wpływ na kilka metod. Jest to używane przez program VIL podczas wykonywania zapytań o informacje o zmodyfikowanej metodzie w module.

Ograniczenie lokalizacji: interfejs API musi być wywoływany ze składnika Monitor (poziom < składnika 100 000).

Ten interfejs API został wprowadzony w programie Visual Studio 16 Update 3 (DkmApiVersion.VS16Update3).

GetGPUDisassembly(UInt64, UInt32, Boolean, Boolean)

Uzyskaj demontaż zakresu adresów w wystąpieniu modułu debuggee.

(Odziedziczone po DkmModuleInstance)
GetGPUDisassemblySize()

Zwraca rozmiar dezasemblacji w wystąpieniu modułu debuggee.

(Odziedziczone po DkmModuleInstance)
GetLocalSignatureToken(Int32)

Pobiera token podpisu dla sygnatury zmiennej lokalnej przy użyciu tokenu metody.

Ten interfejs API został wprowadzony w programie Visual Studio 14 RTM (DkmApiVersion.VS14RTM).

GetMetaDataBytes()

Uzyskuje bajty metadanych CLR z danego modułu. Te bajty można następnie przekazać do IMetaDataDispenser::OpenScope, aby zdekodować metadane.

GetMetaDataBytesPtr(UInt32)

Pobierz wskaźnik do nieprzetworzonych bajtów metadanych dla danego modułu.

UWAGA: Ta wartość wskaźnika stanie się nieprawidłowa, jeśli/gdy moduł jest) zwolniony lub b) zmodyfikowany. Aby wykryć następujące scenariusze: a) Dodaj element danych do wystąpienia modułu. Wskaźnik będzie nieprawidłowy po wywołaniu metody OnClose (po rozładowaniu wystąpienia modułu). b) Zaimplementuj identyfikator IDkmClrModuleModifiedNotification.

Ten interfejs API został wprowadzony w programie Visual Studio 14 RTM (DkmApiVersion.VS14RTM).

GetMetaDataFileInfo(Boolean, UInt32, UInt32)

Pobiera informacje potrzebne do odczytania metadanych bezpośrednio z pliku na dysku.

Ten interfejs API został wprowadzony w programie Visual Studio 16 Update 2 (DkmApiVersion.VS16Update2).

GetMetaDataImport()

Uzyskuje metadane CLR z danego modułu. Aby uzyskać więcej informacji na temat metadanych, zobacz dokumentację IMetaDataImport w witrynie MSDN.

UWAGA: Osoby wywołujące muszą mieć szczególną ostrożność podczas korzystania z tego interfejsu API z kodu zarządzanego. Implementacja IMetaDataImport może zawierać uchwyt pliku do pliku debuggee, a uchwyt pliku zostanie zamknięty tylko wtedy, gdy liczba odwołań MODELU COM osiągnie zero. Dlatego należy go zwolnić ręcznie (Marshal.IsComObject + Marshal.ReleaseComObject) zamiast czekać na GC, aby wykryć, że obiekt można zwolnić. Podczas testowania upewnij się, że plik debuggee ma co najmniej 64 KB metadanych, ponieważ czytnik metadanych nie zachowa zablokowanego pliku do odczytu podczas pracy z małymi plikami.

GetMetadataStatus()

Pobieranie stanu metadanych.

Ograniczenie lokalizacji: interfejs API musi być wywoływany ze składnika Monitor (poziom < składnika 100 000).

Ten interfejs API został wprowadzony w programie Visual Studio 12 RTM (DkmApiVersion.VS12RTM).

GetMethodTokens(DkmWorkList, String, String, DkmCompletionRoutine<DkmGetMethodTokensAsyncResult>)

Zapewnia mechanizm uzyskiwania tokenów metadanych dla metody danej klasy. Odpowiednik IMetaDataImport::EnumMethodsWithName.

Ta metoda dołączy nowy element roboczy do określonej listy roboczej i powróci po dołączeniu elementu roboczego. Rzeczywiste przetwarzanie elementu roboczego jest asynchroniczne. Obiekt wywołujący zostanie powiadomiony, że żądanie zostało ukończone przez procedurę ukończenia.

Ten interfejs API został wprowadzony w programie Visual Studio 14 RTM (DkmApiVersion.VS14RTM).

GetMethodTokens(String, String, Int32[])

Zapewnia mechanizm uzyskiwania tokenów metadanych dla metody danej klasy. Odpowiednik IMetaDataImport::EnumMethodsWithName.

Ten interfejs API został wprowadzony w programie Visual Studio 14 RTM (DkmApiVersion.VS14RTM).

GetNextGPUInstructionAddress(UInt64)

Zwraca adres następnej instrukcji względem adresu początkowego.

(Odziedziczone po DkmModuleInstance)
GetSymbolLoadInformation()

Zwraca ciąg opisujący różne lokalizacje, w których wyszukiwano symbole, oraz wynik sprawdzania tej lokalizacji. Te informacje służą do wypełniania informacji o ładowaniu symboli w oknie modułów.

Ograniczenie lokalizacji: interfejs API musi być wywoływany ze składnika IDE (poziom > składnika 100 000).

(Odziedziczone po DkmModuleInstance)
GetSymbolSearchResult()

Pobiera wszystkie wyniki wyszukiwania symboli skojarzone z tym wystąpieniem modułu.

Ograniczenie lokalizacji: interfejs API musi być wywoływany ze składnika IDE (poziom > składnika 100 000).

Ten interfejs API został wprowadzony w programie Visual Studio 17 Update 3 (DkmApiVersion.VS17Update3).

(Odziedziczone po DkmModuleInstance)
GetSymbolSearchResult(DkmWorkList, DkmCompletionRoutine<DkmGetSymbolSearchResultAsyncResult>)

Pobiera wszystkie wyniki wyszukiwania symboli skojarzone z tym wystąpieniem modułu.

Ta metoda dołączy nowy element roboczy do określonej listy roboczej i powróci po dołączeniu elementu roboczego. Rzeczywiste przetwarzanie elementu roboczego jest asynchroniczne. Obiekt wywołujący zostanie powiadomiony, że żądanie zostało ukończone przez procedurę ukończenia.

Ograniczenie lokalizacji: interfejs API musi być wywoływany ze składnika IDE (poziom > składnika 100 000).

Ten interfejs API został wprowadzony w programie Visual Studio 17 Update 3 (DkmApiVersion.VS17Update3).

(Odziedziczone po DkmModuleInstance)
GetSymbolStatusMessage(Boolean)

Uzyskaj zlokalizowany opis ciągu bieżącego stanu symbolu.

Ograniczenie lokalizacji: interfejs API musi być wywoływany ze składnika IDE (poziom > składnika 100 000).

(Odziedziczone po DkmModuleInstance)
GetSymbolStatusMessage(DkmWorkList, Boolean, DkmCompletionRoutine<DkmGetSymbolStatusMessageAsyncResult>)

Uzyskaj zlokalizowany opis ciągu bieżącego stanu symbolu.

Ta metoda dołączy nowy element roboczy do określonej listy roboczej i powróci po dołączeniu elementu roboczego. Rzeczywiste przetwarzanie elementu roboczego jest asynchroniczne. Obiekt wywołujący zostanie powiadomiony, że żądanie zostało ukończone przez procedurę ukończenia.

Ograniczenie lokalizacji: interfejs API musi być wywoływany ze składnika IDE (poziom > składnika 100 000).

(Odziedziczone po DkmModuleInstance)
GetSymUnmanagedReader()

Ten interfejs API udostępnia częściową implementację ISymUnmanagedReader2 dla modułu CLR.

Ograniczenie lokalizacji: zapewnia częściową implementację elementu ISymUnmanagedReader2 po obu stronach połączenia zdalnego.

Ten interfejs API został wprowadzony w programie Visual Studio 15 RTM (DkmApiVersion.VS15RTM).

GetTypeIdForTypeName(String)

Zwraca identyfikator typu dla danej nazwy typu.

Ten interfejs API został wprowadzony w programie Visual Studio 17 Update 8 (DkmApiVersion.VS17Update8).

InterpretManagedMethod(DkmClrMethodId, ReadOnlyCollection<DkmClrType>, ReadOnlyCollection<DkmClrType>, DkmILInterpreterValue, ReadOnlyCollection<DkmILInterpreterValue>, Int32, DkmILInterpreterOptions, String)

Symuluje wykonywanie metody na obiekcie przez interpretację kodu MSIL metody. Wynik metody zostanie zwrócony z powrotem do obiektu wywołującego. Jednak w przeciwieństwie do oceny funkcji, w której metoda jest rzeczywiście uruchomiona w obiekcie docelowym, interpretacja metody nie wykonuje metody, ale zamiast tego symuluje zachowanie metody. Ponieważ metoda nigdy nie jest wykonywana, wszelkie skutki uboczne wynikające z wykonania metody są odrzucane po zakończeniu interpretacji metody, pozostawiając proces docelowy w identycznym stanie niż przed wywołaniem.

Ograniczenie lokalizacji: interfejs API musi być wywoływany ze składnika Monitor (poziom < składnika 100 000).

Ten interfejs API został wprowadzony w programie Visual Studio 12 RTM (DkmApiVersion.VS12RTM).

IsSuppressed()

Ta metoda umożliwia składnikowi określenie, czy zdarzenie ładowania modułu dla modułu zostało pominięte.

Ten interfejs API został wprowadzony w programie Visual Studio 12 Update 3 (DkmApiVersion.VS12Update3).

(Odziedziczone po DkmModuleInstance)
IsTransitionModule()

Zwraca wartość true, jeśli dowolne wystąpienie środowiska uruchomieniowego oznaczyło ten moduł jako moduł przejściowy.

Ograniczenie lokalizacji: interfejs API musi być wywoływany ze składnika Monitor (poziom < składnika 100 000).

(Odziedziczone po DkmModuleInstance)
IsUserCode()

Określa, czy moduł jest uznawany za kod użytkownika.

Ograniczenie lokalizacji: tę metodę można wywołać ze składnika IDE. Począwszy od Visual Studio 2013 Update 2, można również wywołać tę funkcję ze składnika monitora dla kodu zarządzanego. W programie Visual Studio 2017 Update 8 wywołanie interfejsu API zostało wykonane "Dwukierunkowe" z "Normal" i można teraz wywołać z dowolnego składnika, AsyncCaller został ustawiony na wartość "true", a właściwość CallerLocationConstraint została ustawiona na wartość "None" z polecenia "NoMarshalling".

Ten interfejs API został wprowadzony w programie Visual Studio 12 RTM (DkmApiVersion.VS12RTM).

(Odziedziczone po DkmModuleInstance)
IsUserCode(DkmWorkList, DkmCompletionRoutine<DkmModuleInstanceIsUserCodeAsyncResult>)

Określa, czy moduł jest uznawany za kod użytkownika.

Ta metoda dołączy nowy element roboczy do określonej listy roboczej i powróci po dołączeniu elementu roboczego. Rzeczywiste przetwarzanie elementu roboczego jest asynchroniczne. Obiekt wywołujący zostanie powiadomiony, że żądanie zostało ukończone przez procedurę ukończenia.

Ograniczenie lokalizacji: tę metodę można wywołać ze składnika IDE. Począwszy od Visual Studio 2013 Update 2, można również wywołać tę funkcję ze składnika monitora dla kodu zarządzanego. W programie Visual Studio 2017 Update 8 wywołanie interfejsu API zostało wykonane "Dwukierunkowe" z "Normal" i można teraz wywołać z dowolnego składnika, AsyncCaller został ustawiony na wartość "true", a właściwość CallerLocationConstraint została ustawiona na wartość "None" z polecenia "NoMarshalling".

Ten interfejs API został wprowadzony w programie Visual Studio 12 RTM (DkmApiVersion.VS12RTM).

(Odziedziczone po DkmModuleInstance)
OnBinaryLoaded(String)

Zgłoś zdarzenie BinaryLoaded. Składniki, które implementują interfejs ujścia zdarzeń, otrzymają powiadomienie o zdarzeniu. Kontrolka zostanie zwrócona po powiadomieniu wszystkich składników.

Ten interfejs API został wprowadzony w programie Visual Studio 12 RTM (DkmApiVersion.VS12RTM).

(Odziedziczone po DkmModuleInstance)
OnBinaryReloadOpportunity()

Zgłoś zdarzenie BinaryReloadOpportunity. Składniki, które implementują interfejs ujścia zdarzeń, otrzymają powiadomienie o zdarzeniu. Kontrolka zostanie zwrócona po powiadomieniu wszystkich składników.

Ograniczenie lokalizacji: interfejs API musi być wywoływany ze składnika Monitor (poziom < składnika 100 000).

Ten interfejs API został wprowadzony w programie Visual Studio 12 Update 2 (DkmApiVersion.VS12Update2).

(Odziedziczone po DkmModuleInstance)
OnModuleModified()

Ta metoda jest wywoływana, gdy moduł zmieni się z powodu enC lub dynamicznie emitowanego kodu.

Ograniczenie lokalizacji: interfejs API musi być wywoływany ze składnika Monitor (poziom < składnika 100 000).

Ten interfejs API został wprowadzony w programie Visual Studio 14 RTM (DkmApiVersion.VS14RTM).

(Odziedziczone po DkmModuleInstance)
OnSymbolsLoaded(DkmModule, Boolean)

Ta metoda jest wywoływana przez podstawowe monitory debugowania w odpowiedzi na wywołanie elementu IDkmModuleSymbolsLoaded.RaiseSymbolsLoadedEvent. Ta metoda musi być wywoływana z wątku zdarzenia lub z wątku żądania w ramach ponownego ładowania. Podstawowe monitory debugowania powinny synchronicznie przełączać się do wątku zdarzeń, wstrzymać proces docelowy i wywołać element OnSymbolsLoaded.

Ograniczenie lokalizacji: interfejs API musi być wywoływany ze składnika Monitor (poziom < składnika 100 000).

(Odziedziczone po DkmModuleInstance)
OnSymbolsUpdated(DkmModule)

Zgłoś zdarzenie ModuleSymbolsUpdated. Składniki, które implementują interfejs ujścia zdarzeń, otrzymają powiadomienie o zdarzeniu. Kontrolka zostanie zwrócona po powiadomieniu wszystkich składników.

(Odziedziczone po DkmModuleInstance)
ReadSymbols()

Ta metoda jest wywoływana przez programy obsługi symboli, aby odczytywać symbole dla obiektów DkmModuleInstance, których symbole znajdują się w pamięci debuggee.

(Odziedziczone po DkmModuleInstance)
RemoveDataItem<T>()

Usuń wystąpienie "T" z tego kontenera. Zwykle nie trzeba wywoływać tej metody, ponieważ kontener danych zostanie automatycznie opróżniony po zamknięciu obiektu.

(Odziedziczone po DkmDataContainer)
ResolveTypeName(String, ReadOnlyCollection<DkmClrType>)

Rozpoznaje nazwę typu w typie. Jeśli typ jest ogólny, parametry ogólne nie zostaną utworzone.

Ograniczenie lokalizacji: interfejs API musi być wywoływany ze składnika Monitor (poziom < składnika 100 000).

Ten interfejs API został wprowadzony w programie Visual Studio 12 RTM (DkmApiVersion.VS12RTM).

SetDataItem<T>(DkmDataCreationDisposition, T)

Umieść nowy element w kontenerze danych.

(Odziedziczone po DkmDataContainer)
SetDisabled(Boolean)

Aktualizacje stan wyłączony w module. Ta metoda może być wywoływana tylko ze zdarzenia ModuleInstanceLoad. Podczas wyłączania modułu często pomija się również zdarzenie ładowania modułu.

(Odziedziczone po DkmModuleInstance)
SetModule(DkmModule, Boolean)

Ta metoda jest wywoływana przez dostawcę symboli w celu skojarzenia modułu DkmModule z elementem DkmModuleInstance i wyzwolenia zdarzenia ModuleSymbolsLoaded. Może być wywoływana tylko raz dla obiektu DkmModuleInstance. Wywołanie tego interfejsu API spowoduje ustanowienie skojarzenia DkmModule-DkmModuleInstance<>, a także wywołanie zdarzenia ModuleSymbolsLoaded.

(Odziedziczone po DkmModuleInstance)
TryLoadBinary()

Spróbuj załadować plik binarny, który wcześniej nie może załadować przy użyciu zaktualizowanych ścieżek symboli.

(Odziedziczone po DkmModuleInstance)
TryLoadBinary(DkmWorkList, DkmCompletionRoutine<DkmTryLoadBinaryAsyncResult>)

Spróbuj załadować plik binarny, który wcześniej nie może załadować przy użyciu zaktualizowanych ścieżek symboli.

Ta metoda dołączy nowy element roboczy do określonej listy roboczej i powróci po dołączeniu elementu roboczego. Rzeczywiste przetwarzanie elementu roboczego jest asynchroniczne. Obiekt wywołujący zostanie powiadomiony, że żądanie zostało ukończone przez procedurę ukończenia.

(Odziedziczone po DkmModuleInstance)
TryLoadDecompiledSymbols()

Próbuje załadować buforowane symbole dekompilowane dla modułu.

Ograniczenie lokalizacji: interfejs API musi być wywoływany ze składnika IDE (poziom > składnika 100 000).

Ten interfejs API został wprowadzony w programie Visual Studio 17 Update 5 (DkmApiVersion.VS17Update5).

TryLoadDecompiledSymbols(DkmWorkList, DkmCompletionRoutine<DkmTryLoadDecompiledSymbolsAsyncResult>)

Próbuje załadować buforowane symbole dekompilowane dla modułu.

Ta metoda dołączy nowy element roboczy do określonej listy roboczej i powróci po dołączeniu elementu roboczego. Rzeczywiste przetwarzanie elementu roboczego jest asynchroniczne. Obiekt wywołujący zostanie powiadomiony, że żądanie zostało ukończone przez procedurę ukończenia.

Ograniczenie lokalizacji: interfejs API musi być wywoływany ze składnika IDE (poziom > składnika 100 000).

Ten interfejs API został wprowadzony w programie Visual Studio 17 Update 5 (DkmApiVersion.VS17Update5).

TryLoadSymbols()

Wywoływana w celu zainicjowania ładowania symboli dla obiektów DkmModuleInstance, których symbole nie zostały znalezione podczas ładowania modułu.

Ograniczenie lokalizacji: interfejs API musi być wywoływany ze składnika IDE (poziom > składnika 100 000).

(Odziedziczone po DkmModuleInstance)
TryLoadSymbols(DkmSymbolLoadFlags)

Wywoływana w celu zainicjowania ładowania symboli dla obiektów DkmModuleInstance, których symbole nie zostały znalezione podczas ładowania modułu.

Ograniczenie lokalizacji: interfejs API musi być wywoływany ze składnika IDE (poziom > składnika 100 000).

Ten interfejs API został wprowadzony w programie Visual Studio 17 Update 4 (DkmApiVersion.VS17Update4).

(Odziedziczone po DkmModuleInstance)
TryLoadSymbols(DkmWorkList, DkmCompletionRoutine<DkmTryLoadSymbolsAsyncResult>)

Wywoływana w celu zainicjowania ładowania symboli dla obiektów DkmModuleInstance, których symbole nie zostały znalezione podczas ładowania modułu.

Ta metoda dołączy nowy element roboczy do określonej listy roboczej i powróci po dołączeniu elementu roboczego. Rzeczywiste przetwarzanie elementu roboczego jest asynchroniczne. Obiekt wywołujący zostanie powiadomiony, że żądanie zostało ukończone przez procedurę ukończenia.

Ograniczenie lokalizacji: interfejs API musi być wywoływany ze składnika IDE (poziom > składnika 100 000).

(Odziedziczone po DkmModuleInstance)
TryLoadSymbols(DkmWorkList, DkmSymbolLoadFlags, DkmCompletionRoutine<DkmTryLoadSymbolsAsyncResult>)

Wywoływana w celu zainicjowania ładowania symboli dla obiektów DkmModuleInstance, których symbole nie zostały znalezione podczas ładowania modułu.

Ta metoda dołączy nowy element roboczy do określonej listy roboczej i powróci po dołączeniu elementu roboczego. Rzeczywiste przetwarzanie elementu roboczego jest asynchroniczne. Obiekt wywołujący zostanie powiadomiony, że żądanie zostało ukończone przez procedurę ukończenia.

Ograniczenie lokalizacji: interfejs API musi być wywoływany ze składnika IDE (poziom > składnika 100 000).

Ten interfejs API został wprowadzony w programie Visual Studio 17 Update 4 (DkmApiVersion.VS17Update4).

(Odziedziczone po DkmModuleInstance)
TryLoadSymbolsCallback()

Wywoływana w celu zainicjowania ładowania symboli dla obiektów DkmModuleInstance, których symbole nie zostały znalezione podczas ładowania modułu.

Ograniczenie lokalizacji: może to być wywoływane z klienta lub serwera. Implementacja serwera jest pamięcią podręczną, która zapobiega niepotrzebnym wywołaniom sieciowym. Klient przechodzi bezpośrednio do implementacji "rzeczywistej", co gwarantuje również, że ponowne odcięcie zostanie zwrócone wcześnie.

Ten interfejs API został wprowadzony w programie Visual Studio 17 RTM (DkmApiVersion.VS17RTM).

(Odziedziczone po DkmModuleInstance)
TryLoadSymbolsCallback(DkmWorkList, DkmCompletionRoutine<DkmTryLoadSymbolsCallbackAsyncResult>)

Wywoływana w celu zainicjowania ładowania symboli dla obiektów DkmModuleInstance, których symbole nie zostały znalezione podczas ładowania modułu.

Ta metoda dołączy nowy element roboczy do określonej listy roboczej i powróci po dołączeniu elementu roboczego. Rzeczywiste przetwarzanie elementu roboczego jest asynchroniczne. Obiekt wywołujący zostanie powiadomiony, że żądanie zostało ukończone przez procedurę ukończenia.

Ograniczenie lokalizacji: może to być wywoływane z klienta lub serwera. Implementacja serwera jest pamięcią podręczną, która zapobiega niepotrzebnym wywołaniom sieciowym. Klient przechodzi bezpośrednio do implementacji "rzeczywistej", co gwarantuje również, że ponowne odcięcie zostanie zwrócone wcześnie.

Ten interfejs API został wprowadzony w programie Visual Studio 17 RTM (DkmApiVersion.VS17RTM).

(Odziedziczone po DkmModuleInstance)
TryLoadSymbolsCallback177(DkmSymbolLoadFlags)

Wywoływana w celu zainicjowania ładowania symboli znajdujących się lokalnie dla obiektów DkmModuleInstance, których symbole nie zostały znalezione podczas ładowania modułu.

Ograniczenie lokalizacji: może to być wywoływane z klienta lub serwera. Implementacja serwera jest pamięcią podręczną, która zapobiega niepotrzebnym wywołaniom sieciowym. Klient przechodzi bezpośrednio do implementacji "rzeczywistej", co gwarantuje również, że ponowne odcięcie zostanie zwrócone wcześnie.

Ten interfejs API został wprowadzony w programie Visual Studio 17 Update 7 (DkmApiVersion.VS17Update7).

(Odziedziczone po DkmModuleInstance)
TryLoadSymbolsCallback177(DkmWorkList, DkmSymbolLoadFlags, DkmCompletionRoutine<DkmTryLoadSymbolsCallback177AsyncResult>)

Wywoływana w celu zainicjowania ładowania symboli znajdujących się lokalnie dla obiektów DkmModuleInstance, których symbole nie zostały znalezione podczas ładowania modułu.

Ta metoda dołączy nowy element roboczy do określonej listy roboczej i powróci po dołączeniu elementu roboczego. Rzeczywiste przetwarzanie elementu roboczego jest asynchroniczne. Obiekt wywołujący zostanie powiadomiony, że żądanie zostało ukończone przez procedurę ukończenia.

Ograniczenie lokalizacji: może to być wywoływane z klienta lub serwera. Implementacja serwera jest pamięcią podręczną, która zapobiega niepotrzebnym wywołaniom sieciowym. Klient przechodzi bezpośrednio do implementacji "rzeczywistej", co gwarantuje również, że ponowne odcięcie zostanie zwrócone wcześnie.

Ten interfejs API został wprowadzony w programie Visual Studio 17 Update 7 (DkmApiVersion.VS17Update7).

(Odziedziczone po DkmModuleInstance)
TryResolveToken(DkmStackWalkFrame, Int32, DkmClrType, Int32)

Próbuje rozwiązać problem z tokenem z zakresu tego modułu do modułu definiowania.

Ograniczenie lokalizacji: interfejs API musi być wywoływany ze składnika Monitor (poziom < składnika 100 000).

Ten interfejs API został wprowadzony w programie Visual Studio 17 Update 8 (DkmApiVersion.VS17Update8).

Unload()

Oznacz obiekt Unload jako zwolniony i powiadamiaj składniki, które implementują interfejs ujścia zdarzeń. Kontrolka zostanie zwrócona po powiadomieniu wszystkich składników.

Ta metoda może być wywoływana tylko przez składnik, który utworzył obiekt.

(Odziedziczone po DkmModuleInstance)

Dotyczy