[bootlin/training-materials updates] master: gdb lab: add post-mortem analysis part (3da74a47)

Michael Opdenacker michael.opdenacker at bootlin.com
Mon Aug 3 15:09:36 CEST 2020


Repository : https://github.com/bootlin/training-materials
On branch  : master
Link       : https://github.com/bootlin/training-materials/commit/3da74a4746956c8ffde6d790772ea7354fad5324

>---------------------------------------------------------------

commit 3da74a4746956c8ffde6d790772ea7354fad5324
Author: Michael Opdenacker <michael.opdenacker at bootlin.com>
Date:   Mon Aug 3 15:09:36 2020 +0200

    gdb lab: add post-mortem analysis part
    
    Signed-off-by: Michael Opdenacker <michael.opdenacker at bootlin.com>


>---------------------------------------------------------------

3da74a4746956c8ffde6d790772ea7354fad5324
 .../sysdev-application-debugging.tex                | 21 +++++++++++++++++++--
 1 file changed, 19 insertions(+), 2 deletions(-)

diff --git a/labs/sysdev-application-debugging/sysdev-application-debugging.tex b/labs/sysdev-application-debugging/sysdev-application-debugging.tex
index aa949d6d..6a0f9026 100644
--- a/labs/sysdev-application-debugging/sysdev-application-debugging.tex
+++ b/labs/sysdev-application-debugging/sysdev-application-debugging.tex
@@ -183,14 +183,27 @@ This will tell you that the segmentation fault occurred in a function
 of the C library, called by our program. This should help you in
 finding the bug in our application.
 
+\section{Post mortem analysis}
+
+Following the details in the slides, configure your shell on the
+target to get a \code{core} file dumped when you run \code{vista-emulator}
+again.
+
+Once you have such a file, inspect it with \code{arm-linux-gdb} on
+the target, set the \code{sysroot} setting, and then generate
+a backtrace to see where the program crashed.
+
+This way, you can have information about the crash without
+running the program through the debugger.
+
 \section{What to remember}
 
 During this lab, we learned that...
 \begin{itemize}
 
 \item It's easy to study the behavior of programs and diagnose issues
-%  without even having the source code, thanks to strace and ltrace.
-  without even having the source code, thanks to strace.
+  without even having the source code, thanks to \code{strace} and
+  \code{ltrace}.
 
 \item You can leave a small \code{gdbserver} program (about 300 KB) on your target
   that allows to debug target applications, using a standard \code{gdb}
@@ -200,4 +213,8 @@ During this lab, we learned that...
   machine, as long as the programs and libraries with debugging
   symbols are available on the development host.
 
+\item Thanks to \code{core} dumps, you can know where a program crashed,
+  without having to reproduce the issue by running the program through
+  the debugger.
+
 \end{itemize}




More information about the training-materials-updates mailing list