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
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.
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.
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.
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. :-)
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)
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-mit/dp/3898645363/
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
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.
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-Programmers/dp/193435628X/ref=sr_1_1?ie=UTF8&qid=1341472495&sr=8-1 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.
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.
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
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.