Obecnie nazywamy MiniDumpWriteDump
z flagami MiniDumpNormal | MiniDumpWithIndirectlyReferencedMemory
. Działa to dobrze dla wewnętrznych kompilacji w konfiguracji debugowania, ale nie podaje tak dużo informacji, jakich potrzebujemy w konfiguracji wydania.Jakie ustawienia powinienem użyć w Minidumpach?
W wersji, dane minizrzutu zawierają wystarczającą ilość informacji o stosie, aby debugger mógł ustalić, gdzie w kodzie wystąpił błąd, ale nie ma innych danych. Nie oznacza to po prostu, że brakuje lokalnych zmiennych, ponieważ zostały zoptymalizowane, jak można się spodziewać w wersji Release - nie ma nic użytecznego poza stosem wywołań i aktualną linią kodu. Brak rejestrów, brak miejscowych, brak globaliów, brak obiektów wskazanych przez mieszkańców - nic. Nie otrzymujemy nawet "tego", co pozwoliłoby nam wyświetlić bieżący obiekt. Taki był sens używania MiniDumpWithIndirectlyReferencedMemory
- powinien on zawierać pamięć przywoływaną przez locale i zmienne stosu, ale nie wydaje się.
Jakich flag powinniśmy użyć zamiast tego? Nie chcemy używać MiniDumpWithFullMemory
i zaczynamy generować 600MB + zrzutów, ale z przyjemnością rozwijalibyśmy zrzuty nieco poza 90KB, które obecnie otrzymujemy, jeśli oznaczało to uzyskanie bardziej przydatnych danych. Być może powinniśmy używać MiniDumpWithDataSegments
(globals) lub ...?
Jakiego wyjątku doszło do awarii twojego programu? – HelloWorld