~sergiodj/talks_gdb-intro-kwlug

1efc3468e91dacc6aee815c0c5c6a3ba71c28fa9 — Sergio Durigan Junior 4 years ago 4b3bbbe master
Cleanup.
2 files changed, 25 insertions(+), 48 deletions(-)

M gdb-intro-kwlug.org
M gdb-intro-kwlug.tex
M gdb-intro-kwlug.org => gdb-intro-kwlug.org +4 -17
@@ 1,12 1,8 @@
#+OPTIONS: toc:nil date:nil
#+SELECT_TAGS: export
#+EXCLUDE_TAGS: noexport
#+CREATOR: Emacs 26.1 (Org mode 9.1.9)
#+TITLE: GDB Intro
#+AUTHOR: Sergio Durigan Junior @@latex:\\@@ sergiodj@{sergiodj.net,redhat.com,debian.org}
#+LANGUAGE: en
#+LATEX_HEADER: \usepackage{listings}
#+LATEX_HEADER: \lstdefinestyle{customc}{belowcaptionskip=1\baselineskip,breaklines=true,frame=L,xleftmargin=\parindent,language=C,showstringspaces=false,basicstyle=\footnotesize\ttfamily,keywordstyle=\bfseries\color{green!40!black},commentstyle=\itshape\color{purple!40!black},identifierstyle=\color{blue},stringstyle=\color{orange},}

* License



@@ 14,10 10,6 @@

- https://creativecommons.org/licenses/by/4.0/

* Agenda

- Blabla

* Introduction

- =GDB=: =GNU= project's Debugger @@latex:\pause@@ (it is *not* a


@@ 256,15 248,10 @@

- Support for /SystemTap SDT probes/.

* End
* Thank you

- Thanks to Red Hat for the support.

#+ATTR_LATEX: :options style=customc
#+begin_src c -n
int main ()
{
  const char *c = NULL;
- Thanks to Paul Nijjar and Bob Jonkman for the invitation.

  return 0;
}
#+end_src
- Thanks to you for watching!

M gdb-intro-kwlug.tex => gdb-intro-kwlug.tex +21 -31
@@ 1,4 1,4 @@
% Created 2019-06-02 Sun 21:20
% Created 2019-06-03 Mon 10:40
% Intended LaTeX compiler: pdflatex
\documentclass[presentation]{beamer}
\usepackage[utf8]{inputenc}


@@ 16,8 16,6 @@
\usepackage{hyperref}
\usepackage{color}
\usepackage{listings}
\usepackage{listings}
\lstdefinestyle{customc}{belowcaptionskip=1\baselineskip,breaklines=true,frame=L,xleftmargin=\parindent,language=C,showstringspaces=false,basicstyle=\footnotesize\ttfamily,keywordstyle=\bfseries\color{green!40!black},commentstyle=\itshape\color{purple!40!black},identifierstyle=\color{blue},stringstyle=\color{orange},}
\usetheme{default}
\author{Sergio Durigan Junior \\ sergiodj@\{sergiodj.net,redhat.com,debian.org\}}
\date{}


@@ 33,7 31,7 @@

\maketitle

\begin{frame}[label={sec:orga1f4768}]{License}
\begin{frame}[label={sec:orgeac0a69}]{License}
\begin{itemize}
\item License: \alert{Creative Commons Attribution 4.0 International License (CC-BY-4.0)}



@@ 41,13 39,7 @@
\end{itemize}
\end{frame}

\begin{frame}[label={sec:org13db7cc}]{Agenda}
\begin{itemize}
\item Blabla
\end{itemize}
\end{frame}

\begin{frame}[fragile,label={sec:orgcb90a6c}]{Introduction}
\begin{frame}[fragile,label={sec:org071d481}]{Introduction}
 \begin{itemize}
\item \texttt{GDB}: \texttt{GNU} project's Debugger \pause (it is \alert{not} a
\emph{database}\ldots{}).  Supports several programming languages.


@@ 57,7 49,7 @@ likely before \alert{GCC}).
\end{itemize}
\end{frame}

\begin{frame}[fragile,label={sec:orgb03390f}]{Compiling your program for GDB}
\begin{frame}[fragile,label={sec:org2d0fe11}]{Compiling your program for GDB}
 \begin{itemize}
\item Your program needs to contain \alert{debug information} (also called
\texttt{DWARF}) for GDB to consume.


