Software engineering for embedded systems : methods practical techniques and applications And conclusions Introduction to debugging tools GDB debugging Configure the GDB debugger Starting GDB Compiling the application Debugging the application Examining data Using breakpoints Stepping Changing the program Analyzing core dumps Debug agent design Use cases Debug agent overview Starting the application Context switch Position independent executables Debug event from the application Multicore Starting the debug agent Debugging using JTAG Benefits of using JTAG Board bring up using JTAG Comparison with the debug agent GDB and JTAG Debugging tools using Eclipse and GDB Linux application debug with GDB Linux kernel debug with KGDB Instrumented code Practical example Analysis tools Strace Mtrace Vaigrind Hardware capabilities Hardware breakpoints Hardware watchpoints Debugging tips and tricks Part 1: Analysis and high level design Analysis