Udostępnij za pośrednictwem


Interfejsy podstawowe

Poniższe interfejsy to podstawowe interfejsy służące do rozszerzania debugera przy użyciu zestawu Visual Studio SDK.

Dyskusja

Te interfejsy są używane głównie do tworzenia aparatu debugowania (DE). Są one zorganizowane tutaj według kategorii:

Punkty przerwania

Te interfejsy są związane z implementacją i śledzeniem punktów przerwania.

Interfejs Zaimplementowane przez opis
IDebugBoundBreakpoint2 DE Reprezentuje punkt przerwania powiązany z lokalizacją pamięci.
IDebugBreakpointBoundEvent2 DE Wysyłane przez de, gdy punkt przerwania jest powiązany z lokalizacją pamięci.
IDebugBreakpointChecksumRequest2 VS Reprezentuje sumę kontrolną dokumentu dla żądania punktu przerwania.
IDebugBreakpointErrorEvent2 DE Wysłane przez de, gdy punkt przerwania nie może być powiązany z lokalizacją pamięci.
IDebugBreakpointEvent2 DE Wysłane przez DE po osiągnięciu punktu przerwania.
IDebugBreakpointRequest2 VS Reprezentuje żądanie punktu przerwania; używany w tworzeniu oczekującego punktu przerwania.
IDebugBreakpointRequest3 VS Reprezentuje żądanie punktu przerwania; używany w tworzeniu oczekującego punktu przerwania.
IDebugBreakpointResolution2 DE Reprezentuje informacje używane do powiązania punktu przerwania.
IDebugBreakpointUnboundEvent2 DE Wysyłane przez de, gdy punkt przerwania jest niezwiązany z lokalizacji pamięci.
IDebugErrorBreakpoint2 DE Reprezentuje nieprawidłowy punkt przerwania (zwracany przez IDebugBreakpointErrorEvent2element ).
IDebugErrorBreakpointResolution2 DE Reprezentuje informacje o rozwiązaniu nieprawidłowego punktu przerwania.
IDebugFunctionPosition2 DE Reprezentuje pozycję w funkcji, w której ustawiany jest punkt przerwania.
IDebugPendingBreakpoint2 DE Reprezentuje punkt przerwania, który ma być powiązany; używany w tworzeniu powiązanego punktu przerwania.
IEnumDebugBoundBreakpoints2 DE Reprezentuje wyliczenie dla zestawu powiązanych punktów przerwania.
IEnumDebugErrorBreakpoints2 DE Reprezentuje wyliczenie dla zestawu punktów przerwania, których nie można powiązać z lokalizacją pamięci.

Konteksty

Te interfejsy reprezentują różne rodzaje kontekstów w ramach debugowanego programu.

Interfejs Zaimplementowane przez opis
IDebugCodeContext2 DE Reprezentuje pozycję początkową instrukcji kodu.
IDebugCodeContext3 DE Rozszerza interfejs IDebugCodeContext2, aby umożliwić pobieranie interfejsów modułów i procesów.
IDebugDocumentContext2 VS, DE Reprezentuje pozycję w dokumencie.
IDebugExpressionContext2 DE Reprezentuje kontekst, w którym ma być obliczane wyrażenie.
IDebugMemoryContext2 DE Reprezentuje lokalizację początkową w pamięci kolekcji bajtów.
IDebugStackFrame2 DE Reprezentuje kontekst ramki stosu w punkcie przerwania lub wyjątku.
IDebugStackFrame3 DE Reprezentuje kontekst ramki stosu w punkcie przerwania lub wyjątku.
IEnumDebugCodeContexts2 DE Reprezentuje wyliczenie w zestawie kontekstów kodu.

Serwer podstawowy

Te interfejsy reprezentują maszynę, na której jest debugowany program. Są one implementowane przez program Visual Studio, ale mogą być wywoływane przez aparaty debugowania.

Interfejs Zaimplementowane przez opis
IDebugCoreServer2 VS Zapewnia dostęp do portów i dostawców portów oraz informacji o komputerze.
IDebugCoreServer3 VS Reprezentuje IDebugCoreServer2, który obsługuje debugowanie zdalne.

Aparaty debugowania

Te interfejsy reprezentują aparaty debugowania i skojarzone z nimi zdarzenia.

