www.mikrocontroller.net

Forum: PC-Programmierung Literatur zum Thema "Debugging"


Important announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
Autor: Nicolas S. (Gast)
Datum:

Diesen Beitrag bewerten:
lesenswert
nicht lesenswert
Hallo zusammen,
es ist mir regelrecht peinlich, es zuzugeben, aber ich habe jetzt 
jahrelang programmiert, ohne einen Debugger benutzt zu haben, meist 
mithilfe von Ausgaben an die Konsole.

Aber: Peinliche Zustände müssen ja nicht für ewig anhalten. Also: Kann 
mir jemand gute Einführungsliteratur zum Thema "Debugger" empfehlen?

Viele Grüße
Nicolas

Autor: Yalu X. (yalu) (Moderator)
Datum:

Diesen Beitrag bewerten:
lesenswert
nicht lesenswert
Da jeder Debugger etwas anders bedient wird, solltest du auf jeden Fall
das mitgelieferte Handbuch lesen. Da die Verwendung eines Debuggers
keiner hohe Theorie bedarf, glaube ich nicht, dass du noch zusätzliche
Allgemeinliteratur brauchst.

Ich muss zugeben, dass ich noch nicht einmal die Anleitungen der von mir
verwendeten Debugger vollständig gelesen habe. Ausprobieren und die
meist sehr knapp gehaltene Online-Hilfe haben gereicht.

Autor: Random ... (thorstendb)
Datum:

Diesen Beitrag bewerten:
lesenswert
nicht lesenswert
Hi,

du musst nur mal nen Debugger starten, dann siehst du recht schnell, wie 
der funktioniert.

Ich hab für µVision oder Visual Studio auch noch nie ein Handbuch 
gelesen :-)

Im Grunde heisst debuggen:
- Breakpoints setzen (Address oder Data)
- Steppen (in, out, over function)
- Variablen (bei embedded noch Register) -werte ansehen und verändern
- Speicherbereiche und Strukturen ansehen, ggf. Werte ändern

Dazu kommen dann noch Spezialitäten, die der Debugger so unterstützt. 
Aber das ist das grundlegende Handwerkszeug, was ca. 90% der Debug-Zeit 
benötigt wird.


Das schöne z.B. am Visual Studio ist, dass du nach einem erreichten BP 
den Code ändern kannst (lokale Änderungen in der Funktion), und dann 
wird bei Go oder Step der Code neu compiliert und du kannst 
weiterdebuggen, ohne die laufende Session beendet zu haben.


VG,
/th.

Autor: dbg (Gast)
Datum:

Diesen Beitrag bewerten:
lesenswert
nicht lesenswert
Wichtiger als die Bedienung des Debugtools ist die tiefgehende 
Kenntnis der Einsatzbedingungen des zu debuggenden Programms. 
Betriebssystem, Bibliotheken, Eigenarten und Fallstricke der Sprache und 
des Compilers. Der technische Vorgang des Debugging ist dann wirklich 
nicht mehr das Problem.

Autor: René König (king)
Datum:

Diesen Beitrag bewerten:
lesenswert
nicht lesenswert
Hallo'!

Random ... schrieb:
> Dazu kommen dann noch Spezialitäten, die der Debugger so unterstützt.

Gerade die Spezialitäten können Dir das Leben doch deutlich 
vereinfachen. Mal für das Visual Studio gesprochen: Das Wissen um 
Pseudoregister und das Formatieren des Outputs brauche ich in allen 
meinen Projekten. Z.B. habe ich die beiden Einträge

@EAX,hr
@ERR,hr

in nahezu allen Projekten im Watchwindow stehen. Und das Breakpoints 
deutlich mehr als der schlichte Druck auf F9 sein können, hat mir auch 
schon oft geholfen. Und so ganz uninteressant ist die autoexp.dat nun 
auch nicht, nur kennt die kaum einer.

Falls hier also tatsächlich ein Visual Studio im Spiel sein sollte, kann 
ich "Debugging Applications" von John Robbins empfehlen. Die Auflage von 
2000 ist zwar nicht die Neueste, hat aber nur wenig an Aktualität 
verloren und gibt es bei Amazon auch in gebraucht.

Und ja, ich habe tatsächlich ein Buch übers Debuggen gelesen. :-)

Autor: dbg (Gast)
Datum:

Diesen Beitrag bewerten:
lesenswert
nicht lesenswert
Wenn man sich auf Windows beschränkt, könnte auch interessant sein:

Advanced Windows Debugging: Developing and Administering Reliable, 
Robust, and Secure Software (Addison-Wesley Microsoft Technology)

Autor: asmhobbyist (Gast)
Datum:

Diesen Beitrag bewerten:
lesenswert
nicht lesenswert
Das kommt drauf an. Alles, was oben schon geschrieben wurde kommt hin.

