| How to use SIS with GDB | |
| ----------------------- | |
| 1. Building GDB with SIS | |
| To build GDB with the SIS/ERC32 simulator, configure with option | |
| '--target sparc-erc32-aout' and build as usual. | |
| 2. Attaching the simulator | |
| To attach GDB to the simulator, use: | |
| target sim [options] [files] | |
| The following options are supported: | |
| -nfp Disable FPU. FPops will cause an FPU disabled trap. | |
| -freq <f> Set the simulated "system clock" to <f> MHz. | |
| -v Verbose mode. | |
| -nogdb Disable GDB breakpoint handling (see below) | |
| The listed [files] are expected to be in aout format and will be | |
| loaded in the simulator memory prior. This could be used to load | |
| a boot block at address 0x0 if the application is linked to run | |
| from RAM (0x2000000). | |
| To start debugging a program type 'load <program>' and debug as | |
| usual. | |
| The native simulator commands can be reached using the GDB 'sim' | |
| command: | |
| sim <sis_command> | |
| Direct simulator commands during a GDB session must be issued | |
| with care not to disturb GDB's operation ... | |
| For info on supported ERC32 functionality, see README.sis. | |
| 3. Loading aout files | |
| The GDB load command loads an aout file into the simulator | |
| memory with the data section starting directly after the text | |
| section regardless of wich start address was specified for the data | |
| at link time! This means that your applications either has to include | |
| a routine that initialise the data segment at the proper address or | |
| link with the data placed directly after the text section. | |
| A copying routine is fairly simple, just copy all data between | |
| _etext and _data to a memory loaction starting at _environ. This | |
| should be done at the same time as the bss is cleared (in srt0.s). | |
| 4. GDB breakpoint handling | |
| GDB inserts breakpoint in the form of the 'ta 1' instruction. The | |
| GDB-integrated simulator will therefore recognize the breakpoint | |
| instruction and return control to GDB. If the application uses | |
| 'ta 1', the breakpoint detection can be disabled with the -nogdb | |
| switch. In this case however, GDB breakpoints will not work. | |
| Report problems to Jiri Gaisler ESA/ESTEC (jgais@wd.estec.esa.nl) |