Using strace for application debugging
Debugging does not always involve working with source code. Sometimes it is a change in an external factor that is causing the problem.
Strace is a tool that is useful for scenarios where we are looking for problems outside of the binary itself; for example configuration files, input data, and kernel interfaces. This recipe will explain how to use it.
Getting ready
To include strace in your system, add the following to your conf/local.conf
file:
IMAGE_INSTALL_append = " strace"
Strace is also part of the tools-debug
image feature, so you can also add it with:
EXTRA_IMAGE_FEATURES += "tools-debug"
Strace is also included in the -sdk
images.
Before starting, we will also include pgrep
, a process utility that will make our debugging easier by looking up process IDs by name. To do so, add the following to your conf/local.conf
configuration file:
IMAGE_INSTALL_append = " procps"
How to do it...
When printing a system call, strace prints the values passed to the kernel...