Nur: Wäre schöner gewesen, System, Plattform, Programmiersprache und ob 
Texte auch englisch sein dürfen zu wissen.

Beim gdb sind debuggingsitzungen in debugging tutorials zum gdb recht 
hilfreich.

Bedienung auf jeden Fall lernen und üben. Ein bißchen Assembler lernen 
kann nicht schaden - sofern kein High-Level-Debugger. Keine Angst, 
normalerweise kann man Asm Grundlagen sehr schnell lernen und behalten. 
Problematischer sind entsprechende Codeschnipsel bei bestimmten 
Plattformen und Programmen.

http://www.amazon.de/Hacking-Die-Kunst-Exploits-mi...

Autor: Nicolas S. (nicolas)
Datum:

Diesen Beitrag bewerten:
lesenswert
nicht lesenswert
Hallo zusammen,
danke für die Antworten. Ich habe meine Frage bewußt allgemein gehalten, 
um allgemeine Antworten zu bekommen.

Das liegt daran, daß ich es momentan für an der Zeit halte, mal wieder 
die Programmiersprache für den PC zu wechseln - und noch nicht weiß, 
welche es werden soll. Deswegen wollte ich die Wahl auch von den 
Debug-Möglichkeiten abhängig machen- wenn ich denn wüßte, worauf man 
achten sollte. Breakpoints und Step-In scheinen allgemein verbreitet zu 
sein - aber ist das alles?

Deswegen halte ich es für angebracht, mich über Debugging (von Software 
- das fabelhafte Buch "Debugging" von David J. Agans kenne ich -) schlau 
zu machen.

Deutsch oder Englisch ist nachrangig- ersteres geht am späteren Abend 
etwas zügiger zu lesen, bei letzterem kennt man die Begriffe dafür meist 
schon besser, weil man sie in unzähligen Hilfetexten und Dokus schon 
gesehen hat.

Viele Grüße
Nicolas

Autor: Yalu X. (yalu) (Moderator)
Datum:

Diesen Beitrag bewerten:
lesenswert
nicht lesenswert
Nicolas S. schrieb:
> danke für die Antworten. Ich habe meine Frage bewußt allgemein gehalten,
> um allgemeine Antworten zu bekommen.
>
> Das liegt daran, daß ich es momentan für an der Zeit halte, mal wieder
> die Programmiersprache für den PC zu wechseln - und noch nicht weiß,
> welche es werden soll.

Wenn du noch nicht einmal weißt, welche Programmiersprache du verwenden
willst, ist deine Anfrage allerdings sehr allgemein :)

Geh mal davon aus, dass das Debugging in C, Prolog und Haskell (nur um
ein paar Beispiele zu nennen) dreimal völlig unterschiedlich abläuft.
Single-Step und dergleichen wirst du bei den letzten beiden (zumindest
in der üblichen Form) vergeblich suchen.

Autor: Imon (Gast)
Datum:

Diesen Beitrag bewerten:
lesenswert
nicht lesenswert
Wenn du noch ncht weist welche Sprache und Umgebung, sondern wirklich 
Big Picture willst kann dieses Buch vielleicht was für dich sein

http://www.amazon.de/Debug-It-Prevent-Pragmatic-Pr...

Hierbei geht es nicht um das Praktische debuggen, sondern der Autor 
versucht Methoden und Konzepte vorzustellen um sich einen Problem zu 
näheren.

Ich denke jemand der schon viel Erfahrung mit denn Entwicklen hat wird 
nichts hierdirn als neu und Inovertiv empfinden, aber mir hat es 
geholfen, sich den Debugggen systematisch zu näheren.

Autor: Vlad Tepesch (vlad_tepesch)
Datum:

Diesen Beitrag bewerten:
lesenswert
nicht lesenswert
ein buch, was ich sehr nett fand:
http://www.amazon.com/Debugging-David-J-Agans/dp/0814474578

Es vermittelt anhand von interasssanten und amüsanten Annekdoten was man 
allgemein beim Debuggen von Systemen beachten sollte.

Autor: ohne Worte (Gast)
Datum:

Diesen Beitrag bewerten:
lesenswert
nicht lesenswert
Nicolas S. schrieb:
> Deswegen halte ich es für angebracht, mich über Debugging (von Software
> - das fabelhafte Buch "Debugging" von David J. Agans kenne ich -) schlau
> zu machen.

Vlad Tepesch schrieb:
> ein buch, was ich sehr nett fand:
> http://www.amazon.com/Debugging-David-J-Agans/dp/0814474578

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel




Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder GIF-Format hochladen.
Siehe Bildformate
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken erkennst du die Nutzungsbedingungen an.

webmaster@mikrocontroller.netImpressumNutzungsbedingungenWerbung auf Mikrocontroller.net