diff --git a/slides.tex b/slides.tex index d7b3f7e..2941dca 100644 --- a/slides.tex +++ b/slides.tex @@ -373,17 +373,12 @@ $1 = 84 \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 @@ -393,10 +388,10 @@ $1 = 84 \end{frame} \begin{frame}{What have we got so far?} - We now want to \alert{synthesize unwinding data}. \pause{}That means + We now want to \alert{synthesize unwinding data}. That means \alert{forgetting the blue part of the previous schemes}. - \begin{itemize}[<+->] + \begin{itemize} \item Upon entering a function, we know (ABI) \[ \cfa = \reg{rsp} - 8 \qquad \ra = \cfa + 8 \] @@ -420,7 +415,7 @@ $1 = 84 \item Either we track \cfa{} wrt. \reg{rsp} \begin{itemize} \item and update it after each instruction if needed - \end{itemize} \pause{} + \end{itemize} \item Or \reg{rbp} is used as base pointer: easy \end{itemize} \end{frame} @@ -430,7 +425,6 @@ $1 = 84 \column{0.4\textwidth} \lstinputlisting[language=C]{src/cfg/cfg.c} - \pause{} \column{0.30\textwidth} \begin{figure} \centering @@ -438,8 +432,6 @@ $1 = 84 \end{figure} \end{columns} - \pause{} - \begin{itemize} \item \alert{Upon split} (eg. \texttt{X})\alert{:} nothing special, propagate end state of X to child nodes A and B