Próbuję utworzyć plik zrzutu dla mojej aplikacji, gdy wystąpi awaria. Obecnie używam procdump.exe z flagą -e, aby to zrobić, więc jeśli mam nieobsługiwany wyjątek w mojej aplikacji, procdump tworzy dla mnie plik zrzutu.Utwórz plik zrzutu dla aplikacji, gdy wystąpi awaria.
Myślałem, że skończyłem, ale potem dowiedziałem się, że moja aplikacja się zawiesza, a procdump nie tworzy pliku zrzutu. Po pewnych badaniach odkryłem, że nieprawidłowe użycie wektora :: front powoduje błąd runtime. Włączyłem flagę _SECURE_SCL_THROWS, a po tym procdump.exe -e przechwyciłem awarię i utworzyłem plik zrzutu.
Teraz na moje pytanie: czy teraz procdump.exe -e zawsze tworzy plik zrzutu, gdy moja aplikacja ulega awarii? Jak mogę zagwarantować, że nie mam żadnych innych scenariuszy, w których procdump -e nie jest dla mnie dobry?
Dlaczego używasz 'GetProcAddr' dla' MiniDumpWriteDump', kiedy możesz po prostu włącz DbgHelp.h z Debugging Tool Kit? –
Ponieważ IAT (Import Address Table) może być już uszkodzony po wystąpieniu awarii. W takich urządzeniach ratunkowych jedyną niezawodną rzeczą jest samodzielne łączenie się z bibliotekami! –
@ ПетърПетров Ale jak nazwać "LoadLibrary"? Jeśli IAT jest uszkodzony, prawdopodobnie jesteś już spieprzony. – LHLaurini