summaryrefslogtreecommitdiff
path: root/application-devel/app-debugging/pres_app-debugging_de.tex
blob: 1c912b91cecea57474069a5e17ab353e9c85d7c4 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
\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}

\maketitle
\begin{frame}
\frametitle{Übersicht}
\tableofcontents
\end{frame}

\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}

\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}

\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{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}


\end{document}