Debuggen mit WinDbg
Moderatoren: crack, Krüsty, Marwin
Debuggen mit WinDbg
Hallo
Ich versuche mit WinDbg mein Programm zu debuggen. Dazu habe ich mir die neuesten Versionen von WinDbg und
der Symbols-Files runtergeladen und installiert. Beim Aufruf von WinDbg kommen nun ständig die Meldungen:
*** ERROR: Symbol file could not be found. Defaulted to export Symbols for usw.
Die dazugehörigen .dll und .pdb-Files sind aber da. Ich kann auch Breakpoints im Source-Code Window setzen und
sie mir im Command Window anzeigen lassen. Nach dem Befehl G (GO) kommt aber die Meldung:
^No runnable debuggees error in 'g'.
Kann mir da jemand weiterhelfen ?
Übrigens: Wie kann man mit Cut/Paste Text in einen Beitrag einfügen und ebenso Smilies
Vielen Dank
Flip
Ich versuche mit WinDbg mein Programm zu debuggen. Dazu habe ich mir die neuesten Versionen von WinDbg und
der Symbols-Files runtergeladen und installiert. Beim Aufruf von WinDbg kommen nun ständig die Meldungen:
*** ERROR: Symbol file could not be found. Defaulted to export Symbols for usw.
Die dazugehörigen .dll und .pdb-Files sind aber da. Ich kann auch Breakpoints im Source-Code Window setzen und
sie mir im Command Window anzeigen lassen. Nach dem Befehl G (GO) kommt aber die Meldung:
^No runnable debuggees error in 'g'.
Kann mir da jemand weiterhelfen ?
Übrigens: Wie kann man mit Cut/Paste Text in einen Beitrag einfügen und ebenso Smilies
Vielen Dank
Flip
- crack
- Administrator
- Beiträge: 280
- Registriert: Dienstag 21. Dezember 2004, 15:02
- Wohnort: 53783 Eitorf
- Kontaktdaten:
Re: Debuggen mit WinDbg
Ah, die externe Symboltabelle muss beim Compilieren/Linken erzeugt werden, dann kann der Debugger im Disassembly Listing die im Quelltext verwendeten Namen für Labels ausgeben, ansonsten nur die Addressen in Hex.Flip hat geschrieben:Hallo
Ich versuche mit WinDbg mein Programm zu debuggen. Dazu habe ich mir die neuesten Versionen von WinDbg und
der Symbols-Files runtergeladen und installiert. Beim Aufruf von WinDbg kommen nun ständig die Meldungen:
*** ERROR: Symbol file could not be found. Defaulted to export Symbols for usw.
Die dazugehörigen .dll und .pdb-Files sind aber da. Ich kann auch Breakpoints im Source-Code Window setzen und
sie mir im Command Window anzeigen lassen. Nach dem Befehl G (GO) kommt aber die Meldung:
^No runnable debuggees error in 'g'.
Kann mir da jemand weiterhelfen ?
Übrigens: Wie kann man mit Cut/Paste Text in einen Beitrag einfügen und ebenso Smilies
Vielen Dank
Flip
der G Befehl des Debuggers funktioniert meines Wissens nach nur bei .com Dateien ohne zusätzliche Optionen, ein .com File hat immer einen Offset von 0100h daher liegt der Programmeinsprungpunkt fest, bei einer .exe ist der Programmeinsprungpunkt im Header angegeben.
Copy and Paste sollte auch hier bei der neuen Software funzen test:
Copy and Paste sollte auch hier bei der neuen Software funzen ... funzt
Die Smilies sind in der Box links neben dem Eingabefeld, einfach anklicken und der Smilie Code wird an aktueller Cursorposition im Text eingefügt ...
mit freundlichen grüssen,
with best regards,
crack
with best regards,
crack
Re: Debuggen mit WinDbg
Hallo Crack
Die externe Symboltabelle habe ich erzeugt (.pdb File). Meinst Du, dass man nur .com Dateien mit WinDbg debuggen kann?
Mit den Smilies funktioniert es:
Vielleicht weisst Du Rat
Die externe Symboltabelle habe ich erzeugt (.pdb File). Meinst Du, dass man nur .com Dateien mit WinDbg debuggen kann?
Mit den Smilies funktioniert es:
Vielleicht weisst Du Rat
- crack
- Administrator
- Beiträge: 280
- Registriert: Dienstag 21. Dezember 2004, 15:02
- Wohnort: 53783 Eitorf
- Kontaktdaten:
Re: Debuggen mit WinDbg
Nun, ich kenne diesen speziellen Debugger (noch) nicht, ich denke schon das der auch .exe Dateien debuggen kann, ich meinte das er evtl. bei .exe Dateien den Programmeinsprungpunkt nicht kennt, und dieser hinter dem G als Option angegeben werden muss.Flip hat geschrieben:Hallo Crack
Die externe Symboltabelle habe ich erzeugt (.pdb File). Meinst Du, dass man nur .com Dateien mit WinDbg debuggen kann?
Mit den Smilies funktioniert es:![]()
Vielleicht weisst Du Rat
mit freundlichen grüssen,
with best regards,
crack
with best regards,
crack
Re: Debuggen mit WinDbg
Hallo Crack
Ich bin mit WinDbg weitergekommen. Die Error-Meldungen beim Laden des .exe Files waren irreführend
.
Mit dem Befehl g und der symbolischen Startadresse lief alles problemlos. Nun kann man wie mit
Code View das Source Code Debugging durchführen
.
Nochmals besten Dank.
Flip
Ich bin mit WinDbg weitergekommen. Die Error-Meldungen beim Laden des .exe Files waren irreführend
Mit dem Befehl g und der symbolischen Startadresse lief alles problemlos. Nun kann man wie mit
Code View das Source Code Debugging durchführen
Nochmals besten Dank.
Flip
- crack
- Administrator
- Beiträge: 280
- Registriert: Dienstag 21. Dezember 2004, 15:02
- Wohnort: 53783 Eitorf
- Kontaktdaten:
Re: Debuggen mit WinDbg
symbolische Startaddresse? etwa so: G start (wenn der Programmeinsprungpunkt im Quelltext durch das Label start: definiert wurde)?
interressant, dann könntest Du durch angabe der entsprechenden Labels auch unmittelbar in die Prozeduren einspringen ...
interressant, dann könntest Du durch angabe der entsprechenden Labels auch unmittelbar in die Prozeduren einspringen ...
mit freundlichen grüssen,
with best regards,
crack
with best regards,
crack
Re: Debuggen mit WinDbg
Hallo Crack
Wie Du es geschrieben hast, debugge ich mit WinDbg (g start start so heisst der Programmeingangspunkt)
.
Beim Drucken direkt auf den Drucker oder beim Ausgeben des Druckes auf eine Datei, erhalte ich den Fehler
Access violation - code c0000005
.
Beim googeln sehe ich, dass viele diesen Fehler haben, aber keiner schreibt, wie er ihn behoben hat.
Vielleicht hast Du eine Lösung.
Übrigens, wenn Du mit WinDbg arbeiten willst, solltest Du in der Directory Dich befinden, in welcher das .exe File steht.
Ich habe mir eine .bat Datei geschrieben, welche die Path-Variable um die Direcory erweitert, in welcher WinDbg steht.
Ich schicke Dir die .bat Datei mit.
Gruss
Flip
Wie Du es geschrieben hast, debugge ich mit WinDbg (g start start so heisst der Programmeingangspunkt)
Beim Drucken direkt auf den Drucker oder beim Ausgeben des Druckes auf eine Datei, erhalte ich den Fehler
Access violation - code c0000005
Beim googeln sehe ich, dass viele diesen Fehler haben, aber keiner schreibt, wie er ihn behoben hat.
Vielleicht hast Du eine Lösung.
Übrigens, wenn Du mit WinDbg arbeiten willst, solltest Du in der Directory Dich befinden, in welcher das .exe File steht.
Ich habe mir eine .bat Datei geschrieben, welche die Path-Variable um die Direcory erweitert, in welcher WinDbg steht.
Ich schicke Dir die .bat Datei mit.
Gruss
Flip
- crack
- Administrator
- Beiträge: 280
- Registriert: Dienstag 21. Dezember 2004, 15:02
- Wohnort: 53783 Eitorf
- Kontaktdaten:
Re: Debuggen mit WinDbg
Da WinDbg Teil des Microsoft Debugging Tool Pakets ist, könntest Du evtl. Informationen im MSDN finden.
Zuletzt geändert von crack am Sonntag 11. Mai 2008, 20:47, insgesamt 1-mal geändert.
Grund: Korrektur der Verweis-Zieladdresse
Grund: Korrektur der Verweis-Zieladdresse
mit freundlichen grüssen,
with best regards,
crack
with best regards,
crack
Re: Debuggen mit WinDbg
Hallo Crack
Ich habe jetzt ein paar Tage mit WinDbg rumprobiert, und finde das ganze zum Source-Code Debuggen sehr gut. Wenn
man sich etwas Zeit genommen hat, um hinter die zahlreichen Möglichkeiten zu kommen, klappt alles prima.
Aber mein eigentliches Problem mit der ACCESS VIOLATION habe ich mit WinDBG auch nicht gefunden. Auch unter MSDN
sind viele der ACCESS VIOLATION Artikel zu finden, aber nicht das was mich betrifft. Vielleicht komme ich noch dahinter.
Gruss
Flip
Ich habe jetzt ein paar Tage mit WinDbg rumprobiert, und finde das ganze zum Source-Code Debuggen sehr gut. Wenn
man sich etwas Zeit genommen hat, um hinter die zahlreichen Möglichkeiten zu kommen, klappt alles prima.
Aber mein eigentliches Problem mit der ACCESS VIOLATION habe ich mit WinDBG auch nicht gefunden. Auch unter MSDN
sind viele der ACCESS VIOLATION Artikel zu finden, aber nicht das was mich betrifft. Vielleicht komme ich noch dahinter.
Gruss
Flip
- crack
- Administrator
- Beiträge: 280
- Registriert: Dienstag 21. Dezember 2004, 15:02
- Wohnort: 53783 Eitorf
- Kontaktdaten:
Re: Debuggen mit WinDbg
ACCESS VIOLATION - eigentlich müsste es sachlich korrekt Access Rights Violation heissen, denn es werden die von Windows verwalteten Zugriffsrechte für Speicher oder Hardwareressourcen verletzt.
Da der Effekt beim Drucken auftritt, liegt fiolgende Vermutung nahe: entweder der zur Verfügung stehende Speicher ist zu klein, und das Programm versuch einen eigenen Druckerpuffer einzurichten, und verletzt dadurch die Grenze des zugewiesenen Speicherbereichs (das kennt man in Assembler nur zu gut, wenn man Pufferspeicher zu klein dimensioniert hat).
Oder das Programm versucht mit einer falschen Methode auf den Druckerport zuzugreifen, btw. ist der Drucker den tatsächlich am LPT1 Anschluss? Oder hängt er am USB Port? Ältere Programme setzen häufig vorraus das die 'traditionellen' E/A Ports benutzt werden.
Da der Effekt beim Drucken auftritt, liegt fiolgende Vermutung nahe: entweder der zur Verfügung stehende Speicher ist zu klein, und das Programm versuch einen eigenen Druckerpuffer einzurichten, und verletzt dadurch die Grenze des zugewiesenen Speicherbereichs (das kennt man in Assembler nur zu gut, wenn man Pufferspeicher zu klein dimensioniert hat).
Oder das Programm versucht mit einer falschen Methode auf den Druckerport zuzugreifen, btw. ist der Drucker den tatsächlich am LPT1 Anschluss? Oder hängt er am USB Port? Ältere Programme setzen häufig vorraus das die 'traditionellen' E/A Ports benutzt werden.
mit freundlichen grüssen,
with best regards,
crack
with best regards,
crack
Re: Debuggen mit WinDbg
Hallo Crack
Bei meinem Druckproblem gehe ich einmal über den Windows-Druckspooler und zum anderen auch leite ich die
Druckdaten in eine Datei.
Bei beiden Versuchen kommt es zur ACCESS VIOLATION.
Es sollen ca. 120 Blätter gedruckt werden, aber bei Blatt 105 wird abgebrochen.
Der Fehler muss wohl mit der Druckmenge zu tun haben, aber das macht mich auch nicht schlauer.
Vielleicht hast Du noch eine Idee.
Vielen Dank
Flip
Bei meinem Druckproblem gehe ich einmal über den Windows-Druckspooler und zum anderen auch leite ich die
Druckdaten in eine Datei.
Bei beiden Versuchen kommt es zur ACCESS VIOLATION.
Es sollen ca. 120 Blätter gedruckt werden, aber bei Blatt 105 wird abgebrochen.
Der Fehler muss wohl mit der Druckmenge zu tun haben, aber das macht mich auch nicht schlauer.
Vielleicht hast Du noch eine Idee.
Vielen Dank
Flip
- crack
- Administrator
- Beiträge: 280
- Registriert: Dienstag 21. Dezember 2004, 15:02
- Wohnort: 53783 Eitorf
- Kontaktdaten:
Re: Debuggen mit WinDbg
Hm, also Du schickst die Druckausgabe in eine Datei, per Druckerwarteschlange? Probier doch bitte einmal die Datei an einen physikalischen (oder 'real existierenden') Drucker zu senden, und das mit der Option 'Dateien sofort drucken' (also ohne den Printspooler).
Bei 'schlappen' 120 Seiten könnte es durchaus sein das der Druckspooler und der Schreibcache der Disk (die ja in dem Fall zeitgleich im Speicher existieren) in 'voller Fahrt aufeinanderprallen', und da beides Systemnahe Funktionen sind wird wohl eher keines von beidem dem anderen unbedingtes Vorrecht einräumen, sondern es kommt durch überlappen der beiden Puffer zu dem geschilderten Fehler. (Es könnte so sein, muss nicht...)
BTW.: was für ein Betriebssystem benutzt Du denn?
Bei 'schlappen' 120 Seiten könnte es durchaus sein das der Druckspooler und der Schreibcache der Disk (die ja in dem Fall zeitgleich im Speicher existieren) in 'voller Fahrt aufeinanderprallen', und da beides Systemnahe Funktionen sind wird wohl eher keines von beidem dem anderen unbedingtes Vorrecht einräumen, sondern es kommt durch überlappen der beiden Puffer zu dem geschilderten Fehler. (Es könnte so sein, muss nicht...)
BTW.: was für ein Betriebssystem benutzt Du denn?
Zuletzt geändert von crack am Montag 26. Mai 2008, 18:55, insgesamt 1-mal geändert.
Grund: Egänzung
Grund: Egänzung
mit freundlichen grüssen,
with best regards,
crack
with best regards,
crack
Re: Debuggen mit WinDbg
Hallo Crack
Ich war eine Zeit lang andersweitig beschäftigt, darum kann ich Dir erst jetzt antworten:
Als Betriebssystem benutze ich Windows XP Service Pack 3.
Beim Drucken habe ich mal nach jedem Blatt ein Sleep eingebaut, damit das System "sich ausruhen kann".
Aber der Fehler bleibt.
Vielen Dank
Flip
Ich war eine Zeit lang andersweitig beschäftigt, darum kann ich Dir erst jetzt antworten:
Als Betriebssystem benutze ich Windows XP Service Pack 3.
Beim Drucken habe ich mal nach jedem Blatt ein Sleep eingebaut, damit das System "sich ausruhen kann".
Aber der Fehler bleibt.
Vielen Dank
Flip