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:
-
Jednostki, które mogą implementować interfejsy, to:
Aparat debugowania (DE)
Dostawca portów (PS)
Ewaluator wyrażeń (EE)
Visual Studio (VS)
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 IDebugBreakpointErrorEvent2 element ). |
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 . |