Initial commit.
This is the beginning of the gdb-steroids talk. It's still missing a lot.
This commit is contained in:
commit
f2a4ecb724
2 changed files with 131 additions and 0 deletions
12
Makefile
Normal file
12
Makefile
Normal file
|
@ -0,0 +1,12 @@
|
|||
CC = pdflatex
|
||||
TARGET = gdb-steroids
|
||||
EXTENSION = tex
|
||||
|
||||
all:
|
||||
set -e ; \
|
||||
for i in 1 2 ; do \
|
||||
$(CC) $(TARGET).$(EXTENSION) ; \
|
||||
done ;
|
||||
|
||||
clean:
|
||||
rm -f $(TARGET).{aux,log,nav,out,pdf,snm,toc,vrb}
|
119
gdb-steroids.tex
Normal file
119
gdb-steroids.tex
Normal file
|
@ -0,0 +1,119 @@
|
|||
\documentclass[slidestop,compress,blue]{beamer}
|
||||
%\usetheme{default}
|
||||
%\usetheme{Malmoe}
|
||||
%\usetheme{Boadilla}
|
||||
%\usetheme{umbc2}
|
||||
%\usetheme{Antibes}
|
||||
%\usetheme{Berlin}
|
||||
%\usetheme{Madrid}
|
||||
|
||||
% Pacotes úteis
|
||||
\usepackage[utf8]{inputenc}
|
||||
% Fonte bonita!
|
||||
\usepackage{ae,aecompl}
|
||||
\usepackage[brazil]{babel}
|
||||
\usepackage[T1]{fontenc}
|
||||
\usepackage{listings}
|
||||
|
||||
\title{GDB with steroids: your distro can have it, too!}
|
||||
\author{Sergio Durigan Junior \\
|
||||
\texttt{sergiodj@redhat.com}}
|
||||
\date{\today}
|
||||
|
||||
\usetheme[secheader]{Madrid}
|
||||
\setbeamertemplate{navigation symbols}{}
|
||||
\defbeamertemplate*{footline}{infolines theme without institution}
|
||||
{
|
||||
\leavevmode%
|
||||
\hbox{%
|
||||
\begin{beamercolorbox}[wd=.333333\paperwidth,ht=2.25ex,dp=1ex,center]{author in head/foot}%
|
||||
\usebeamerfont{author in head/foot}\insertshortauthor
|
||||
\end{beamercolorbox}%
|
||||
\begin{beamercolorbox}[wd=.333333\paperwidth,ht=2.25ex,dp=1ex,center]{title in head/foot}%
|
||||
\usebeamerfont{title in head/foot}\insertshorttitle
|
||||
\end{beamercolorbox}%
|
||||
\begin{beamercolorbox}[wd=.333333\paperwidth,ht=2.25ex,dp=1ex,right]{date in head/foot}%
|
||||
\usebeamerfont{date in head/foot}\insertshortdate{}\hspace*{2em}
|
||||
\insertframenumber{} / \inserttotalframenumber\hspace*{2ex}
|
||||
\end{beamercolorbox}}%
|
||||
\vskip0pt%
|
||||
}
|
||||
|
||||
\newcommand{\aspas}[1]{``#1''}
|
||||
\newcommand{\gnu}{\texttt{GNU}}
|
||||
\newcommand{\gdb}{\texttt{GDB}}
|
||||
\newcommand{\gcc}{\texttt{GCC}}
|
||||
\newcommand{\stap}{\texttt{SystemTap}}
|
||||
\newcommand{\python}{\texttt{Python}}
|
||||
\newcommand{\glibc}{\texttt{GLIBC}}
|
||||
\newcommand{\kernel}{\textit{kernel}}
|
||||
\newcommand{\probe}{\textit{probe}}
|
||||
\newtheorem{sourcecode}{Source Code}
|
||||
|
||||
\begin{document}
|
||||
|
||||
\lstset{escapeinside={(*}{*)}}
|
||||
|
||||
\begin{frame}
|
||||
\titlepage
|
||||
\end{frame}
|
||||
|
||||
\begin{frame}
|
||||
\frametitle{License}
|
||||
\begin{itemize}
|
||||
\item{License: \textbf{Attribution-ShareAlike 3.0 Unported (CC BY-SA 3.0)}}
|
||||
\item{\url{http://creativecommons.org/licenses/by-sa/3.0/}}
|
||||
\end{itemize}
|
||||
\end{frame}
|
||||
|
||||
\section{Topics}
|
||||
\begin{frame}
|
||||
\frametitle{Topics}
|
||||
|
||||
\begin{itemize}
|
||||
\item{Intro}
|
||||
|
||||
\item{Python ``hook'' activation}
|
||||
|
||||
\item{\texttt{build-id}}
|
||||
|
||||
\item{\texttt{.gdb\_index}}
|
||||
|
||||
\item{dwz}
|
||||
|
||||
\item{Compilation flags}
|
||||
\end{itemize}
|
||||
\end{frame}
|
||||
|
||||
\section{Intro}
|
||||
\begin{frame}{Intro}
|
||||
\begin{itemize}
|
||||
\item{a}
|
||||
\end{itemize}
|
||||
\end{frame}
|
||||
|
||||
\section{Python "hook" activation}
|
||||
\begin{frame}[fragile]{Python ``hook'' activation}
|
||||
\begin{itemize}
|
||||
\item{Some projects already offer Python extensions
|
||||
(pretty printers, type printers, etc.) to be run
|
||||
when \gdb{} loads them (e.g., \texttt{libstdc++}).}
|
||||
|
||||
\item{The distro needs to arrange things for \gdb{} to
|
||||
lookup those files in the right directories. Fedora
|
||||
uses \texttt{/usr/share/gdb/auto-load}.}
|
||||
|
||||
\item{You have to provide
|
||||
\verb|--with-auto-load-dir| and
|
||||
\verb|--with-auto-load-safe-path| to the
|
||||
\texttt{configure} script when compiling.}
|
||||
|
||||
\item{Inside the auto-load directory, the files need
|
||||
to be named after their ``parent'' libraries. For
|
||||
example, for the \texttt{libstc++} hook file, the
|
||||
full path is (on Fedora)
|
||||
\texttt{/usr/share/gdb/auto-load/usr/lib64/libstdc++.so.6.0.17-gdb.py}}
|
||||
\end{itemize}
|
||||
\end{frame}
|
||||
|
||||
\end{document}
|
Loading…
Reference in a new issue