diff --git a/Makefile b/Makefile index ef49580..ee1c125 100644 --- a/Makefile +++ b/Makefile @@ -7,4 +7,4 @@ clean: rm -f *aux *bbl *bcf *blg *_latexmk *fls *log *out *.run.xml upload: build - scp slides.pdf www.tobast:~/files/sweden18.pdf + scp slides.pdf www.tobast:~/files/oracle18.pdf diff --git a/slides.tex b/slides.tex index 456df6a..4ed1d85 100644 --- a/slides.tex +++ b/slides.tex @@ -87,7 +87,7 @@ \vspace{-2em} \begin{center} \begin{align*} - \text{Slides: } &\text{\url{https://tobast.fr/files/sweden18.pdf}} \\ + \text{Slides: } &\text{\url{https://tobast.fr/files/oracle18.pdf}} \\ \end{align*} \end{center} \end{frame} @@ -279,8 +279,7 @@ $1 = 84 Yields to \begin{itemize} \item{} unreliable DWARF\@: can cause headaches when debugging - \item{} or not generated at all (eg. OCaml until recently) \todo{Check - this} + \item{} or not generated at all (eg. OCaml until recently) \end{itemize} \vspace{1em} @@ -524,12 +523,32 @@ $1 = 84 \item We can \alert{validate DWARF tables}! \item \ldots{}well, only along \alert{one execution path}\ldots \item but mostly we are close to a working \alert{algorithm} to - \alert{synthesize unwinding data from assembly}! + \alert{synthesize unwinding data from binaries}! \end{itemize} \end{frame} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\section{Unwinding data synthesis from assembly} +\section{Unwinding data synthesis from binaries} + +\begin{frame}{Why would synthesis be useful?} + \pause{} + \begin{itemize} + \item As said earlier, \alert{DWARF is complex} + \pause{} + \item Some compilers \alert{do not generate it}: hard to \alert{debug} + \& \alert{profile}. + \pause{} + \item Think of \alert{JIT-compiled assembly} (eg. JVM) + \pause{} + \item \ldots{}or even \alert{hand-written inlined assembly}! + \pause{} + \begin{itemize} + \item Painful enough to write for not bothering with DWARF + \item May not even be known by the programmer, breaks gdb + \item May be wrong (remember Linus!) + \end{itemize} + \end{itemize} +\end{frame} \begin{frame}{What have we got so far?} We now want to \alert{synthesize unwinding data}. \pause{}That means @@ -869,7 +888,7 @@ $1 = 84 \LinusMailOne{} \only<1>{\LinusSource{}} - \only<2->\vspace{1em} + \only<2->{\vspace{1em}} \pause{} \LinusMailTwo{} @@ -881,7 +900,7 @@ $1 = 84 \begin{center} \bf - Give us a few months to make Linus reconsider \texttt{;)} + Give us a few months: we will make Linus reconsider \texttt{;)} \end{center} \end{frame} @@ -895,7 +914,7 @@ $1 = 84 \begin{center} \large \begin{align*} - \textbf{Slides: } &\text{\url{https://tobast.fr/files/sweden18.pdf}} \\ + \textbf{Slides: } &\text{\url{https://tobast.fr/files/oracle18.pdf}} \\ \end{align*} \end{center}