GNU Debugger workshop Jürgen Weigert Teamlead Tools RD OPS 2008-11-06.

Slides:



Advertisements
Ähnliche Präsentationen
ES Community Definition Group – Bundle for Customer Billing and Payment In-Person Meeting April 29, 2008 Ratingen, Germany.
Advertisements

Windows Small Business Server 2008
Infinitivkonstruktionen
Kooperationsmöglichkeiten im Bereich Medienkompetenzförderung Heidelberg, 06.Juni 2011 Jürgen Nilgen Area Sales Lead Germany | Microsoft Learning.
SAP AG 2011, Introduction to SAP Business One 8.8, GTM Rollout Services Page 1 SwissAddOn Installation und Setup Allgemein: Zur Abdeckung Schweiz-spezifischer.
Video Streaming mit Silverlight
SQL Azure Administration
3/28/2017 8:11 PM Visual Studio Tools für Office { Rapid Application Development für Office } Jens Häupel Platform Strategy Manager Microsoft Deutschland.
Dariusz Parys Developer Evangelist Microsoft Deutschland GmbH Christian Weyer Solutions Architect thinktecture.
Cyber-Security und Datenschutz in der Cloud Wie passt das zusammen?
Zugriff auf freie Online-Angebote über SFX: Erfahrungen mit Open-Access-Verlagen im Kontext des OpenURL-Frameworks Timm-Martin Siewert, Sales Consultant.
…und nun aber zum heutigen Vortrag Die Herausforderung: Krisen und andere Verwerfungen Die Herangehensweise: Kosten senken & Produktivität erhöhen Das.
Sprachneuerungen des .NET Frameworks 3.5
Use this title slide only with an image Software Krisztián Mihály Marc 10, 2015 Public.
Einfaches Erstellen von Präsentationen aus Einzelfolien heraus.
Use this title slide only with an image SAP PartnerEdge program for ApplicationDevelopment Additional a-la-carte services & resources May 13, 2014 Public.
Organizational Change Administration with Funds or Grants Management (978) SAP Best Practices.
Service with Time and Material Based Billing SAP Best Practices Baseline package SAP Best Practices.
Cost Center Accounting with Funds Management Overview
Enterprise Structure Overview
Process Flow Diagram Create Standard Cost for Individual Material
How Unit Tests drive The Code (draft) Vasil Penchev Diana Kalcheva Date.
Weg mit Fehlern, die kein Entwickler versteht …
Stephanie Müller, Rechtswissenschaftliches Institut, Universität Zürich, Rämistrasse 74/17, 8001 Zürich, Criminal liability.
Scenario Overview – 1 Purpose and Benefits: Purpose Benefits
Ralf M. Schnell Technical Evangelist Microsoft Deutschland GmbH
Scenario Overview – 1 Purpose and Benefits: Purpose Benefits
Christian Binder Senior Platform Strategy Manager Microsoft Deutschland GmbH.
Ralf M. Schnell Technical Evangelist Microsoft Deutschland GmbH.
Employee Separation Administration with Funds or Grants Management (980) SAP Best Practices.
Arbeiten in einem agilen Team mit VS & TFS 11
? What is Open PS? SAP Open PS based on EPS 4.0
Mitmachen – IBM lädt Studenten zur DNUG-Frühjahrkonferenz! Freikarten gegen Fachbeitrag zu Enterprise 2.0, Collaboration oder IBM Lotus.
Use this title slide only with an image Customer Coffee Corner for SAP IQ – Roles Saroj Bagai/SAP Global Product Support July 9, 2015 Customer.
Accessible content is available upon request. Meine Daten – Deine Daten Dennis Hobmaier, Sr. TSP, MCSE
Budget Maintenance with Budget Control System Overview SAP Best Practices for Public Sector US V1.603.
Scenario Overview – 1 Purpose and Benefits: Purpose Benefits
Leave of Absence (LOA) Administration SAP Best Practices for Public Sector (Canada)
Service with Time and Material based Billing SAP Best Practices Baseline package for Philippines V1.604 SAP Best Practices.
Use this title slide only with an image How to get Host Metrics on BI4.x with SAPOSCOL Marlon Hernandez / BI Deployment October / 2014 Public.
Use this title slide only with an image SAP Incidents & Support Tools SAP Product Support with City of Mississauga Public.
Kapitel 8 Grammar INDEX 1.Command Forms: The Du-Command Form & Ihr- Command 2.Sentences & Clauses.
User Data Maintenance Learning Map SAP Support Portal.
© 2012 IBM Corporation © 2013 IBM Corporation IBM Storage Germany Community Josef Weingand Infos / Find me on:
Use this title slide only with an image LC New Tax Scales 2014 GS HCM CH December 19th, 2013 Customer.
January 2014 Message manager add-on for SAP SMS 365, enterprise service Automator.
Use this title slide only with an image Erfahrungen eines Arbeitgebers Nico Herzberg – Ausbildungsleiter SAP Dresden März 2016 Public.
Technische Universität München Institute of Aeronautical Engineering Prof. Dr.-Ing. Horst Baier Presentation of the Institute (December 2009)
(Name of presenter) (Short title of presentation).
Vorbereitung einer Anforderungsanalyse für ein GUI im Kreditkarten- Processing-Umfeld Yanik Dreiling MatrNr
CEO SAP Best Practices for Business Intelligence SAP Best Practices.
Service SAP Best Practices for Business Intelligence SAP Best Practices.
Custom error page for timeout Gergely Andó / Application Innovation July 10, 2013 Customer.
Videoschnitt mit Kdenlive Jürgen Weigert openSUSE video-dude.
Was ist neu in openSUSE 11.2? Andreas Jaeger Director openSUSE Novell.
ESP Tutorium Studienassistent: Ewald Moitzi Gruppe 1.
Use this title slide only with an image Data Broker & Digital Rights The Need for Dialogue ITU-T, Big Data Workshop Daniel Faulk, SAP AG June 17, 2014,
Einführung in openSUSE Andreas Jaeger Program Manager openSUSE Novell Twitter / Identi.ca: jaegerandi.
OCR mit cuneiform Jürgen Weigert openSUSE user
Lync and Learn mit Manfred Helber Thema heute:
Workshop 1 Getting Started 2016 Boris Wylutzki
Azure Backup, Azure Backup Server und Azure Site Recovery
FREE ICONS POWERPOINT TEMPLATE.
Azure Active Directory und Azure Active Directory Domain Services
Lync and Learn mit Manfred Helber Thema heute:
Beuth Hochschule Berlin, Juni 2017, Uwe Löhr
Stoppuhr-Karten Stoppuhr-Karten
Kurzeinführung in die Vorgehensweise
- moodle – a internet based learning platform
Firmeninternes Softwarelogo
 Präsentation transkript:

