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