@@ 86,7 78,7 @@ using the flag \texttt{-O0} (it's \emph{dash-oh-zero}).
\end{itemize}
\end{frame}

\begin{frame}[fragile,label={sec:org71ced54}]{Running your program using GDB}
\begin{frame}[fragile,label={sec:org8bba82f}]{Running your program using GDB}
 \begin{itemize}
\item In GDB's parlance, the program being debugged is called the
\alert{inferior}.


@@ 119,7 111,7 @@ using the flag \texttt{-O0} (it's \emph{dash-oh-zero}).
\end{itemize}
\end{frame}

\begin{frame}[fragile,label={sec:org361654c}]{\{Break,Catch,Watch\}points}
\begin{frame}[fragile,label={sec:org5c690dd}]{\{Break,Catch,Watch\}points}
 \begin{itemize}
\item A \alert{breakpoint} is related to \emph{source code} (location, function).  A
\alert{watchpoint} is related to \emph{data} (read/write of a variable).  A


@@ 164,7 156,7 @@ receive a signal).
\end{itemize}
\end{frame}

\begin{frame}[fragile,label={sec:org62a7e28}]{Resuming the execution}
\begin{frame}[fragile,label={sec:orgfc53d4a}]{Resuming the execution}
 \begin{itemize}
\item After GDB has stopped the inferior (because a \texttt{*point} has been hit,
for example), you will probably want to resume its execution.


@@ 213,7 205,7 @@ for example), you will probably want to resume its execution.



\begin{frame}[fragile,label={sec:org717537c}]{Examining data}
\begin{frame}[fragile,label={sec:org9dcb344}]{Examining data}
 \begin{itemize}
\item The inferior has stopped\ldots{}  Now what?
\end{itemize}


@@ 259,7 251,7 @@ for example), you will probably want to resume its execution.
\end{itemize}
\end{frame}

\begin{frame}[fragile,label={sec:org71b8f2a}]{Examining the code}
\begin{frame}[fragile,label={sec:orga54b38a}]{Examining the code}
 \begin{itemize}
\item Yes, we have \texttt{ncurses}!  The \textbf{T}ext
\textbf{U}user \textbf{I}nterface!


@@ 298,7 290,7 @@ using the \texttt{dir} command.
\end{itemize}
\end{frame}

\begin{frame}[fragile,label={sec:org1b45b5a}]{Examining the call stack}
\begin{frame}[fragile,label={sec:orgab39cfc}]{Examining the call stack}
 \begin{itemize}
\item If you want to see the call stack (A.K.A. stack trace) that lead to
the current function:


@@ 321,7 313,7 @@ the current function:
\end{itemize}
\end{frame}

\begin{frame}[fragile,label={sec:org22c386a}]{Corefiles}
\begin{frame}[fragile,label={sec:org66fa673}]{Corefiles}
 \begin{itemize}
\item \alert{Corefiles} are frozen images of the inferior.  You can inspect
everything that was happening when the process was running (but you


@@ 363,7 355,7 @@ sure you:
\end{itemize}
\end{frame}

\begin{frame}[fragile,label={sec:org7b2681d}]{Other interesting information}
\begin{frame}[fragile,label={sec:orgb366da5}]{Other interesting information}
 \begin{itemize}
\item \texttt{info breakpoints}



@@ 375,7 367,7 @@ sure you:
\end{itemize}
\end{frame}

\begin{frame}[fragile,label={sec:org73ead26}]{Who you gonna call?}
\begin{frame}[fragile,label={sec:org6c7407d}]{Who you gonna call?}
 \begin{itemize}
\item Our online documentation (\texttt{info}) is very good!



@@ 387,7 379,7 @@ sure you:
\end{itemize}
\end{frame}

\begin{frame}[label={sec:orgf6ce0ab}]{Other advanced features}
\begin{frame}[label={sec:org9103f37}]{Other advanced features}
\begin{itemize}
\item Python support.



@@ 397,15 389,13 @@ sure you:
\end{itemize}
\end{frame}

\begin{frame}[fragile,label={sec:org0d39b0e}]{End}
 \lstset{language=C,label= ,caption= ,captionpos=b,firstnumber=1,numbers=left,style=customc}
\begin{lstlisting}
int main ()
{
  const char *c = NULL;
\begin{frame}[label={sec:org462e66a}]{Thank you}
\begin{itemize}
\item Thanks to Red Hat for the support.

\item Thanks to Paul Nijjar and Bob Jonkman for the invitation.

  return 0;
}
\end{lstlisting}
\item Thanks to you for watching!
\end{itemize}
\end{frame}
\end{document}