GNU Debugger workshop Jürgen Weigert Teamlead Tools RD OPS

© Novell, Inc. All rights reserved. 2 Inhalt Was ist ein Bug? Allgemeine Arbeitstechniken Was kann GDB? Arbeiten mit GDB Fehlersuche am Beispiel Ausblick

© Novell, Inc. All rights reserved. 3 Was ist ein Bug? GDB hilft bei – Programmabsturz segmentation fault, signal 11 – Endlos-Schleife dauerhaft 100% CPU, zyklische Dialoge (Intelligenztest?) – Fehlverhalten Logikfehler, korrupte Daten – Blockierung Programm wartet erfolglos

© Novell, Inc. All rights reserved. 4 Was ist ein Bug? -2- Andere Bugs – Mangelnde Benutzerführung – Mangelhafte Geschwindigkeit – Speicherüberlauf – Fehler zur Compilezeit – Dokumentationsfehler – Konfigurationsfehler – Architektur/Designfehler Andere Werkzeuge – strace – ltrace – valgrind – printf() – lint

© Novell, Inc. All rights reserved. 5 Allgemeine Arbeitstechniken (Vorbereitung) Reproduzierbarkeit sicherstellen – Was ist nötig um den Fehlerfall zu wiederholen? Reduktion – Was kann man weglassen, ohne das der Fehler verschwindet? Datensammlung (Symptome) – Logfiles finden, Konfigurationsdateien, screenshots Erwartungen kontrollieren – Soll-Ist Vergleich, Dokumentation lesen Bauumgebung schaffen – Source Code auspacken, Abhängigkeiten erfüllen

© Novell, Inc. All rights reserved. 6 Allgemeine Arbeitstechniken (Arbeitsschritte -1-) Geschwätzigkeit erhöhen – Verbosity Option -v, (shell script 'set -x') – printf() debugging Versionsvergleich – Gleicher Fehler in älteren Versionen? (Patches?) – Ander RPM-Pakete, svn co -r.... Eingrenzung durch Intervallhalbierung – In einer Datei: systematisches Auskomentieren – Unter Versionskontrolle: svn co -r, git bisect

© Novell, Inc. All rights reserved. 7 Allgemeine Arbeitstechniken (Arbeitsschritte -2-) Testprogramme – Eigenes main() für Programmteile / Bibliotheken – Aufrufe per shell Script, um Abläufe zu reprduzieren Ablaufprotokolle erstellen – Systemaufrufe (strace), Bibliotheksaufrufe (ltrace) – Speichernutzungsprotokoll (valgrind) int a[10]; a[10] = 13; char *u; if (strlen(u) > 0)... – Crashdumps, stack backtraces sammeln (gdb)

