This commit is contained in:
Sergio Durigan Junior 2019-06-03 10:41:10 -04:00
parent 4b3bbbe2c4
commit 1efc3468e9
2 changed files with 25 additions and 48 deletions

View file

@ -1,12 +1,8 @@
#+OPTIONS: toc:nil date:nil #+OPTIONS: toc:nil date:nil
#+SELECT_TAGS: export
#+EXCLUDE_TAGS: noexport
#+CREATOR: Emacs 26.1 (Org mode 9.1.9) #+CREATOR: Emacs 26.1 (Org mode 9.1.9)
#+TITLE: GDB Intro #+TITLE: GDB Intro
#+AUTHOR: Sergio Durigan Junior @@latex:\\@@ sergiodj@{sergiodj.net,redhat.com,debian.org} #+AUTHOR: Sergio Durigan Junior @@latex:\\@@ sergiodj@{sergiodj.net,redhat.com,debian.org}
#+LANGUAGE: en #+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 * License
@ -14,10 +10,6 @@
- https://creativecommons.org/licenses/by/4.0/ - https://creativecommons.org/licenses/by/4.0/
* Agenda
- Blabla
* Introduction * Introduction
- =GDB=: =GNU= project's Debugger @@latex:\pause@@ (it is *not* a - =GDB=: =GNU= project's Debugger @@latex:\pause@@ (it is *not* a
@ -256,15 +248,10 @@
- Support for /SystemTap SDT probes/. - Support for /SystemTap SDT probes/.
* End * Thank you
- Thanks to Red Hat for the support.
#+ATTR_LATEX: :options style=customc - Thanks to Paul Nijjar and Bob Jonkman for the invitation.
#+begin_src c -n
int main ()
{
const char *c = NULL;
return 0; - Thanks to you for watching!
}
#+end_src

View file

@ -1,4 +1,4 @@
% Created 2019-06-02 Sun 21:20 % Created 2019-06-03 Mon 10:40
% Intended LaTeX compiler: pdflatex % Intended LaTeX compiler: pdflatex
\documentclass[presentation]{beamer} \documentclass[presentation]{beamer}
\usepackage[utf8]{inputenc} \usepackage[utf8]{inputenc}
@ -16,8 +16,6 @@
\usepackage{hyperref} \usepackage{hyperref}
\usepackage{color} \usepackage{color}
\usepackage{listings} \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} \usetheme{default}
\author{Sergio Durigan Junior \\ sergiodj@\{sergiodj.net,redhat.com,debian.org\}} \author{Sergio Durigan Junior \\ sergiodj@\{sergiodj.net,redhat.com,debian.org\}}
\date{} \date{}
@ -33,7 +31,7 @@
\maketitle \maketitle
\begin{frame}[label={sec:orga1f4768}]{License} \begin{frame}[label={sec:orgeac0a69}]{License}
\begin{itemize} \begin{itemize}
\item License: \alert{Creative Commons Attribution 4.0 International License (CC-BY-4.0)} \item License: \alert{Creative Commons Attribution 4.0 International License (CC-BY-4.0)}
@ -41,13 +39,7 @@
\end{itemize} \end{itemize}
\end{frame} \end{frame}
\begin{frame}[label={sec:org13db7cc}]{Agenda} \begin{frame}[fragile,label={sec:org071d481}]{Introduction}
\begin{itemize}
\item Blabla
\end{itemize}
\end{frame}
\begin{frame}[fragile,label={sec:orgcb90a6c}]{Introduction}
\begin{itemize} \begin{itemize}
\item \texttt{GDB}: \texttt{GNU} project's Debugger \pause (it is \alert{not} a \item \texttt{GDB}: \texttt{GNU} project's Debugger \pause (it is \alert{not} a
\emph{database}\ldots{}). Supports several programming languages. \emph{database}\ldots{}). Supports several programming languages.
@ -57,7 +49,7 @@ likely before \alert{GCC}).
\end{itemize} \end{itemize}
\end{frame} \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} \begin{itemize}
\item Your program needs to contain \alert{debug information} (also called \item Your program needs to contain \alert{debug information} (also called
\texttt{DWARF}) for GDB to consume. \texttt{DWARF}) for GDB to consume.
@ -86,7 +78,7 @@ using the flag \texttt{-O0} (it's \emph{dash-oh-zero}).
\end{itemize} \end{itemize}
\end{frame} \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} \begin{itemize}
\item In GDB's parlance, the program being debugged is called the \item In GDB's parlance, the program being debugged is called the
\alert{inferior}. \alert{inferior}.
@ -119,7 +111,7 @@ using the flag \texttt{-O0} (it's \emph{dash-oh-zero}).
\end{itemize} \end{itemize}
\end{frame} \end{frame}
\begin{frame}[fragile,label={sec:org361654c}]{\{Break,Catch,Watch\}points} \begin{frame}[fragile,label={sec:org5c690dd}]{\{Break,Catch,Watch\}points}
\begin{itemize} \begin{itemize}
\item A \alert{breakpoint} is related to \emph{source code} (location, function). A \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 \alert{watchpoint} is related to \emph{data} (read/write of a variable). A
@ -164,7 +156,7 @@ receive a signal).
\end{itemize} \end{itemize}
\end{frame} \end{frame}
\begin{frame}[fragile,label={sec:org62a7e28}]{Resuming the execution} \begin{frame}[fragile,label={sec:orgfc53d4a}]{Resuming the execution}
\begin{itemize} \begin{itemize}
\item After GDB has stopped the inferior (because a \texttt{*point} has been hit, \item After GDB has stopped the inferior (because a \texttt{*point} has been hit,
for example), you will probably want to resume its execution. 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} \begin{itemize}
\item The inferior has stopped\ldots{} Now what? \item The inferior has stopped\ldots{} Now what?
\end{itemize} \end{itemize}
@ -259,7 +251,7 @@ for example), you will probably want to resume its execution.
\end{itemize} \end{itemize}
\end{frame} \end{frame}
\begin{frame}[fragile,label={sec:org71b8f2a}]{Examining the code} \begin{frame}[fragile,label={sec:orga54b38a}]{Examining the code}
\begin{itemize} \begin{itemize}
\item Yes, we have \texttt{ncurses}! The \textbf{T}ext \item Yes, we have \texttt{ncurses}! The \textbf{T}ext
\textbf{U}user \textbf{I}nterface! \textbf{U}user \textbf{I}nterface!
@ -298,7 +290,7 @@ using the \texttt{dir} command.
\end{itemize} \end{itemize}
\end{frame} \end{frame}
\begin{frame}[fragile,label={sec:org1b45b5a}]{Examining the call stack} \begin{frame}[fragile,label={sec:orgab39cfc}]{Examining the call stack}
\begin{itemize} \begin{itemize}
\item If you want to see the call stack (A.K.A. stack trace) that lead to \item If you want to see the call stack (A.K.A. stack trace) that lead to
the current function: the current function:
@ -321,7 +313,7 @@ the current function:
\end{itemize} \end{itemize}
\end{frame} \end{frame}
\begin{frame}[fragile,label={sec:org22c386a}]{Corefiles} \begin{frame}[fragile,label={sec:org66fa673}]{Corefiles}
\begin{itemize} \begin{itemize}
\item \alert{Corefiles} are frozen images of the inferior. You can inspect \item \alert{Corefiles} are frozen images of the inferior. You can inspect
everything that was happening when the process was running (but you everything that was happening when the process was running (but you
@ -363,7 +355,7 @@ sure you:
\end{itemize} \end{itemize}
\end{frame} \end{frame}
\begin{frame}[fragile,label={sec:org7b2681d}]{Other interesting information} \begin{frame}[fragile,label={sec:orgb366da5}]{Other interesting information}
\begin{itemize} \begin{itemize}
\item \texttt{info breakpoints} \item \texttt{info breakpoints}
@ -375,7 +367,7 @@ sure you:
\end{itemize} \end{itemize}
\end{frame} \end{frame}
\begin{frame}[fragile,label={sec:org73ead26}]{Who you gonna call?} \begin{frame}[fragile,label={sec:org6c7407d}]{Who you gonna call?}
\begin{itemize} \begin{itemize}
\item Our online documentation (\texttt{info}) is very good! \item Our online documentation (\texttt{info}) is very good!
@ -387,7 +379,7 @@ sure you:
\end{itemize} \end{itemize}
\end{frame} \end{frame}
\begin{frame}[label={sec:orgf6ce0ab}]{Other advanced features} \begin{frame}[label={sec:org9103f37}]{Other advanced features}
\begin{itemize} \begin{itemize}
\item Python support. \item Python support.
@ -397,15 +389,13 @@ sure you:
\end{itemize} \end{itemize}
\end{frame} \end{frame}
\begin{frame}[fragile,label={sec:org0d39b0e}]{End} \begin{frame}[label={sec:org462e66a}]{Thank you}
\lstset{language=C,label= ,caption= ,captionpos=b,firstnumber=1,numbers=left,style=customc} \begin{itemize}
\begin{lstlisting} \item Thanks to Red Hat for the support.
int main ()
{
const char *c = NULL;
return 0; \item Thanks to Paul Nijjar and Bob Jonkman for the invitation.
}
\end{lstlisting} \item Thanks to you for watching!
\end{itemize}
\end{frame} \end{frame}
\end{document} \end{document}