Difference between revisions of "Template:MCU resources"
(→GDB) |
(→GDB) |
||
Line 13: | Line 13: | ||
* [http://www.gnu.org/software/gdb/documentation/ GDB manual] |
* [http://www.gnu.org/software/gdb/documentation/ GDB manual] |
||
====Remote debugging example==== |
|||
Debugging myprog with a parameter 10. |
|||
⚫ | |||
* First, start the qemu emulator, providing the communications port (12345), and run it in background (&). |
|||
⚫ | |||
** Before you do this, make sure that the port is not in use by anyone or anything. |
|||
⚫ | |||
* Then start the gdb-multiarch with the name of the program and |
|||
⚫ | |||
* specify the remote target address (localhost) and the port (12345). |
|||
* Finally start the program execution with "continue". Perhaps, you may want to set some breakpoints before that. |
|||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
====A few essential GDB commands==== |
====A few essential GDB commands==== |
Revision as of 23:29, 28 October 2021
Contents
Resources
Make
GDB
- GDB tutorial from UMD
- GDB getting started tutorial
- GDB commands in short from PDX
- GDB manual
Remote debugging example
Debugging myprog with a parameter 10.
- First, start the qemu emulator, providing the communications port (12345), and run it in background (&).
- Before you do this, make sure that the port is not in use by anyone or anything.
- Then start the gdb-multiarch with the name of the program and
- specify the remote target address (localhost) and the port (12345).
- Finally start the program execution with "continue". Perhaps, you may want to set some breakpoints before that.
$ qemu-arm -L /usr/arm-linux-gnueabi -g 12345 myprog 10 & $ gdb-multiarch myprog (gdb) target remote localhost:12345 (gdb) continue
A few essential GDB commands
GDB command | Shortcut | Description |
run | Run the program from the beginning | |
continue | c | Continue (or start) the execution of the program |
step | s | Execute the current line from the source. If there is a function call, step into it.
This command can have a parameter n that tells how many steps to make. |
next | n | Execute the current line from the source. If there is a function call, stop after running it.
This command can have a parameter n that tells how many steps to make. |
break <x> | b <x> |
Set a "breakpoint" to <x>, where <x> could be:
|
list | l | Shows the source code (lines). Could be followed by a function_name or file:filename |
info registers | i r | Prints all registers and their values. Can be followed by one or more register names. |
set step mode on | Set running mode such that "step" will enter the code that has no debug information available.
Using "off" instead of "on" resets this mode. |
ARM
- ARM instruction set quick reference - from U.Wisconsin.
- A32 instruction summary
- Application Binary Interface (ABI) for the Arm architecture
- ARM A32 instruction set. Note, that ARM has several instruction sets described here
Xscale
- Intel XScale Microarchitecture Assembly Language Quick Reference Card ARM Instruction Set, Intel Corporation, 2001
- Intel IXP42X Product Line of Network Processors and IXC1100 Control Plane Processor Developer’s Manual, ON: 252480-006US, Intel Corporation, 2006
- Intel XScale(R) Core Developer’s Manual
- Intel XScale R Core Developer’s Manual, ON: 273473-002, Intel Corporation, 2004