Dlaczego system Windows 7 prosi mnie o debugowanie programu?

4

Instalowałem Linuksa na Virtualbox, gdy Virtualbox zamarł. Wyskakujące okienko zapytało mnie, czy chcę debugować Virtualbox.

Dlaczego Windows 7 pyta mnie, użytkownika front-end, jeśli chcę debugować program? Czy to przełamuje bariery abstrakcji? Co Windows 7 zrobi mimo to po kliknięciu debugowania?

David Faux
źródło
Czy możesz opublikować zrzut ekranu? I nie sądzę, że Windows poprosił cię o debugowanie. Potrzebne było ręczne działanie z twojej strony, aby wykonać operację debugowania.
Bibhas
Nie pytaj, co zrobi ... Spróbuj!
Tamara Wijsman
Dzięki, nie mogę odtworzyć błędu, ale wyskakujące okienko zauważyło, że „Virtualbox przestał działać. [Debugowanie] [Zamknij aplikację]”.
David Faux
Próbowałem też kliknąć opcję debugowania, a okno Virtualbox po prostu zawiesiło się na pięć minut. Następnie program Visual Studio 2010 otworzył się i zauważył błąd wskaźnika zerowego. W jaki sposób pomaga mi to jako użytkownikowi końcowemu? Obcy.
David Faux

Odpowiedzi:

10

Twój system jest najprawdopodobniej skonfigurowany do debugowania po śmierci .

Nie jestem do końca pewien, co sprawia, że ​​Windows daje opcję debugowania nieudanego procesu. Posiadanie debugger zainstalowanego na pewno może być częścią decyzji. Być może proces może nawet wymusić wyświetlanie opcji debugowania po awarii.

Zazwyczaj opcja jest przeznaczona tylko dla programistów.

Ewentualnie powiązane czytanie:
https://stackoverflow.com/questions/396369/how-do-i-disable-the-debug-close-application-dialog-on-windows-vista

Der Hochstapler
źródło
Dziękujemy, wyskakujące okienko w pytaniu Stackoverflow jest dokładnie tym, co poszło nie tak. Mam zainstalowany debuger od czasu zainstalowania programu Visual Studio 2010.
David Faux
1
@Oliver, tak, dokładnie tak to działa. W przypadku awarii system Windows używa dowolnego debugera wskazanego w AeDebugkluczu rejestru. Domyślnie jest ustawiony na Dr. Watson, który po prostu tworzy zrzut awaryjny i rejestruje go, ale jeśli masz zainstalowany inny debugger (który instaluje większość środowisk programistycznych z oczywistych powodów), używa go zamiast tego. W takim przypadku, gdy program ulega awarii, a system Windows widzi, że masz zainstalowany debugger, prosi o załatwienie awarii, ponieważ nie wie, czy to Twój program, który testujesz, uległ awarii, czy program innej firmy.
Synetech,
3

Jeśli masz włączone debugowanie JIT w Visual Studio lub innym debuggerze, da ci to możliwość dołączenia debugera do procesu, który ulega awarii, abyś mógł przeprowadzić debugowanie pośmiertne. Jeśli nie chcesz debugować JIT, możesz go wyłączyć, a następnie musisz ręcznie dołączyć debugera do procesu, który chcesz debugować, zanim ulegnie awarii.

David Schwartz
źródło