Debuggen mit WinDbg

Hier könnt ihr sowohl zur x86 Architektur als auch zu Win32ASM Fragen stellen.

Moderatoren: crack, Krüsty, Marwin

Debuggen mit WinDbg

Beitragvon Flip » Samstag 10. Mai 2008, 18:35

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
Karl-Heinz Nicolai
Krebenweg 1
35418Buseck
E-Mail: ingenicolai@gmx.de
Flip
Member
 
Beiträge: 12
Registriert: Montag 28. April 2008, 17:13
Wohnort: 35418 Buseck

Re: Debuggen mit WinDbg

Beitragvon crack » Samstag 10. Mai 2008, 19:19

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


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.
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 :wink:
Die Smilies sind in der Box links neben dem Eingabefeld, einfach anklicken und der Smilie Code wird an aktueller Cursorposition im Text eingefügt ... 8)
mit freundlichen grüssen,
with best regards,

crack
Benutzeravatar
crack
Administrator
 
Beiträge: 280
Registriert: Dienstag 21. Dezember 2004, 15:02
Wohnort: 53783 Eitorf

Re: Debuggen mit WinDbg

Beitragvon Flip » Sonntag 11. Mai 2008, 12:18

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 :?:
Karl-Heinz Nicolai
Krebenweg 1
35418Buseck
E-Mail: ingenicolai@gmx.de
Flip
Member
 
Beiträge: 12
Registriert: Montag 28. April 2008, 17:13
Wohnort: 35418 Buseck

Re: Debuggen mit WinDbg

Beitragvon crack » Sonntag 11. Mai 2008, 12:31

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 :?:


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.
mit freundlichen grüssen,
with best regards,

crack
Benutzeravatar
crack
Administrator
 
Beiträge: 280
Registriert: Dienstag 21. Dezember 2004, 15:02
Wohnort: 53783 Eitorf

Re: Debuggen mit WinDbg

Beitragvon Flip » Sonntag 11. Mai 2008, 17:55

Hallo Crack

Ich bin mit WinDbg weitergekommen. Die Error-Meldungen beim Laden des .exe Files waren irreführend :evil: .
Mit dem Befehl g und der symbolischen Startadresse lief alles problemlos. Nun kann man wie mit
Code View das Source Code Debugging durchführen :D .
Nochmals besten Dank.


Flip
Karl-Heinz Nicolai
Krebenweg 1
35418Buseck
E-Mail: ingenicolai@gmx.de
Flip
Member
 
Beiträge: 12
Registriert: Montag 28. April 2008, 17:13
Wohnort: 35418 Buseck

Re: Debuggen mit WinDbg

Beitragvon crack » Sonntag 11. Mai 2008, 18:24

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 ... :!:
mit freundlichen grüssen,
with best regards,

crack
Benutzeravatar
crack
Administrator
 
Beiträge: 280
Registriert: Dienstag 21. Dezember 2004, 15:02
Wohnort: 53783 Eitorf

Re: Debuggen mit WinDbg

Beitragvon Flip » Sonntag 11. Mai 2008, 19:23

Hallo Crack

Wie Du es geschrieben hast, debugge ich mit WinDbg (g start start so heisst der Programmeingangspunkt) :D .

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
Karl-Heinz Nicolai
Krebenweg 1
35418Buseck
E-Mail: ingenicolai@gmx.de
Flip
Member
 
Beiträge: 12
Registriert: Montag 28. April 2008, 17:13
Wohnort: 35418 Buseck

Re: Debuggen mit WinDbg

Beitragvon crack » Sonntag 11. Mai 2008, 20:44

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
mit freundlichen grüssen,
with best regards,

crack
Benutzeravatar
crack
Administrator
 
Beiträge: 280
Registriert: Dienstag 21. Dezember 2004, 15:02
Wohnort: 53783 Eitorf

Re: Debuggen mit WinDbg

Beitragvon Flip » Dienstag 20. Mai 2008, 12:54

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
Karl-Heinz Nicolai
Krebenweg 1
35418Buseck
E-Mail: ingenicolai@gmx.de
Flip
Member
 
Beiträge: 12
Registriert: Montag 28. April 2008, 17:13
Wohnort: 35418 Buseck

Re: Debuggen mit WinDbg

Beitragvon crack » Donnerstag 22. Mai 2008, 13:23

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.
mit freundlichen grüssen,
with best regards,

crack
Benutzeravatar
crack
Administrator
 
Beiträge: 280
Registriert: Dienstag 21. Dezember 2004, 15:02
Wohnort: 53783 Eitorf

Re: Debuggen mit WinDbg

Beitragvon Flip » Montag 26. Mai 2008, 11:41

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
Karl-Heinz Nicolai
Krebenweg 1
35418Buseck
E-Mail: ingenicolai@gmx.de
Flip
Member
 
Beiträge: 12
Registriert: Montag 28. April 2008, 17:13
Wohnort: 35418 Buseck

Re: Debuggen mit WinDbg

Beitragvon crack » Montag 26. Mai 2008, 18:52

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?
Zuletzt geändert von crack am Montag 26. Mai 2008, 18:55, insgesamt 1-mal geändert.
Grund: Egänzung
mit freundlichen grüssen,
with best regards,

crack
Benutzeravatar
crack
Administrator
 
Beiträge: 280
Registriert: Dienstag 21. Dezember 2004, 15:02
Wohnort: 53783 Eitorf

Re: Debuggen mit WinDbg

Beitragvon Flip » Sonntag 22. Juni 2008, 13:36

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
Karl-Heinz Nicolai
Krebenweg 1
35418Buseck
E-Mail: ingenicolai@gmx.de
Flip
Member
 
Beiträge: 12
Registriert: Montag 28. April 2008, 17:13
Wohnort: 35418 Buseck


Zurück zu Assembler

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder

cron