From ae303294cc741b9498816a0c6d1540074c364ded Mon Sep 17 00:00:00 2001
From: Jan Altenberg <jan@jan-laptop.(none)>
Date: Fri, 23 Apr 2010 15:41:59 +0200
Subject: Started debugging chapter.

---
 .../app-debugging/pres_app-debugging_de.tex        | 66 ++++++++++++++++++----
 1 file changed, 54 insertions(+), 12 deletions(-)

(limited to 'application-devel/app-debugging/pres_app-debugging_de.tex')

diff --git a/application-devel/app-debugging/pres_app-debugging_de.tex b/application-devel/app-debugging/pres_app-debugging_de.tex
index 07db328..1c912b9 100644
--- a/application-devel/app-debugging/pres_app-debugging_de.tex
+++ b/application-devel/app-debugging/pres_app-debugging_de.tex
@@ -1,24 +1,66 @@
-\documentclass{article}
+\documentclass{beamer}
+\usetheme{linutronix}
 \usepackage{german}
 \usepackage[utf8]{inputenc}
+\usepackage{pgf}
+\usepackage{graphicx}
+\usepackage{lxextras}
+
+\title{Block \lq Was ist Linux?\rq}
+\institute{Linutronix GmbH}
+
+\lstset{keywordstyle=\color{blue},commentstyle=\color{orange}}
 
 \begin{document}
 
-\section*{Block \lq Was ist Linux?\rq}
+\maketitle
+\begin{frame}
+\frametitle{Übersicht}
+\tableofcontents
+\end{frame}
 
-\subsection*{Lernziele}
-\begin{itemize}
-\item Lernziel 1
-\item Lernziel 2
-\item Lernziel 3
-\end{itemize}
+\section{Einfache Debugging Werkzeuge}
+\subsection{System calls tracen mit STRACE}
+\begin{frame}
+\frametitle{STRACE}
+\begin{alertblock}{Was ist STRACE?}
+STRACE ist ein mächtiges Diagnosewerkzeug, mit dem sich System Calls und Signale
+tracen lassen.
+\end{alertblock}
+\end{frame}
 
-\subsection*{Unterrichts-Ablauf}
+\begin{frame}[containsverbatim]
+\frametitle{Anwendungsbeispiel}
+\begin{lstlisting}[language=bash]
+$ strace /bin/ls
+execve("/bin/ls", ["/bin/ls"], [/* 38 vars */]) = 0
+brk(0)                                  = 0x8061000
+access("/etc/ld.so.nohwcap", F_OK)      = -1 ENOENT (No such file or directory)
+mmap2(NULL, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) =
+0xb7f03000
+access("/etc/ld.so.preload", R_OK)      = -1 ENOENT (No such file or directory)
+open("/etc/ld.so.cache", O_RDONLY)      = 3
+fstat64(3, {st_mode=S_IFREG|0644, st_size=113431, ...}) = 0
+[...]
+\end{lstlisting}
+\end{frame}
 
-Hinweise zur Präsentation, Zeitplanung, etc.
+\begin{frame}[containsverbatim]
+\frametitle{Wichtige STRACE Optionen}
+\begin{itemize}
+\item \textbf{-f}: Follow Forks
+\item \textbf{-v}: Verbose mode
+\item \textbf{-T}: Print out time which is spent in each syscall
+\item \textbf{-p PID}: Attach to PID
+\end{itemize}
+\end{frame}
 
-\subsection*{Übungen bei vorhandener Hardware}
+\subsection{Memory debugging}
+\subsubsection{MTrace}
+\subsubsection{libDUMA (aka electric fence)}
+\section{Der GNU Debugger: GDB}
+\subsection{Post mortem Analyse mit GDB}
+\subsection{Interaktives Debugging mit GDB}
 
-Hinweise zu Übungen, Zeitlimit dazu.
 
 \end{document}
-- 
cgit v1.2.3

