È improbabile che il codice per registrare il minidump sia pertinente. Le cose principali che i record minidump sono le informazioni sul modulo (per ottenere simboli) e il contenuto completo di tutti gli stack di thread. Oltre a quelle informazioni di base (che sono sempre registrate) non importa nient'altro.
Ottenere buoni simboli (inclusi file PE) è cruciale per la camminata in pila. Maggiori dettagli possono essere trovati qui: https://randomascii.wordpress.com/2013/03/09/symbols-the-microsoft-way/
Trovo che Visual Studio sia solitamente affidabile nella visualizzazione delle pile di chiamate. Visualizza automaticamente lo stack di chiamate relativo dal record di eccezioni e semplifica la modifica dei thread in modo che sia possibile visualizzare le pile di chiamate di tutti i thread. A volte prova a "nascondere" i dettagli che pensa possano confondervi - che ciò sia positivo o negativo dipende dal tuo livello di abilità.
Windbg consente di visualizzare lo stack di chiamate del codice che ha registrato il crash dump anziché lo stack di chiamate in blocco. Windbg richiede che tu vada ".ecxr "o"! analizza -v "per vedere lo stack anomalo trovo fastidioso: Windbg richiede anche più configurazioni per essere utile
I due debugger hanno euristiche di stack differenti. necessario, ad esempio, se si chiama o si torna all'indirizzo zero poiché non ci sono informazioni di svolgimento per quell'indirizzo.Per i crash "puliti" in cui l'istruzione errata è nel codice normale queste euristiche sono meno importanti
quasi certamente migliorato negli ultimi dieci anni: VS 2015 Community Edition è molto capace ed è gratuito, quindi puoi anche provarlo.
Se usi windbg puoi provare s Esperimenti Ome:
!vc7fpo - toggles some of the windbg heuristics.
!stackdbg d, 7, f - turns on windbg stack walk
k1 - walks one level of the stack, spitting diagnostics as controlled by !stackdbg
dds esp - dumps the raw contents of the stack, doing a symbol lookup on each pointer
Se l'aggiornamento a VS 2015 e avere ancora problemi, allora è probabile che la pila camminare fallimenti sono specifici per il crash che si sta vedendo. Se un sovraccarico del buffer trompa lo stack prima di bloccarsi, lo stack di chiamate verrà danneggiato in modo irreversibile. La tua domanda ha troppe poche informazioni su quali guasti stai vedendo per dare una diagnosi definitiva. Trovo abbastanza affidabile la visualizzazione dello stack di entrambi i debugger, ma di solito capisco anche perché a volte falliscono e quando ciò accade posso comunque estrarre le informazioni di cui ho bisogno.
fonte
2015-11-02 23:44:30
0x8732ae00 è un indirizzo improbabile, è nello spazio del kernel (con l'installazione da 2 GB di x86-32). Gli indirizzi 0x7_______ sono più comuni, poiché la DLL di Windows si adatta al limite di 2 GB. Questo riduce il numero di rilocazioni necessarie. Se non vedi simboli per loro, usa il _Microsoft_ Symbol Server. – MSalters
Stavo solo inserendo gli indirizzi a caso, ad esempio (in questo caso è lì che una particolare console set-top piace spostare le DLL in modalità utente). – Crashworks