Interfejs Zaimplementowane przez opis
IDebugEngine2 DE Reprezentuje niestandardowy aparat debugowania.
IDebugEngine3 DE Reprezentuje niestandardowy aparat debugowania, który obsługuje ładowanie symboli, JustMyCode i wyjątków.
IDebugEngineCreateEvent2 DE Wysłane przez każde nowe wystąpienie de, aby wskazać, że jest gotowy do obsługi zadań debugowania.
IDebugEngineLaunch2 DE Reprezentuje niestandardowy aparat debugowania, który obsługuje uruchamianie programów.
IDebugProgramEngines2 DE, PS Reprezentuje węzeł programu, który obsługuje wiele aparatów debugowania.
IDebugQueryEngine2 DE Umożliwia sdM uzyskanie interfejsu do aparatu debugowania z wątku, programu lub ramki stosu.

Dokumenty

Te interfejsy reprezentują dokumenty (pliki źródłowe) i skojarzone z nimi elementy.

Interfejs Zaimplementowane przez opis
IDebugActivateDocumentEvent2 DE Wysłana przez DE w celu zażądania otwarcia dokumentu.
IDebugDisassemblyStream2 DE Reprezentuje strumień instrukcji dezasemblowanych z dokumentu.
IDebugDocument2 VS, DE Reprezentuje dokument dostarczony przez DE, określając nazwę i identyfikator klasy (CLSID).
IDebugDocumentChecksum2 DE, EE Reprezentuje sumę kontrolną dokumentu debugowania i umożliwia przekazywanie sumy kontrolnej między składnikami.
IDebugDocumentContext2 VS, DE Reprezentuje kontekst dokumentu, pozycję w dokumencie odpowiadającą konkretnej instrukcji i kontekstu kodu.
IDebugDocumentPosition2 VS, DE Reprezentuje pozycję ogólną w dokumencie.
IDebugDocumentPositionOffset2 VS Reprezentuje pozycję w pliku źródłowym jako przesunięcie znaku.
IDebugDocumentText2 VS, DE Reprezentuje dokument tekstowy dostarczony przez DE (pochodzący z IDebugDocument2), podając rzeczywisty tekst.
IDebugDocumentTextEvents2 DE Wysłane przez DE w celu określenia zmian w pliku źródłowym, który znajduje się w pamięci.

Wydarzenia

Te interfejsy reprezentują wszystkie zdarzenia wysyłane między de i menedżerem debugowania sesji (SDM).