© Novell, Inc. All rights reserved. 8 Allgemeine Arbeitstechniken (Arbeitsschritte -3-) Dokumentation lesen – Beschreibung von Bibliotheksfunktionen (man 3) – Systemaufrufe verstehen lernen (man 2) Hilferuf – Experten befragen – Bugzilla > Was ist ein guter bugreport? » » » » Management Process.pdf

© Novell, Inc. All rights reserved. 9 Allgemeine Arbeitstechniken (Nachbereitung) Dokumentation des Eingriffes – Kommentare, ChangeLog Testen (Regression) – Vorhandene Tests durchführen – Neuen Test schreiben, der den behobenen Fehler prüft Abgabe – Versionsnummer erhöhen? – Patch erstellen, upstream benachrichtigen – svn checkin, osc ci, submitpac

© Novell, Inc. All rights reserved Was kann GDB? $ gdb programm core Nur Code auflisten, Stack Backtrace, Variablen ausgeben (Post Mortem Analyse) $ gdb programm processID $ gdb --args programm parameter... Starten, unterbrechen, Code auflisten, Variablen ausgeben/ändern, Stack Backtrace, Funktionen aufrufen, weiterlaufen lassen.

© Novell, Inc. All rights reserved. 1 Arbeiten mit GDB (wichtige Kommandos im GDB) run [parameter...] print [/x] expression ptype variable list [file.c:linenumber] set variable=expression CTRL-C where up down next step continue break disable bpt enable bpt info... help quit Syntax für Ausdrücke (expressions): Alles was in C erlaubt ist, z.B. p für array-Ausgabe, z.B. p

© Novell, Inc. All rights reserved Arbeiten mit GDB (Arbeitsumgebung) $ ulimit -c unlimited – erlaube coredumps $ gcc -g -Wall -O0 – Makefile, CFLAGS=-g – Mit Debuginfo compilieren, ohne Optimierung Evtl. Debuginfo Pakete installieren für Bibliotheken Zwei/drei grosse Shells nebeneinander (für Editor, Compiler, Debugger)

© Novell, Inc. All rights reserved Fehlersuche am Beispiel $ wget novell/gdb/prime-0.3.tar.bz2 $ tar xvf prime-0.3.tar.bz2 $ cd prime-0.3 $ cc -o prime main.c prime.c $./prime Bitte obere Schranke eingeben: 10 2 ist Primzahl 3 ist Primzahl 5 ist Primzahl 7 ist Primzahl... so sollte es sein

Viel Erfolg!

© Novell, Inc. All rights reserved Ausblick (was jetzt noch fehlt) Fehlervermeidungsstratgieen > Test Driven Development, assert() > Compiler Warnungen, lint C++ demangling > Namen und Signaturen > QT4 debugging Netzwerk Fehlersuche > Warum geht das nur manchmal? $ netcat -l -p 8888 localhost $ telnet localhost 8888 Graphische Oberflächen > ddd, eclipse

© Novell, Inc. All rights reserved Ausblick (was GDB nicht kann) GDB kann keine Syntax-Fehler finden – Hier helfen lint und gcc -Wall -O2 GDB kann den Programm Code nicht verändern GDB zeigt optimierten Code 'nicht richtig' an GDB kennt keine CPP-Macros GDB kann nicht rückwärts laufen GDB findet oft nur ein Symptom, statt der Ursache GDB kann keine Scriptsprachen debuggen – Dazu gibt es eigene (meist ganz ähnliche) Debugger

© Novell, Inc. All rights reserved Ausblick (was GDB sonst noch alles kann) $ info gdb

Unpublished Work of Novell, Inc. All Rights Reserved. This work is an unpublished work and contains confidential, proprietary, and trade secret information of Novell, Inc. Access to this work is restricted to Novell employees who have a need to know to perform tasks within the scope of their assignments. No part of this work may be practiced, performed, copied, distributed, revised, modified, translated, abridged, condensed, expanded, collected, or adapted without the prior written consent of Novell, Inc. Any use or exploitation of this work without authorization could subject the perpetrator to criminal and civil liability. General Disclaimer This document is not to be construed as a promise by any participating company to develop, deliver, or market a product. It is not a commitment to deliver any material, code, or functionality, and should not be relied upon in making purchasing decisions. Novell, Inc. makes no representations or warranties with respect to the contents of this document, and specifically disclaims any express or implied warranties of merchantability or fitness for any particular purpose. The development, release, and timing of features or functionality described for Novell products remains at the sole discretion of Novell. Further, Novell, Inc. reserves the right to revise this document and to make changes to its content, at any time, without obligation to notify any person or entity of such revisions or changes. All Novell marks referenced in this presentation are trademarks or registered trademarks of Novell, Inc. in the United States and other countries. All third-party trademarks are the property of their respective owners.