Występuje APPCRASH z mojej aplikacji C#. Środowisko wykonawcze wyświetla komunikat o błędzie "Ta aplikacja zażądała, aby środowisko wykonawcze zakończyło ją w nietypowy sposób". Następnie, po kliknięciu OK, pojawia się komunikat "Moja aplikacja przestała działać" z opcjami "sprawdź online dla rozwiązania", "zamknij program" i "debuguj program". Kiedy klikam "dodatkowe szczegóły", otrzymuję podpis APPCRASH z mnóstwem dodatkowych informacji. Niektóre z nich są czytelne dla człowieka, niektóre z nich to tylko liczby szesnastkowe. "Kod wyjątku" to 40000015. Istnieją również wiersze "Informacje dodatkowe". Moje pytanie brzmi: czy ktokolwiek we wszechświecie wie, co oznaczają informacje w komunikacie APPCRASH?Co oznaczają dane wiadomości APPCRASH?
Wygląda na to, że wiadomość miała być odczytana przez kogoś, kto może odgadnąć przyczynę. Szukając odpowiedzi, znalazłem wiele osób publikujących wiadomości sformatowane dokładnie tak samo. Niestety, nie znalazłem żadnych wyjaśnień na temat tego, co ta informacja oznacza.
Próbowałem także opcji "Debug Program", ale nie jest to pomocne. Po prostu umieszcza mnie w bibliotekach systemowych bez żadnego kodu w dowolnym miejscu na stosie wywołań. Sprawdziłem i błąd nie występuje w tym kodzie systemowym.
Komunikat APPCRASH nazwał inną bibliotekę DLL jako "moduł usterki" (ten kod używa wielu zewnętrznych bibliotek dll) i prawdopodobnie wystąpił tam błąd krytyczny. Ale ta informacja nie jest bardzo pomocna, ponieważ muszę znaleźć miejsce w moim kodzie, które powoduje złe wywołanie zewnętrznej biblioteki DLL (lub stawia ją w złym stanie). Niestety, kiedy mówię "mój kod", mam na myśli kod, nad którym pracuję. Jest to ogromna baza kodu napisana przez kilkadziesiąt osób w ciągu kilku lat, więc nie mogę po prostu zgadnąć miejsc, które mogą spowodować fatalne połączenie. Właśnie dlatego miałem nadzieję uzyskać więcej informacji z komunikatu APPCRASH. Właśnie dlatego jestem bardzo skąpy w szczegółach. Całość jest bardzo zastrzeżona z dużą ilością biurokracji. Właśnie dlatego nie opublikowałem treści wiadomości APPCRASH.
Dla jasności, nie proszę o zbadanie mojego problemu dla mnie. Nie mam możliwości przedstawienia powtarzalnego przypadku błędu i nie proszę nikogo, aby opowiedział mi przyczynę błędu w moim konkretnym przypadku. Po prostu chcę wiedzieć, jak interpretować te liczby szesnastkowe i nie udało mi się znaleźć żadnej dokumentacji.
To kod wyjątku, który jest używany, gdy natywny kod C lub C++ wywołuje funkcję abort(). Nie możemy pomóc ci go znaleźć, ale wyraźnie znajduje się on w "bibliotekach systemowych", w których się zagubiłeś. –
Ten wyjątek nie występuje w kodzie systemowym, który wprowadził mnie debugger; ale prawdopodobnie istnieje wyjątek w innej zewnętrznej bibliotece dll. Jeśli pochodzi z abort(), to umiera gdzieś w niezarządzanej krainie. – user1646801
Wygląda na to, że masz problemy z niezarządzanym kodem. Aby wyizolować problem, spróbowałbym sprawdzić [DllImport] w twoim kodzie i spróbować udawać, komentować to i widzieć, czy masz mniej problemów. Innym pomysłem jest, jeśli masz komponenty innych firm, które mogą mieć złe niezarządzane połączenia. Ostatni, spróbuj WinDBG i poszukaj problemu. WinDBG będzie moim ostatnim zasobem, ponieważ nie jestem specjalistą i jest to bardzo trudny sposób debugowania. –