Interfejs Zaimplementowane przez opis
IDebugActivateDocumentEvent2 DE Wysłana przez DE w celu zażądania otwarcia dokumentu.
IDebugBeforeSymbolSearchEvent2 DE Aparat debugowania (DE) wysyła ten interfejs do menedżera debugowania sesji (SDM), aby ustawić komunikat paska stanu podczas ładowania symboli.
IDebugBreakEvent2 DE Wysłane przez DE po zakończeniu przerwy w programie.
IDebugBreakpointBoundEvent2 DE Wysyłane przez de, gdy punkt przerwania jest powiązany.
IDebugBreakpointErrorEvent2 DE Wysłane przez de, gdy punkt przerwania nie może być powiązany.
IDebugBreakpointEvent2 DE Wysłane przez DE po osiągnięciu punktu przerwania.
IDebugBreakpointUnboundEvent2 DE Wysyłane przez de, gdy punkt przerwania jest niezwiązany.
IDebugCanStopEvent2 DE Wysłany przez DE w celu ustalenia, czy powinien zatrzymać się w określonej lokalizacji.
IDebugDocumentTextEvents2 DE Wysłane przez DE w celu określenia zmian w pliku źródłowym, który znajduje się w pamięci.
IDebugEngineCreateEvent2 DE Wysłane przez każde nowe wystąpienie de, aby wskazać, że jest gotowy do obsługi zadań debugowania.
IDebugEntryPointEvent2 DE Wysłane przez DE, aby wskazać, że debugowany program jest gotowy do wykonania pierwszej instrukcji.
IDebugErrorEvent2 DE Interfejs używany przez inne interfejsy zdarzeń, który może zwrócić błąd, aby zapewnić czytelne dla człowieka komunikaty o błędach.
IDebugEvent2 DE, PS Interfejs podstawowy, z którego pochodzą wszystkie inne interfejsy zdarzeń.
IDebugEventCallback2 VS Reprezentuje interfejs zaimplementowany przez sdM, do którego są wysyłane zdarzenia (wyrażone jako obiekty implementowane określony interfejs zdarzenia).
IDebugExceptionEvent2 DE Wysłane przez DE, gdy wystąpił wyjątek w debugowanych programach.
IDebugExpressionEvaluationCompleteEvent2 DE Wysyłane przez de po zakończeniu oceny wyrażenia asynchronicznego.
IDebugFindSymbolEvent2 PRZESTARZAŁE. NIE UŻYWAJ.
IDebugInterceptExceptionCompleteEvent2 DE Wysłane przez DE podczas przetwarzania przechwyconego wyjątku zostało ukończone.
IDebugLoadCompleteEvent2 DE Wysłane przez DE po zakończeniu ładowania programu.
IDebugMessageEvent2 DE Wysłane przez de, aby środowisko IDE wyświetlało użytkownikowi komunikat informacyjny.
IDebugModuleLoadEvent2 DE Wysyłane przez de po załadowaniu lub usunięciu modułu.
IDebugNoSymbolsEvent2 DE Sygnalizuje interfejs użytkownika debugera programu Visual Studio, aby ostrzec użytkownika, że symbole nie mogą znajdować się dla uruchomionego pliku wykonywalnego.
IDebugOutputStringEvent2 DE Wysłane przez de, aby środowisko IDE wyświetlało dowolny ciąg.
IDebugPortEvents2 VS, DE Wysłane przez port w celu przekazywania zdarzeń portów do dowolnego odbiornika.
IDebugProcessCreateEvent2 DE, PS Wysłane przez de lub port po utworzeniu procesu.
IDebugProcessDestroyEvent2 DE, PS Wysłane przez de lub port, gdy proces został zniszczony.
IDebugProgramCreateEvent2 DE, PS Wysłane przez de lub port po utworzeniu programu.
IDebugProgramDestroyEvent2 DE, PS Wysłane przez DE lub port, gdy program został zniszczony.
IDebugProgramDestroyEventFlags2 DE Umożliwia aparatowi debugowania zastąpienie domyślnego zachowania interfejsu użytkownika programu Visual Studio po zakończeniu sesji debugowania.
IDebugProgramNameChangedEvent2 DE Wysłane z aparatu debugowania (DE) do menedżera debugowania sesji (SDM), gdy nazwa programu ulegnie zmianie.
IDebugPropertyCreateEvent2 DE Wysłane przez DE po utworzeniu nowej właściwości (reprezentowanej IDebugProperty2 przez interfejs).
IDebugPropertyDestroyEvent2 DE Wysłane przez DE, gdy nieruchomość została zniszczona.
IDebugReturnValueEvent2 DE Wysłane przez de podczas wykroczenia funkcji lub przez funkcję, aby wartość zwracana mogła być poprawnie wyświetlana.
IDebugSettingsCallback2 VS Umożliwia aparatom debugowania zdalne odczytywanie ustawień metryk.
IDebugStepCompleteEvent2 DE Wysłane przez DE, gdy krok do lub z instrukcji został ukończony.
IDebugSymbolSearchEvent2 DE Wysłane przez DE w celu wskazania powodzenia lub niepowodzenia ładowania symboli dla modułu.
IDebugThreadCreateEvent2 DE Wysłane przez DE po utworzeniu wątku.
IDebugThreadDestroyEvent2 DE Wysłane przez DE, gdy wątek został zniszczony.
IDebugThreadNameChangedEvent2 DE Wysłane przez DE, gdy wątek zmienił swoją nazwę.

Wyrażenia

Te interfejsy reprezentują wyrażenia, które mają być oceniane w określonym kontekście.

Interfejs Zaimplementowane przez opis
IDebugExpression2 DE Reprezentuje wyrażenie do obliczenia. Uzyskany z interfejsu IDebugExpressionContext2 .
IDebugExpressionContext2 DE Reprezentuje kontekst, w którym jest obliczane wyrażenie. Uzyskany z interfejsu IDebugStackFrame2 .
IDebugExpressionEvaluationCompleteEvent2 DE Wysyłane przez de po zakończeniu oceny wyrażenia asynchronicznego.

Pamięć

Te interfejsy reprezentują sekwencje bajtów w pamięci.

Interfejs Zaimplementowane przez opis
IDebugMemoryBytes2 DE Reprezentuje sekwencję bajtów w pamięci, z których można odczytywać lub zapisywać.
IDebugMemoryContext2 DE Reprezentuje lokalizację w pamięci sekwencji bajtów.

Moduły

Te interfejsy reprezentują moduł odpowiadający plikowi wykonywalnemu lub plikowi DLL.

