[FE training-materials-updates] sysdev-application-debugging: Improve explanation

Gregory Clement gregory.clement at free-electrons.com
Fri Sep 9 15:11:09 CEST 2016

Repository : git://git.free-electrons.com/training-materials.git
On branch  : master
Link       : http://git.free-electrons.com/training-materials/commit/?id=a62c9fb013231bd40cb053808583a5437e5d1e75


commit a62c9fb013231bd40cb053808583a5437e5d1e75
Author: Gregory CLEMENT <gregory.clement at free-electrons.com>
Date:   Fri Sep 9 15:11:09 2016 +0200

    sysdev-application-debugging: Improve explanation
    Improve explanation by describing in a exhaustive way the buildroot
    Signed-off-by: Gregory CLEMENT <gregory.clement at free-electrons.com>


 .../sysdev-application-debugging.tex               | 39 ++++++++++++++++------
 1 file changed, 28 insertions(+), 11 deletions(-)

diff --git a/labs/sysdev-application-debugging/sysdev-application-debugging.tex b/labs/sysdev-application-debugging/sysdev-application-debugging.tex
index 0cd7067..6e9c77d 100644
--- a/labs/sysdev-application-debugging/sysdev-application-debugging.tex
+++ b/labs/sysdev-application-debugging/sysdev-application-debugging.tex
@@ -19,7 +19,11 @@ the toolchain we created: it uses a too old version of uClibc.
 From the directory
-configure buildroot with the following modification:
+cleanup the binaries:
+make clean
+then configure buildroot with the following modification:
 \item In \code{Toolchain}:
@@ -27,6 +31,15 @@ configure buildroot with the following modification:
    \item \code{Toolchain type}: \code{External toolchain}
    \item \code{Toolchain}: \code{Linaro ARM 2015.11}
    \item \code{Toolchain origin}: \code{Toolchain to be downloaded and installed}
+   \item Select \code{Copy gdb server to the Target}
+   \end{itemize}
+ \item \code{Target packages}
+   \begin{itemize}
+   \item \code{Debugging, profiling and benchmark}
+     \begin{itemize}
+     \item Select \code{ltrace}
+     \item Select \code{strace}
+     \end{itemize}
@@ -50,10 +63,6 @@ toolchain. \code{gdbserver} has already been copied in your target
 filesystem thanks to the \code{Copy gdb server to the Target}
 Buildroot option.
-So you just need to find the \code{strace} and \code{ltrace} in
-your toolchain installation directory and copy them into your
-root filesystem (typically in \code{/usr/bin}).
 \section{Using strace}
 Now, go to the \code{$HOME/embedded-linux-labs/debugging} directory.
@@ -64,10 +73,18 @@ accessing time, etc. When something goes wrong in your application,
 strace is an invaluable tool to see what it actually does, even when
 you don't have the source code.
+Update the PATH:
+export PATH=$HOME/embedded-linux-labs/buildroot/buildroot-2016.02/output/host/usr/bin:$PATH
 With your cross-compiling toolchain, compile the
-\code{data/vista-emulator.c} program, strip it with \code{arm-linux-strip},
-and copy the resulting binary to the \code{/root} directory of the root
+\code{data/vista-emulator.c} program, strip it with
+\code{arm-linux-gnueabihf-strip}, and copy the resulting binary to the
+\code{/root} directory of the root filesystem.
 Back to target system, try to run the \code{/root/vista-emulator}
 program. It should hang indefinitely!
@@ -106,14 +123,14 @@ connection from \code{gdb}, and will control the execution of
 gdbserver localhost:2345 vista-emulator
-On the host side, run \code{arm-linux-gdb} (also found in your toolchain):
+On the host side, run \code{arm-linux-gnueabihf-gdb} (also found in your toolchain):
-arm-linux-gdb vista-emulator
+arm-linux-gnueabihf-gdb vista-emulator
 You can also start the debugger through the \code{ddd} interface:
-ddd --debugger arm-linux-gdb vista-emulator
+ddd --debugger arm-linux-gnueabihf-gdb vista-emulator
 \code{gdb} starts and loads the debugging information from the

More information about the training-materials-updates mailing list