Chapter 11. Debugging Tools

Michael Boerner

In this chapter, we will discuss the installation and use of software debugging tools in the development of embedded Linux systems. We will discuss several applications—including the classic GDB and the spiffier Eclipse with its graphical interface—along with tracing applications, system behavior monitors, performance analysis, and memory debugging. We will finish with a brief review of some of the hardware tools often used in developing embedded Linux systems. Because the operating system on the target makes little difference in the way the hardware debugging tools are used, we won’t discuss how to use them. However, we will discuss ways that you can use hardware tools to facilitate debugging software running in your embedded Linux system.

Note

Most of the packages discussed in this chapter were not developed for cross-platform work. Many of them have Makefiles and sample code designed to test the tools to make sure they are working. These are likely to generate a severe problem, such as a segmentation fault on a target system, except in the unlikely situations where you are developing on your target board or have a binary-compatible host. It’s hard to tell whether the binary is actually broken for the tool you are using, or whether the tests simply don’t understand that there is a difference between the host and target. The solution is to allow the build process to generate the test suite, if there is one, but then remember to copy it to ...

Get Building Embedded Linux Systems, 2nd Edition now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.