Interfejs Zaimplementowane przez opis
IDebugModule2 DE Reprezentuje pojedynczy plik wykonywalny lub bibliotekę DLL.
IDebugModule3 DE Reprezentuje moduł IDebugModule2 , który obsługuje symbole.
IDebugModuleLoadEvent2 DE Wysyłane przez de po załadowaniu lub usunięciu modułu.
IDebugSourceServerModule DE Reprezentuje informacje o serwerze źródłowym zawarte w pliku PDB.
IEnumDebugModules2 DE Reprezentuje wyliczenie w zestawie modułów, które są znane przez program IDebugProgram2.

Porty

Te interfejsy reprezentują porty i dostawców portów.

Interfejs Zaimplementowane przez opis
IDebugDefaultPort2 VS, PS Reprezentuje port domyślny na komputerze lokalnym.
IDebugFirewallConfigurationCallback2 VS Włącza aparat debugowania używający modelu DCOM, aby poprosić interfejs użytkownika programu Visual Studio o upewnienie się, że zapora nie zablokuje zdalnego debugowania.
IDebugPort2 VS, PS Reprezentuje port.
IDebugPortEvents2 PS Wysłane przez port w celu przekazywania zdarzeń portów do dowolnego odbiornika.
IDebugPortEx2 PS Reprezentuje port, który może uruchamiać i przerywać procesy.
IDebugPortNotify2 PS Służy do rejestrowania i wyrejestrowania programów przy użyciu portu; umożliwia portowi śledzenie aktualnie debugowanych programów.
IDebugPortPicker PS Reprezentuje dostosowany interfejs użytkownika do wybierania portu.
IDebugPortRequest2 VS Reprezentuje żądanie portu, z którego zostanie utworzony lub zlokalizowany nowy port.
IDebugPortSupplier2 PS Reprezentuje dostawcę portów.
IDebugPortSupplier3 PS Reprezentuje dostawcę portów, który może utrwalać (zapisać na dysku) informacje o utworzonych portach.
IDebugPortSupplierDescription2 PS Umożliwia interfejsowi użytkownika programu Visual Studio wyświetlanie tekstu w sekcji Informacje o transporcie w oknie dialogowym Dołączanie do procesu.
IDebugWindowsComputerPort2 VS Umożliwia wykonywanie zapytań dotyczących informacji o komputerze docelowym.
IEnumDebugPorts2 VS, PS Reprezentuje wyliczenie w zestawie portów.
IEnumDebugPortSuppliers2 VS Reprezentuje wyliczenie dla zestawu dostawców portów.

Procesy

Te interfejsy reprezentują procesy, pojedynczy plik wykonywalny zawierający co najmniej jeden program.

Interfejs Zaimplementowane przez opis
IDebugProcess2 PS, DE Reprezentuje proces uruchomiony na komputerze.
IDebugProcess3 PS, DE Reprezentuje proces, który aktywnie obsługuje debugowanie (używane do zastępowania metod Krok, Kontynuuj i Execute w interfejsie IDebugProgram2 ).
IDebugProcessCreateEvent2 DE, PS Wysłane przez de lub port po utworzeniu procesu.
IDebugProcessDestroyEvent2 DE, PS Wysłane przez de lub port, gdy proces został zniszczony.
IDebugProcessEx2 PS Reprezentuje proces, który musi śledzić, która sesja jest do niej dołączona.
IEnumDebugProcesses2 PS Reprezentuje wyliczenie zestawu procesów na porcie.

Programy

Te interfejsy reprezentują programy, jednostki logiczne wykonywania, które niekoniecznie odpowiadają fizycznemu plikowi wykonywalnemu lub modułowi.

