Jak odzyskać okno komunikatu „… przestało działać”?


0

Mam aplikację konsolową, która zawiesza się zaraz po uruchomieniu, ale wyświetla kilka bardzo przydatnych informacji (do mojego debugowania) przed jej zakończeniem.

Uruchomiłem tę aplikację w systemie Windows 8.1, gdzie pojawiło się okno komunikatu z komunikatem o błędzie „... przestał działać”. Okno konsoli pozostanie otwarte, abym mógł odczytać dane wyjściowe konsoli, dopóki nie kliknę „Zamknij program” w oknie komunikatu o błędzie.

Przeprowadzam migrację do systemu Windows 10. Niestety system Windows 10 nie wyświetla komunikatu „... przestał działać”. Zamiast tego zamyka konsolę automatycznie, gdy tylko aplikacja ulegnie awarii.

Widzę to samo zjawisko na komputerach z systemem Windows 10 moich kontaktów, chociaż powiedziano mi także o jednym komputerze z systemem Windows 10, w którym nadal pojawia się okno komunikatu o błędzie.

Czy istnieje sposób, aby zmusić system Windows 10 do ponownego wyświetlenia okna komunikatu (globalnie lub tylko dla jednej aplikacji)?

Próbowałem różnych obejść, ale wszystkie mają swoje wady:

  • Jeśli uruchomię aplikację konsoli z okna konsoli ( cmd), nadal otworzy się dodatkowe okno konsoli, więc moje okno konsoli pozostanie puste. (Być może jest to związane z daną aplikacją wymagającą podwyższonych uprawnień i proszeniem o nie przy uruchamianiu?)
  • Robiąc to samo i przesyłając dane wyjściowe do pliku, po prostu tworzy pusty plik.
  • Mogę zmodyfikować kod źródłowy aplikacji konsolowej, aby na końcu poczekać na dane wejściowe, ale jest to zmiana, którą muszę wprowadzić tylko w lokalnej kopii roboczej, a to oznacza, że ​​muszę codziennie odbudowywać tę aplikację ( ponieważ mój lokalny plik binarny zostanie w przeciwnym razie zastąpiony przez najnowszą wersję z serwera kompilacji).
  • Mogę znaleźć to samo wyjście w dzienniku zdarzeń Windows, ale jest to dość żmudna alternatywa, biorąc pod uwagę, że przeglądarka dziennika zdarzeń jest dość powolną aplikacją i ma tendencję do zakopywania odpowiednich danych wśród tysięcy innych nieciekawych wpisów w dzienniku.

2
Oprócz rozwiązania problemu, za każdym razem, gdy tak się dzieje, zawsze zapisywany jest dziennik zdarzeń, więc zawsze możesz przeczytać tam tekst.
LPChip

... has stopped workingkomunikat jest nadal wyświetlany w systemie Windows 10, jeśli dotyczy, więc jeśli tak się nie dzieje, błąd jest spowodowany przez coś, co mu zapobiega. ... has stopped workingpowinno się to zdarzyć tylko wtedy, gdy system Windows uważa, że ​​plik wykonywalny został zawieszony, jeśli aplikacja ulega awarii z nieobsługiwanym wyjątkiem, komunikat nie będzie wyświetlany w żadnej wersji systemu Windows. Jeśli program wymaga podwyższonych uprawnień w systemie Windows 10, a nie w systemie Windows 8, brzmi to jak różnica konfiguracji między dwiema instalacjami.
Ramhound

@LPChip: Racja, zapomniałem o tej alternatywie. Na koniec wspomniałem o tym w dodatkowej pozycji, dzięki.
LUB Mapper

@Ramhound: Program wymaga podwyższonych uprawnień zarówno w systemie Windows 8, jak i 10. „Jeśli aplikacja ulega awarii z nieobsługiwanym wyjątkiem, komunikat nie będzie wyświetlany w żadnej wersji systemu Windows” - nie mogę stwierdzić, czy jest to prawda, czy fałsz. Widzę tylko, że aplikacja niezmiennie (zarówno w Windows 8, jak i 10) ulega awarii z nieobsługiwanym ReflectionTypeLoadException, po czym w Win8 pojawia się komunikat „... przestał działać”, podczas gdy nie działa w Win10.
LUB Mapper

1
„ma tendencję do zakopywania odpowiednich danych wśród tysięcy innych nieciekawych wpisów w dzienniku”. Pozostaw przeglądarkę zdarzeń otwartą (w razie potrzeby użyj odświeżenia), możesz filtrować lub wyszukiwać według numeru wydarzenia, co nie jest uciążliwe.
Moab
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.