arm-elf-GDB is the debugger that helps to simulate ARM processor.
-install arm-elf-gcc toolchain
-compile your source code with -g option turned on.
Lets us assume your output elf file is main.elf. Type the following command in the terminal to open GDB.
It brings up the gdb prompt. These commands initialises the gdb environment.
The first statement tells gdb that we are going to simulate ARM processor. Second line tells it to load the current ELF(main.elf) file into memory. Next step is to create some breakpoints and run the code.
(Note:- A breakpoint, in software development, is an intentional stopping or pausing place in a program, put in place for debugging purposes.)
You can set breakpoint at a particular function, line number, address or offset.
- sets breakpoint at particular address
- sets breakpoint at function
- sets breakpoint at line number of a specified file
- Set breakpoint some number of lines forward or back from the position at which execution stopped in the currently selected stack frame.
After you have set the breakpoints. Run the debugger using
Notice that debugger stops at the places you have set breakpoints. Now you can inspect the registers and memory using these commands.
- displays register information
x /5xw 0x00000800
- this displays memory starting at address(0x00000800). The /5xw instructs gdb to show 5 memory locations, each of length words and represented in hexadecimal. Use d instead of x to display in decimal. h or b instead of w to display in half-word or byte length.
After you have finished inspecting, you can either continue execution or step through each instruction or statement.
- steps through each instruction.
- steps through each statement. if it finds a function call, it will step over the function to the next line of code
- steps thought each statement. if it find a function call, it will go into the function call.
- continues debugging until next breakpoint is reached.