A volte normali passaggi per la risoluzione dei problemi non lo taglieranno. Potremmo avere bisogno di andare oltre - più come la risoluzione dei problemi forensi. Oggi scriverò uno strumento che ci aiuterà a farlo. Dipendenza Walker è uno strumento per analizzare le dipendenze di un'applicazione Windows - come funzioni, moduli, ecc. Costruisce un albero gerarchico di tutti i moduli dipendenti di un exe, dll, sys, ecc.
Dipendenza Walker
Dipendenza Walker può aiutarti a risolvere errori dell'applicazione, errori di registrazione dei file, violazioni dell'accesso alla memoria e errori di pagina non validi.
Il programma non carica solo i moduli, ma analizza anche eventuali errori. Secondo il file della Guida, esegue i seguenti lavori:
- Rileva i file mancanti. Questi sono file richiesti come dipendenza da un altro modulo. Un sintomo di questo problema è l'errore "La libreria di collegamento dinamico BAR.DLL non è stata trovata nel percorso specificato …".
- Rileva file non validi. Ciò include i file che non sono compatibili con Win32 o Win64 e file che sono corrotti. Un sintomo di questo problema è l'errore "L'applicazione o DLL BAR.EXE non è un'immagine di Windows valida".
- Rileva i disallineamenti di importazione / esportazione. Verifica che tutte le funzioni importate da un modulo vengano effettivamente esportate dai moduli dipendenti. Tutte le funzioni di importazione non risolte sono contrassegnate da un errore. Un sintomo di questo problema è il "Impossibile trovare il punto di ingresso della procedura FOO nella libreria di collegamenti dinamici BAR.DLL".
- Rileva errori di dipendenza circolare. Questo è un errore molto raro, ma può verificarsi con le funzioni inoltrate.
- Rileva i tipi di moduli CPU non corrispondenti. Ciò si verifica se un modulo creato per una CPU tenta di caricare un modulo creato per una CPU diversa.
- Rileva le incoerenze del checksum verificando i checksum del modulo per vedere se alcuni moduli sono stati modificati dopo la loro creazione.
- Rileva le collisioni del modulo evidenziando eventuali moduli che non riescono a caricare al loro indirizzo di base preferito.
- Rileva i guasti di inizializzazione del modulo tracciando le chiamate ai punti di ingresso del modulo e cercando errori.
- Dependency Walker può anche eseguire un profilo run-time dell'applicazione per rilevare i moduli caricati dinamicamente e gli errori di inizializzazione del modulo. Lo stesso controllo degli errori di cui sopra si applica anche ai moduli caricati dinamicamente.
Ad esempio, stavo aiutando un cliente l'altro giorno - stava caricando Internet Explorer, ma IE continuava a bloccarsi, senza errori specifici. Avevamo fatto la maggior parte dei problemi di base come disabilitare i componenti aggiuntivi e le barre degli strumenti, resettare IE alle impostazioni predefinite ecc. Ma continuava a bloccarsi. Ciò significava che uno o più file necessari per l'esecuzione corretta di Internet Explorer stava creando un problema. È sempre difficile risolvere questi casi, ma con Dependency Walker, possiamo vedere se qualcosa non va con uno dei file dipendenti.
Così ho caricato Internet Explorer in Dependency Walker.
Spero che questo ti dirà quanto è facile usare lo strumento per scoprire eventuali errori di dipendenza.
Come usare Dependency Walker
Per utilizzare Dependency Walker per indagare sugli errori, è possibile seguire questi passaggi:
- Avvia Dipendente Walker
- Fai clic su Apri nel menu File per caricare il file del problema
- Nel menu Visualizza, fai clic su Inizia profilazione. Viene visualizzata la finestra di dialogo Modulo profilo
- Digitare tutte le opzioni, gli argomenti del programma, le altre opzioni desiderate, quindi fare clic su OK.
Dependency Walker inietterà dwinject.dll prima che si verifichi l'errore e registrerà gli eventi che si verificano al momento dell'errore.
Download di Dependency Walker
Puoi scaricare Dependency Walker da Qui.