Frage

Ein Client meiner Firma Programm läuft und es zu stoppen, bevor es überall bekommt. Sie sandten diese Informationen aus dem Windows-Ereignisprotokoll:

faulting module program.exe, version 1.2.3.4, fault address 0x00054321.

Wir haben nicht viel anderes zu gehen, um einen letzten verzweifelten Versuch ich versucht habe, um zu sehen, ob ich finden kann, wo diese Position in einem Disassembler ist. Ich betreibe das Programm durch Visual Studio, es Pause, Blick auf die Demontage Fenster und versuchen Sie zu dieser Adresse Scrollen, aber alles, was ich bekommen gibt es diese:

00054321  ???              
00054322  ???              
00054323  ???              
00054324  ???              
00054325  ???              
00054326  ???              
00054327  ???              
00054328  ???              
00054329  ???              
0005432A  ???              

Sei dies, weil Visual Studio nur einen Teil der EXE in der Nähe der Pausenposition oder etwas zerlegt? Es ist schwer für mich, wie viel zu schauen durch tatsächlich zerlegt wird, weil die Scrollbar nicht vollständig funktioniert. (Ich kann nicht die Bildlaufposition greifen und bewegen;. I für Zeile blättern oder durch Seite)

Vielen Dank für jede Einsicht Sie haben können!

War es hilfreich?

Lösung

Die Fehleradresse könnte auch aus einem Stapel Korruption Problem verursacht werden, dh. die Rücksprungadresse beeinträchtigt werden könnte und an die falsche Adresse @ 0x54321 sprang zurück. Auch in Abhängigkeit von der tecnology verwendet (Java, .NET) der Code ändern könnte seine Position zwischen den Läufen.

Visual Studio macht eine Demontage des gesamten Prozessraum. ???? bedeutet, dass die Position nicht zugänglich ist.

Sie sollten einen Stapel-Rahmen benötigen, um zu sehen, was passiert, von einem Core-Dump.

Andere Tipps

WinDbg kann dein Freund hier sein, dort können Sie die ausführbare Datei und die Symbole laden (PDB), wenn Sie einen (mini) bekommen kann Dump wie QbProg sagt, würde auf jeden Fall die Suche erleichtern. Aber ich habe Erfahrungen gemacht, wenn es leichter war, diese in WinDbg zu tun.

Was erwarten Sie bei der Demontage Fenster zu sehen? Dieser Ansatz wird nicht funktionieren. Wenn Sie genau die gleiche Build-Konfiguration neu erstellen können, dass Ihr Client ausgeführt wird, dann können Sie die / MAP Option in dem Link Optionen des Projektes. Dadurch wird eine Datei zu erstellen, die Symbole auf Adressen abbildet und ermöglicht es Ihnen, um zu sehen, welche Funktion ausgeführt wurde, als der Absturz aufgetreten. Sie können ein bisschen Berechnung zu tun haben, die rohe abgebildet Adresse gegen die Adresse zu versetzen das Modul auf dem Client-PC geladen wurde.

Wie Fredrik sagt, kann WinDbg der Lage sein, zu helfen, vor allem, wenn Sie Ihren Kunden PC einen Crash-Dump aus bekommen kann.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top