Zum Hauptinhalt springen

Besiegen Sie Ihre Speicherfehler mit Valgrind. Kommt Embedded Hardware ins Spiel, ist ein systemweiter Ansatz zur Fehlersuche gefragt. Die Fehlersuche bei Embedded Applikationen macht vor dem Kernel nicht halt. Mit Systemtap und ftrace lernen Sie zwei einfache, aber leistungsfähige Tools kennen.

AGENDA

  • Valgrind: Aufspüren von Speicherproblemen (nur auf x86)
    • Fehler bei malloc / free (auch double free)
    • Uninitialisierte Variablen
    • Memory Leaks
  • Cachegrind: Cache Profiling (nur auf x86)
    • Detaillierte Simulation der L1, D1 und L2 Caches
    • Statistiken zu Cache Misses mit Source Zeilen / Funktionen
  • Callgrind: Callgraph Profiling (nur auf x86)
    • Analyse der Aufrufreihenfolgen
    • KCachegrind: Graphische Darstellung der Performance-Analyse
  • Systemtap-Framework
    • Kprobes, was ist das?
    • Einführung in das Systemtap-Framework
  • Systemtap Script-Sprache
    • Tracing im Kernel mit einer Script-Sprache
    • Kernelprogrammierung fast ohne Kernel Know-how
  • Schreiben Sie Ihr eigenes Systemtap-Script
    • Tracing von Kernelmodul-Funktionen
    • Tracing von Userspace Applikationen (nur auf x86)
  • ftrace
    • Läuft auf jeder Linuxplattform
    • Steuerung von ftrace auf der Kommandozeile
  • Spezielle Tracer
    • Was macht mein Scheduler und warum?
    • Wo bleiben meine Interrupts?
  • Weitere ftrace-Features
    • Die Suche nach der Stecknadel im Heuhaufen
    • Filtern von Trace-Ereignissen
    • Aktivieren / Deaktivieren des Tracing aus dem Userspace
    • trace-cmd
    • Der Kernelshark

VORAUSSETZUNGEN

Grundlegende Kenntnisse der Softwareentwicklung und der Nutzung von Linux in der Shell sowie sicherer Umgang mit C/C++ sind Voraussetzung. Erfahrungen in der Entwicklung von Embedded Systems sowie Kenntnisse der Linux Kernelprogrammierung sind von Vorteil. Der Besuch des 1. Teils des Workshops (GDB) wird empfohlen.

 

TECHNISCHE VORAUSSETZUNGEN

Eigener Laptop (alle technischen Details erhalten Sie in Ihrer Teilnahmebestätigung)


ZIELGRUPPE

Entwicklung

loader-gif