Interfejs Zaimplementowane przez opis
IDebugEngineProgram2 DE Reprezentuje program IDebugProgram2 , który musi współpracować z innymi programami debugowanych w tym samym czasie.
IDebugProgram2 DE, PS Reprezentuje jednostkę logiczną wykonywania.
IDebugProgramCreateEvent2 DE, PS Wysłane przez de lub port po utworzeniu programu.
IDebugProgramDestroyEvent2 DE, PS Wysłane przez DE lub port, gdy program został zniszczony.
IDebugProgramEngines2 DE, PS Reprezentuje IDebugProgramNode2, który może być obsługiwany przez wiele aparatów debugowania.
IDebugProgramEx2 PS Reprezentuje program IDebugProgram2 , który musi być w stanie śledzić, która sesja jest do niej dołączona.
IDebugProgramHost2 DE, PS Reprezentuje program IDebugProgram2 , który może zwracać informacje o procesie, w którym jest uruchomiony.
IDebugProgramNode2 DE, PS Reprezentuje program, który można debugować.
IDebugProgramNodeAttach2 DE, PS Umożliwia powiadomienie węzła programu o próbie dołączenia do skojarzonego programu.
IDebugProgramProvider2 DE Zapewnia sposób, aby SDM wysyłać zapytanie do DE o programach kontrolowanych przez ten DE.
IDebugProgramPublisher2 VS Używane przez kontrolery domeny do rejestrowania programów za pomocą sdM w celu pokazania, że są debugowane.
IDebugProviderProgramNode2 DE, PS Reprezentuje IDebugProgramNode2, który może marshalować interfejsy między granicami wątku lub procesu.
IEnumDebugPrograms2 DE, PS Reprezentuje wyliczenie zestawu programów.

Właściwości

Te interfejsy reprezentują właściwości, wartość skojarzona z określonym kontekstem, zwykle wynik oceny wyrażenia.

Interfejs Zaimplementowane przez opis
IDebugCustomViewer EE Reprezentuje właściwość IDebugProperty2 , która może wyświetlać swoją wartość w niestandardowy sposób.
IDebugProperty2 DE Reprezentuje wartość ramki stosu, dokumentu lub wyniku oceny wyrażenia.
IDebugProperty3 DE Reprezentuje właściwość IDebugProperty2 , która obsługuje dowolnie długie ciągi.
IDebugPropertyCreateEvent2 DE Wysłane przez DE po utworzeniu nowej właściwości (reprezentowanej przez interfejs IDebugProperty2 ).
IDebugPropertyDestroyEvent2 DE Wysłane przez DE, gdy nieruchomość została zniszczona.
IDebugReference2 DE Reprezentuje odwołanie do właściwości, która może istnieć poza każdą konkretną ramką stosu.
IEnumDebugPropertyInfo2 DE Reprezentuje wyliczenie w zestawie struktur DEBUG_PROPERTY_INFO opisujących zmienne, rejestry, parametry i wyrażenia.
IEnumDebugReferenceInfo2 DE Reprezentuje wyliczenie w zestawie struktur DEBUG_REFERENCE_INFO .

Ramki stosu

Te interfejsy reprezentują ramkę stosu, kontekst, w którym wystąpił punkt przerwania lub wyjątek.

Interfejs Zaimplementowane przez opis
IDebugStackFrame2 DE Reprezentuje kontekst, w którym wystąpił punkt przerwania lub wyjątek.
IDebugStackFrame3 DE Reprezentuje element IDebugStackFrame2 , który może obsługiwać przechwycone wyjątki.
IEnumCodePaths2 DE Reprezentuje wyliczenie w zestawie struktur CODE_PATH , które określają sekwencję wywołań funkcji używaną do dotarcia do określonej ramki stosu.
IEnumDebugFrameInfo2 DE Reprezentuje wyliczenie w zestawie struktur FRAMEINFO , które opisują ramki stosu.

Wątki

Te interfejsy reprezentują wątki i skojarzone z nimi zdarzenia.

Interfejs Zaimplementowane przez opis
IDebugThread2 DE Reprezentuje wątek wykonywania.
IDebugThreadCreateEvent2 DE Wysłane przez DE po utworzeniu wątku.
IDebugThreadDestroyEvent2 DE Wysłane przez DE, gdy wątek został zniszczony.
IDebugThreadNameChangedEvent2 DE Wysłane przez DE, gdy wątek zmienił swoją nazwę.
IEnumDebugThreads2 DE Reprezentuje wyliczenie w zestawie wątków.

Wizualizatory typów

Te interfejsy zapewniają obsługę wizualizatorów typów. Te interfejsy są zwykle implementowane przez ewaluatora wyrażeń.

Interfejs Zaimplementowane przez opis
IEEDataStorage EE Reprezentuje tablicę bajtów, która ma być prezentowana wizualizatorowi typów.
IPropertyProxyEESide EE Udostępnia metody uzyskiwania dostępu do danych, które mają być przekazywane do wizualizatora typów.
IPropertyProxyProvider EE Reprezentuje właściwość, która zapewnia dostęp do implementacji IPropertyProxyEESide .

Zobacz też