The GNU Debugger (GDB) is a complex and powerful debugger with many capabilities. We presented the basics to get you started.
The DDD graphical front end for GDB integrates source code and data display with the power of GDB command line interface capabilities.
cbrowser is a useful aid for understanding large projects. It uses the cscope database to rapidly find and display symbols and other elements of C source code.
Linux is supported by many profiling and trace tools. We presented several, including strace, ltrace, top, and ps, and the memory profilers mtrace and dmalloc.
Embedded developers often need to build custom images such as those required for bootloaders and firmware images. For these tasks, knowledge of binutils is indispensable. We presented many of the utilities found in binutils, including readelf, objdump, objcopy, and several others.
13.7.1. Suggestions for Additional Reading
GDB: The GNU Project Debugger: www.gnu.org/software/gdb/gdb.html
GDB Pocket Reference Arnold Robbins O'Reilly Media, 2005
Data Display Debugger: www.gnu.org/software/ddd/
cbrowser home page: http://cbrowser.sourceforge.net/
cscope home page: http://cscope.sourceforge.net/index.html
dmallocDebug Malloc Library: http://dmalloc.com/
Tool Interface Standard (TIS) Executable and Linking Format (ELF) Specification Version 1.2 TIS Committee, May 1995
Tool interface standards: DWARF Debugging Information Format Specification Version 2.0 TIS Committee, May 1995