trace32 as gdb front-end · debugging protocol. in this case, we talk about stop mode debugging...

33
TRACE32 as GDB Front-End 1 ©1989-2020 Lauterbach GmbH TRACE32 as GDB Front-End TRACE32 Online Help TRACE32 Directory TRACE32 Index TRACE32 Documents ...................................................................................................................... GDB Support .................................................................................................................................. TRACE32 as GDB Front-End ..................................................................................................... 1 History ...................................................................................................................................... 3 Introduction ............................................................................................................................. 4 Documentation Updates 4 Related Documents 5 Supported Architectures ........................................................................................................ 5 TRACE32 Setup ....................................................................................................................... 6 Configuration File 6 T32Start 6 Connection Setup .................................................................................................................... 7 Debugging Virtual Targets 7 Example: Connecting to QEMU 7 Protocol Extensions 8 GNU GDBserver 9 Connection Setup 10 Multi-Process Debugging 13 UndoDB Reversible Debugger 14 KGDB 15 Troubleshooting ...................................................................................................................... 16 GDB Front-End Commands .................................................................................................... 17 SYStem.CPU Select target CPU 17 SYStem.Mode Establish communication to debug agent 17 SYStem.CpuAccess Run-time memory access (intrusive) 18 SYStem.CpuBreak Master control to deny stopping the target (long stop) 18 SYStem.CpuSpot Master control to deny spotting the target (short stop) 19 SYStem.MemAccess Real-time memory access 20 SYStem.Option BigEndian Define byte order (endianness) 20 SYStem.Option DisMode Define disassembler mode 21 SYStem.Option MMUSPACES Separate address spaces by space IDs 21 SYStem.GDBconfig BREAKSOFT Use software breakpoint 22 SYStem.GDBconfig EXTENDED Enable/disable gdb extended mode 22

Upload: others

Post on 18-Jul-2020

18 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: TRACE32 as GDB Front-End · debugging protocol. In this case, we talk about Stop Mode debugging since the TRACE32 GDB Front-End controls the whole target system and not a single process

TRACE32 as GDB Front-End

TRACE32 Online Help

TRACE32 Directory

TRACE32 Index

TRACE32 Documents ......................................................................................................................

GDB Support ..................................................................................................................................

TRACE32 as GDB Front-End ..................................................................................................... 1

History ...................................................................................................................................... 3

Introduction ............................................................................................................................. 4

Documentation Updates 4

Related Documents 5

Supported Architectures ........................................................................................................ 5

TRACE32 Setup ....................................................................................................................... 6

Configuration File 6

T32Start 6

Connection Setup .................................................................................................................... 7

Debugging Virtual Targets 7

Example: Connecting to QEMU 7

Protocol Extensions 8

GNU GDBserver 9

Connection Setup 10

Multi-Process Debugging 13

UndoDB Reversible Debugger 14

KGDB 15

Troubleshooting ...................................................................................................................... 16

GDB Front-End Commands .................................................................................................... 17

SYStem.CPU Select target CPU 17

SYStem.Mode Establish communication to debug agent 17

SYStem.CpuAccess Run-time memory access (intrusive) 18

SYStem.CpuBreak Master control to deny stopping the target (long stop) 18

SYStem.CpuSpot Master control to deny spotting the target (short stop) 19

SYStem.MemAccess Real-time memory access 20

SYStem.Option BigEndian Define byte order (endianness) 20

SYStem.Option DisMode Define disassembler mode 21

SYStem.Option MMUSPACES Separate address spaces by space IDs 21

SYStem.GDBconfig BREAKSOFT Use software breakpoint 22

SYStem.GDBconfig EXTENDED Enable/disable gdb extended mode 22

TRACE32 as GDB Front-End 1 ©1989-2020 Lauterbach GmbH

Page 2: TRACE32 as GDB Front-End · debugging protocol. In this case, we talk about Stop Mode debugging since the TRACE32 GDB Front-End controls the whole target system and not a single process

SYStem.GDBconfig GDBSERVER Remote target is a gdbserver 23

SYStem.GDBconfig INFERIORID Set inferior ID 23

SYStem.GDBconfig NONSTOP Enable/disable non-stop mode 23

SYStem.PORT Set communication settings 24

SYStem.GDBSIGnal Define signal handling 24

TASK.List.tasks List the running processes on the target 25

TASK.SELect Select a task for debugging 25

TASK.RUN Start a new process 25

TASK.KILL Kill a running process 25

TASK.Attach Attach to a running process 25

TASK.DETACH Detach from a running process 26

TASK.COPYUP Copy a file from the target into the host 26

TASK.COPYDOWN Copy a file from the host into the target 26

TASK.Go Start a single task 26

TASK.Break Stop a single task 26

Support ..................................................................................................................................... 27

Compiler 27

ARM 27

I386 28

MIPS 28

PPC 29

XScale 30

Products ................................................................................................................................... 31

Product Information 31

TRACE32 as GDB Front-End 2 ©1989-2020 Lauterbach GmbH

Page 3: TRACE32 as GDB Front-End · debugging protocol. In this case, we talk about Stop Mode debugging since the TRACE32 GDB Front-End controls the whole target system and not a single process

TRACE32 as GDB Front-End

Version 21-Feb-2020

History

15-Jan-19 Revised manual.

29-Nov-18 Added description for the new commands SYStem.GDBconfig BREAKSOFT and SYStem.GDBconfig INFERIORID.

TRACE32 as GDB Front-End 3 ©1989-2020 Lauterbach GmbH

Page 4: TRACE32 as GDB Front-End · debugging protocol. In this case, we talk about Stop Mode debugging since the TRACE32 GDB Front-End controls the whole target system and not a single process

Introduction

The TRACE32 GDB Front-End is a software debugger solution which communicates via Ethernet or RS232 with a gdbserver /gdbstub using the GDB Remote Serial Protocol (RSP).

The TRACE32 GDB Front-End can be used:

• To connect to the GNU gdbserver in order to debug Linux user-space processes.

• To debug the Linux kernel via KGDB.

• To connect to any kind of virtual target or debugger implementing a gdbstub (e.g. QEMU)

• As a front end for the UndoDB reversible debugger

The TRACE32 GDB Front-End operates in two different modes: Run Mode and Stop Mode.

Run Mode is used when debugging a Linux user-space process using the GNU gdbserver or the UndoDB target server. In this case, only the selected task is stopped when a breakpoint is hit. The kernel and all other processes continue to run. In Run Mode, a single program may have more than one unit of execution, called threads, that share one memory address space. Each thread has its own registers and execution stack. The debugger gets and displays the information about the running tasks from the gdbserver by using the dedicated Remote Serial Protocol packets.

On the other hand, multiple virtual targets (e.g. QEMU) support the GDB Remote Serial Protocol as a debugging protocol. In this case, we talk about Stop Mode debugging since the TRACE32 GDB Front-End controls the whole target system and not a single process. A breakpoint will thus cause the target system to stop completely. In order to support Symmetrical Multi-Processing (SMP) debugging over the GDB interface, the TRACE32 GDB Front-End considers each core from an SMP system as a thread of execution. Thus, all the RSP packets relative to the multi-thread handling are used for multi-core handling. Moreover, some virtual targets support different core clusters which are considered as GDB inferiors. The GDB packets for multi-process handling are used for this purpose.

Documentation Updates

The latest version of this document is available for download from: www.lauterbach.com/pdf/frontend_gdb.pdf

NOTE: Demo scripts for the TRACE32 GDB Front-End are available in the TRACE32 installation directory under ~~/demo/etc/gdb

TRACE32 as GDB Front-End 4 ©1989-2020 Lauterbach GmbH

Page 5: TRACE32 as GDB Front-End · debugging protocol. In this case, we talk about Stop Mode debugging since the TRACE32 GDB Front-End controls the whole target system and not a single process

Related Documents

• For information about using TRACE32 PowerView as a GDB Back-End, please refer to “TRACE32 as GDB Back-End” (backend_gdb.pdf).

• For information about Linux Integrated Run and Stop Mode Debugging, please refer to “Run Mode Debugging Manual Linux” (rtos_linux_run.pdf).

• For information about debugging virtual targets via interfaces other than GDB (e.g. MCD or CADI) please refer to “Virtual Targets User’s Guide” (virtual_targets.pdf).

Supported Architectures

The TRACE32 GDB Front-End is available for the following architectures:

• 68K/ColdFire

• 8051/XC800/M51

• ARM (32- and 64-bit)

• GTM

• Hexagon

• Intel x86/x86 64

• MIPS32/MIPS64

• NIOS-II

• PowerArchitecture (32- and 64-bit)

• RISC-V (32- and 64-bit)

• SuperH

• TriCore

• V850/RH850

• Xtensa

Other architectures can be supported on demand. Please send your request to [email protected]

TRACE32 as GDB Front-End 5 ©1989-2020 Lauterbach GmbH

Page 6: TRACE32 as GDB Front-End · debugging protocol. In this case, we talk about Stop Mode debugging since the TRACE32 GDB Front-End controls the whole target system and not a single process

TRACE32 Setup

Configuration File

To configure TRACE32 as GDB Front-End, you need to add the following lines to your TRACE32 configuration file. The default configuration file is config.t32 and is located in the TRACE32 system directory.

Example configuration for Windows:

For more information about the TRACE32 configuration, please refer to “Debugger Basics - Training” (training_debugger.pdf).

T32Start

In case you are using the t32start utility to start the TRACE32 GDB Front-End, you need to add a GDB Debugger to your configuration.

Please refer to the “T32Start” (app_t32start.fm) manual for more information about the t32start utility.

PBI=GDB<- mandatory empty line

<- mandatory empty line

PBI=GDB

SYS=C:\T32TMP=C:\Temp

SCREEN=FONT=SMALL

TRACE32 as GDB Front-End 6 ©1989-2020 Lauterbach GmbH

Page 7: TRACE32 as GDB Front-End · debugging protocol. In this case, we talk about Stop Mode debugging since the TRACE32 GDB Front-End controls the whole target system and not a single process

Connection Setup

This chapter describes the needed configurations in order to establish a debug communication between theTRACE32 GDB Front-End and the following targets:

• Virtual targets with QEMU as example

• GNU GDBserver

• UndoDB reversible febugger

• KGDB

Debugging Virtual Targets

Multiple virtual targets includes a gdbstub and can thus be debugged using the TRACE32 GDB Front-End. We describe in the following the needed steps to establish a debug communication with QEMU.

Example: Connecting to QEMU

The following steps are required to establish a debug connection with the QEMU emulator.

1. Start QEMU using the -gdb tcp::<port_number> command line option or -s for the default port number 1234.

2. Start TRACE32 as GDB Front-End.

3. Select the target CPU from the SYStem.state window or using the SYStem.CPU command

4. Define the communication parameters in TRACE32 using the SYStem.PORT command.

Example for localhost and default port number 1234:

5. Set the remote target type using the command SYStem.GDBconfig GDBSERVER OFF.

6. Establish the communication to the QEMU gdbstub using the SYStem.Mode Attach command

SYStem.CPU ZYNQ-ULTRASCALE+-APU

SYStem.PORT localhost:1234

SYStem.GDBconfig GDBSERVER OFF

SYStem.Mode Attach

TRACE32 as GDB Front-End 7 ©1989-2020 Lauterbach GmbH

Page 8: TRACE32 as GDB Front-End · debugging protocol. In this case, we talk about Stop Mode debugging since the TRACE32 GDB Front-End controls the whole target system and not a single process

Protocol Extensions

The Remote Serial Protocol does not provide a way to distinguish between different memory types. When the TRACE32 GDB Front-End is used in Stop Mode to debug a virtual target, the memory address is not always sufficient to identify a unique physical memory location. Depending on the access mode, the same memory address could refer to different physical memory locations (e.g. secure/non-secure memory for ARM architecture).

To overcome these limitations, Lauterbach has defined the following protocol extensions:

• A packet to read <length> addressable memory of type defined by <access_class> starting at address <address>.

• A packet to write <length> addressable memory of type defined by <access_class> starting at address <address>. The data is given by <values>; each byte is transmitted as a two-digit hexadecimal number.

If the TRACE32 software version implements this protocol extension, it should include the string ”qtrace32.memory+;Qtrace32.memory+” in the reply to the “qSupported” packet.

qtrace32.memory:<access_class>,<address>,<length>

Qtrace32.memory:<access_class>,<address>,<length>,<values>

The available access classes depend on the processor architecture in use. Therefore refer to the Access Class/Memory Class section of your Processor Architecture Manual for more details.

TRACE32 as GDB Front-End 8 ©1989-2020 Lauterbach GmbH

Page 9: TRACE32 as GDB Front-End · debugging protocol. In this case, we talk about Stop Mode debugging since the TRACE32 GDB Front-End controls the whole target system and not a single process

GNU GDBserver

The gdbserver can be started in one of two different modes:

1. Single-process mode, also called target remote mode. In this case, the program to debug has to be specified on the gdbserver command line, or the --attach command line option has to be used to attach to a running process by specifying its PID.

Example 1: Start the gdbserver to debug the process /bin/hello from the start:

Example 2: Attach to the running process with PID 123

2. Multi-process mode, also called target extended-remote mode. In this case, the gdbserver can be started without supplying an initial command to run or PID to attach. The --multi command line option has to be used.

Example:

In multi-process mode, the GDB extended mode has to be enabled. This can be configured in TRACE32 using the command SYStem.GDBconfig EXTENDED ON.

Moreover, GDB supports two different modes for debugging multi-threaded processes: Non-Stop Mode and All-Stop Mode.

In All-Stop Mode, all threads of execution stop when the program stops. In Non-Stop Mode it is possible to stop single threads while other threads continue to execute. You can select the mode in TRACE32 using the command SYStem.GDBconfig NONSTOP which is per default set to OFF.

For more information about the different command line options and debug modes, please refer to the gdbserver documentation.

gdbserver :2345 /bin/hello

gdbserver --attach :2345 123

gdbserver --multi :2345

TRACE32 as GDB Front-End 9 ©1989-2020 Lauterbach GmbH

Page 10: TRACE32 as GDB Front-End · debugging protocol. In this case, we talk about Stop Mode debugging since the TRACE32 GDB Front-End controls the whole target system and not a single process

Connection Setup

The following steps are required to establish the communication with the gdbserver:

1. Select the target CPU from the SYStem.state window or using the SYStem.CPU command.

2. Enable the address extension in TRACE32 PowerView using the command SYStem.Option MMUSPACES ON. This step is only required if the gdbserver has been started in multi-process mode.

3. Define the communication parameters in TRACE32 using the SYStem.PORT command.

Example for target IP address 192.168.188.50 and port number 2345:

4. Set the remote target type to gdbserver using the command SYStem.GDBconfig GDBSERVER ON. If this command is not used, the TRACE32 GDB Front-End tries to detect what kind of remote target is used.

5. Use software breakpoints for assembly single stepping. This is required if Linux-3.x or newer is running on the target.

6. Enable the Non-Stop mode if it is required to stop single threads.

7. If the gdbserver has been started in multi-process mode, the extended mode has to be enabled using the command SYStem.GDBconfig EXTENDED ON, otherwise TRACE32 will return the error “the target is not running”.

8. Establish the communication to the gdbserver using the SYStem.Mode Attach command:

SYStem.CPU CortexA9

SYStem.Option MMUSPACES ON

SYStem.PORT 192.168.188.50:2345

SYStem.GDBconfig GDBSERVER ON

SYStem.Option STEPSOFT ON

SYStem.GDBconfig NONSTOP ON

SYStem.Mode Attach

TRACE32 as GDB Front-End 10 ©1989-2020 Lauterbach GmbH

Page 11: TRACE32 as GDB Front-End · debugging protocol. In this case, we talk about Stop Mode debugging since the TRACE32 GDB Front-End controls the whole target system and not a single process

9. If the gdbserver has been started in multi-process mode, the commands TASK.RUN and TASK.Attach can be used to start a new process or attach to a running process.

Example:

10. Load the process debug symbols. In multi-process mode, the process space ID has to be specified.

Typical Start-up Script for the Single-Process Mode

; start the process helloTASK.RUN /usr/bin/hello

; attach to the process sieve with PID 123TASK.ATTACH 123.

; single-process modeData.LOAD.Elf sieve /NoCODE /NoClear

; multi-process mode (0x7b is the space ID of the process sieve)Data.LOAD.Elf sieve 0x7b:0 /NoCODE /NoClear

; Reset all commandsRESet

; Clear all TRACE32 PowerView windowsWinCLEAR

; Select the target CPUSYStem.CPU *

; Set the target IP address and port numberSYStem.PORT 192.168.188.50:2345

; Set the target type to “gdbserver”SYStem.GDBconfig GDBSERVER ON

; Use software breakpoints for assembly single steppingSYStem.Option STEPSOFT ON

; Attach to the gdbserver SYStem.Mode Attach

; Load the debug symbols of process "sieve" Data.LOAD.Elf sieve /NoCODE /NoClear

TRACE32 as GDB Front-End 11 ©1989-2020 Lauterbach GmbH

Page 12: TRACE32 as GDB Front-End · debugging protocol. In this case, we talk about Stop Mode debugging since the TRACE32 GDB Front-End controls the whole target system and not a single process

Typical Start-up Script for the Multi-Process Mode

; Reset all commandsRESet

; Clear all TRACE32 PowerView windowsWinCLEAR

; Select the target CPUSYStem.CPU *

; Set the target IP address and port numberSYStem.PORT 192.168.188.50:2345

; Set the target type to “gdbserver”SYStem.GDBconfig GDBSERVER ON

; Set the extended modeSYStem.GDBconfig EXTENDED ON

; Use software breakpoints for assembly single steppingSYStem.Option STEPSOFT ON

; Attach to the gdbserver SYStem.Mode Attach

; View the list of processesTASK.List.tasks

; Start process sieve, wait 1.s and read its space IDTASK.RUN /bin/sieveWAIT 1.s&spaceid=TASK.SPACEID("sieve")

; Load the debug symbols of process "sieve" Data.LOAD.Elf hello &spaceid:0 /NoCODE /NoClear

NOTE: The TRACE32 GDB Front-End for Intel x86 can be used together with the x86 gdbserver to debug native x86 Linux applications.

TRACE32 as GDB Front-End 12 ©1989-2020 Lauterbach GmbH

Page 13: TRACE32 as GDB Front-End · debugging protocol. In this case, we talk about Stop Mode debugging since the TRACE32 GDB Front-End controls the whole target system and not a single process

Multi-Process Debugging

Processes of Linux may reside virtually on the same addresses. To distinguish those addresses, the debugger uses an additional identifier called space ID (memory space ID) that specifies to which virtual memory space an address refers to. The space ID is equal to the process ID. Threads of a particular process use the same memory space. Consequently, threads of the same process have the same space ID.

The command SYStem.Option MMUSPACES ON enables the additional space ID.

A source code listing for the process sieve is displayed as follows:

A breakpoint to main in the process sieve can be set with one of the following commands:

Please be aware that process-specific breakpoints are set as soon as the process is started by Go.

Break.Set \\sieve\global\main

Break.Set 0x300:0x957C

Break.Set 786.:0x957C

Space ID

Space ID

TRACE32 as GDB Front-End 13 ©1989-2020 Lauterbach GmbH

Page 14: TRACE32 as GDB Front-End · debugging protocol. In this case, we talk about Stop Mode debugging since the TRACE32 GDB Front-End controls the whole target system and not a single process

UndoDB Reversible Debugger

The TRACE32 GDB Front-End can be used as a front end for the UndoDB reversible debugger. The UndoDB target server allows to debug a Linux user space application as well as to records details of its execution. In addition to controlling the debugging process, the TRACE32 GDB Front-End also takes over the task of displaying the recorded data of the UndoDB target server in the TRACE32 PowerView user interface. Like a trace recording, the user has the ability to debug the application going through the code both forward and backward (“reverse-debugging”).

The TRACE32 GDB Front-End automatically detects if it is communicating with an UndoDB target server and enables the reverse-debugging commands.

In reverse-debugging mode, all control buttons in the List window are displayed in yellow. In addition, the time of recording displayed in the TRACE32 PowerView state line is referenced in reverse.

Go.Back Go back in program

Go.BackEntry Go back in program to function entry

Step.Back Step back

Step.BackChange Step back till expression changes

Step.BackOver Step back over call

Step.BackTill Step back till expression is true

TRACE32 as GDB Front-End 14 ©1989-2020 Lauterbach GmbH

Page 15: TRACE32 as GDB Front-End · debugging protocol. In this case, we talk about Stop Mode debugging since the TRACE32 GDB Front-End controls the whole target system and not a single process

KGDB

The TRACE32 GDB Front-End supports debugging the Linux kernel using KGDB. Please note that it is only possible to debug the kernel space. Debugging the user-space as supported by the TRACE32 Stop Mode Debugging for Linux is not possible.

Example start-up script for Linux kernel debugging via KGDB:

The program execution can be stopped by writing ‘g’ to the file /proc/sysrq-trigger

; Reset all commandsRESet

; Clear all TRACE32 PowerView windowsWinCLEAR

; Select the CPUSYStem.CPU *

; Enable address extensionSYStem.Option MMUSPACES ON

; Set the communication parameter (serial port)SYStem.PORT COM1 baud=115200 KGDB

; Attach to the KGDB stub in the Linux kernelSYStem.Mode Attach

; Load the kernel symbols Data.LOAD.Elf vmlinux /GNU /NoCODE

; Load the Linux Awareness (e.g Linux-3.x. for ARM)TASK.CONFIG ~~/demo/arm/kernel/linux/linux-3.x/linux3.t32MENU.ReProgram ~~/demo/arm/kernel/linux/linux-3.x/linux.men

echo g > /proc/sysrq-trigger

TRACE32 as GDB Front-End 15 ©1989-2020 Lauterbach GmbH

Page 16: TRACE32 as GDB Front-End · debugging protocol. In this case, we talk about Stop Mode debugging since the TRACE32 GDB Front-End controls the whole target system and not a single process

Troubleshooting

No information available until yet.

TRACE32 as GDB Front-End 16 ©1989-2020 Lauterbach GmbH

Page 17: TRACE32 as GDB Front-End · debugging protocol. In this case, we talk about Stop Mode debugging since the TRACE32 GDB Front-End controls the whole target system and not a single process

GDB Front-End Commands

SYStem.CPU Select target CPU

Selects the processor type.

SYStem.Mode Establish communication to debug agent

Default: Down

Format: SYStem.CPU <type>

Format: SYStem.Mode <mode>

<mode>: DownNoDebugAttachUp

Down The TRACE32 GDB Front-End has no connection to the gdbserver / gdbstub. When switching from Up to Down, the TRACE32 GDB Front-End sends a GDB “kill” packet to the gdbserver / gdbstub.

NoDebug The TRACE32 GDB Front-End has no connection to the gdbserver / gdbstub.When switching from Up to NoDebug, the TRACE32 GDB Front-End detaches from the gdbserver / gdbstub.

Attach The TRACE32 GDB Front-End establishes the connection to gdbserver / gdbstub.

Up The TRACE32 GDB Front-End is connected to gdbserver / gdbstub.Up cannot be used to establish the connection.

TRACE32 as GDB Front-End 17 ©1989-2020 Lauterbach GmbH

Page 18: TRACE32 as GDB Front-End · debugging protocol. In this case, we talk about Stop Mode debugging since the TRACE32 GDB Front-End controls the whole target system and not a single process

SYStem.CpuAccess Run-time memory access (intrusive)

Default: Denied.

Configures how memory access is handled during run-time.

SYStem.CpuBreak Master control to deny stopping the target (long stop)

Default: Enable.

Format: SYStem.CpuAccess <sub_cmd> (deprecated)

<sub_cmd>: Enable (deprecated)Use SYStem.MemAccess StopAndGo instead.

Denied (deprecated)There is no need to use a successor command (default setting).

Nonstop (deprecated)Use SYStem.CpuBreak Denied instead.

Enable Allow intrusive run-time memory access.

Denied Lock intrusive run-time memory access.

Nonstop Lock all features of the debugger that affect the run-time behavior.

Format: SYStem.CpuBreak [<mode>]

<mode>: Enable | Denied

Enable Allows stopping the target.

Denied Denies stopping the target. This includes manual stops and stop breakpoints. However, short stops, such as spot breakpoints, may still be allowed.

SYStem.CpuBreak Denied can be used to protect a target system which does not tolerate that the program execution is stopped for an extended period of time.

TRACE32 as GDB Front-End 18 ©1989-2020 Lauterbach GmbH

Page 19: TRACE32 as GDB Front-End · debugging protocol. In this case, we talk about Stop Mode debugging since the TRACE32 GDB Front-End controls the whole target system and not a single process

SYStem.CpuSpot Master control to deny spotting the target (short stop)

Default: Enable.

Spotting is an intrusive way to transfer data periodically or on certain events from the target system to the debugger. As a result, the program is not running in real-time anymore. For more information, see SYStem.CpuBreak and SYStem.MemAccess.

Example:

Format: SYStem.CpuSpot [<mode>]

<mode>: Enable | Denied | Target | SINGLE

Enable Allows spotting the target.

Denied Denies spotting the target.Stopping the target may still be allowed.

Target Allows spotting the target controlled by the target.This allows target-stopped FDX and TERM communication.All other spots are denied.

SINGLE Allows single spots triggered by a command.This includes spotting for changing the breakpoint configuration and the SNOOPer.PC command.This setting also allows target-stopped FDX and TERM communication.All other spots are denied.

SYStem.CpuSpot DeniedBreak.Set main /Spot ; spot breakpoint results in an error message

TRACE32 as GDB Front-End 19 ©1989-2020 Lauterbach GmbH

Page 20: TRACE32 as GDB Front-End · debugging protocol. In this case, we talk about Stop Mode debugging since the TRACE32 GDB Front-End controls the whole target system and not a single process

SYStem.MemAccess Real-time memory access

Default: Denied

SYStem.Option BigEndian Define byte order (endianness)

Default: OFF.

This option selects the byte ordering mechanism.

Format: SYStem.MemAccess StopAndGo | Denied

StopAndGo Temporarily halts the core(s) to perform the memory access. Each stop takes some time depending on the speed of the JTAG port, the number of the assigned cores, and the operations that should be performed.

Denied Real-time memory access during program execution to target is disabled.

Format: SYStem.Option BigEndian [ON | OFF]

TRACE32 as GDB Front-End 20 ©1989-2020 Lauterbach GmbH

Page 21: TRACE32 as GDB Front-End · debugging protocol. In this case, we talk about Stop Mode debugging since the TRACE32 GDB Front-End controls the whole target system and not a single process

SYStem.Option DisMode Define disassembler mode

This command specifies the selected disassembler. Different options are available depending on the used architecture. Please refer to your Processor Architecture Manual for more details.

SYStem.Option MMUSPACES Separate address spaces by space IDs

Default: OFF.

Enables the use of space IDs for logical addresses to support multiple address spaces.

For an explanation of the TRACE32 concept of address spaces (zone spaces, MMU spaces, and machine spaces), see “TRACE32 Glossary” (glossary.pdf).

Format: SYStem.Option DisMode <option>

<option>: AUTO | ACCESS | <architecture specific option>

AUTO The information provided by the compiler output file is used for the disassembler selection. If no information is available, it has the same behavior as the option ACCESS.

ACCESS The selected disassembler depends on the status register. Please refer to your Processor Architecture Manual for more details.

Format: SYStem.Option MMUSPACES [ON | OFF]SYStem.Option MMUspaces [ON | OFF] (deprecated)SYStem.Option MMU [ON | OFF] (deprecated)

NOTE: SYStem.Option MMUSPACES should not be set to ON if only one translation table is used on the target.

If a debug session requires space IDs, you must observe the following sequence of steps:

1. Activate SYStem.Option MMUSPACES.

2. Load the symbols with Data.LOAD.

Otherwise, the internal symbol database of TRACE32 may become inconsistent.

TRACE32 as GDB Front-End 21 ©1989-2020 Lauterbach GmbH

Page 22: TRACE32 as GDB Front-End · debugging protocol. In this case, we talk about Stop Mode debugging since the TRACE32 GDB Front-End controls the whole target system and not a single process

Examples:

SYStem.GDBconfig BREAKSOFT Use software breakpoint

Default: OFF.

When set to ON, TRACE32 GDB Front-End sets breakpoints by patching the corresponding address by a breakpoint instruction instead of sending a "z/Z" RSP packet.

SYStem.GDBconfig EXTENDED Enable/disable gdb extended mode

Default: OFF.

When set to ON, this command enables the GDB extended mode which makes the remote server persistent. If the remote server is a gdbserver started in multi-process mode, the extended mode has to be enabled. Otherwise TRACE32 will return the error “the target is not running” when establishing the connection.

;Dump logical address 0xC00208A belonging to memory space with ;space ID 0x012A:Data.dump D:0x012A:0xC00208A

;Dump logical address 0xC00208A belonging to memory space with ;space ID 0x0203:Data.dump D:0x0203:0xC00208A

Format: SYStem.GDBconfig BREAKSOFT ON | OFF

Format: SYStem.GDBconfig EXTENDED ON | OFFSYStem.Option gdbEXTENDED ON | OFF (deprecated)

TRACE32 as GDB Front-End 22 ©1989-2020 Lauterbach GmbH

Page 23: TRACE32 as GDB Front-End · debugging protocol. In this case, we talk about Stop Mode debugging since the TRACE32 GDB Front-End controls the whole target system and not a single process

SYStem.GDBconfig GDBSERVER Remote target is a gdbserver

Default: AUTO.

SYStem.GDBconfig INFERIORID Set inferior ID

Sets the inferior ID in case of multiple inferiors are supported by the gdbstub.

SYStem.GDBconfig NONSTOP Enable/disable non-stop mode

Default: OFF.

Enabling non-stop mode is only possible with gdbserver. Thus SYStem.GDBconfig NONSTOP ON will automatically set SYStem.GDBconfig GDBSERVER to ON.

Format: SYStem.GDBconfig GDBSERVER ON | OFF | AUTO

ON, OFF This option has to be set to ON if the TRACE32 GDB Front-End is connected to a GNU gdbserver. Otherwise set to OFF.

AUTO The default value is AUTO which means that the TRACE32 GDB Front-End tries to detect what kind of remote target is used.

Format: SYStem.GDBconfig INFERIORID <id>

Format: SYStem.GDBconfig NONSTOP ON | OFFSYStem.Option gdbNONSTOP ON | OFF (deprecated)

NOTE: Non-stop mode is supported for multi-thread debugging with the following known limitations: • Resuming from a breakpoint is not supported for non-current threads.• For the Intel x86/x64 architecture, if a non-current thread hits a break-

point, a program counter alignment issue could occur.Thus, it is always recommended to focus on debugging only one thread (current thread) at a given time.

TRACE32 as GDB Front-End 23 ©1989-2020 Lauterbach GmbH

Page 24: TRACE32 as GDB Front-End · debugging protocol. In this case, we talk about Stop Mode debugging since the TRACE32 GDB Front-End controls the whole target system and not a single process

SYStem.PORT Set communication settings

Sets the communication parameters. You can use a serial or a TCP communication.

SYStem.GDBSIGnal Define signal handling

Defines the gdbserver/TRACE32 behavior when the application sends the signal <signum>.

Format: SYStem.PORT <settings>

<settings>: <com> BAUD=<baudrate><host>:<port>

SYStem.PORT COM1 baud=9600

SYStem.PORT 10.1.2.99:2345

Format: SYStem.GDBSIGnal <mode> <signum>

<mode>: STOP | NOSTOP | PASS | NOPASS | PRINT | NOPRINT

<signum> Signal number

NOPASS Do not allow the program to see this signal.

NOPRINT No message is printed.

NOSTOP The signal is ignored and the application continue running.

PASS Allow the program to see this signal; the program can handle the signal, or else it may terminate if the signal is fatal and not handled.

PRINT A message is printed in the AREA window when the signal is received.

STOP The debugger should stop on this signal.

TRACE32 as GDB Front-End 24 ©1989-2020 Lauterbach GmbH

Page 25: TRACE32 as GDB Front-End · debugging protocol. In this case, we talk about Stop Mode debugging since the TRACE32 GDB Front-End controls the whole target system and not a single process

TASK.List.tasks List the running processes on the target

Only for multi-process mode. For more information about the command, see TASK.List.tasks in general_ref_t.pdf.

TASK.SELect Select a task for debugging

Selects a task for debugging. Only for multi-process mode.

TASK.RUN Start a new process

Starts a new process. Only for multi-process mode.

TASK.KILL Kill a running process

Kills a running process. Only for multi-process mode.

TASK.Attach Attach to a running process

Attaches to a running process. Only for multi-process mode.

Format: TASK.List.tasks

Format: TASK.SELect <id>

Format: TASK.RUN <process>

Format: TASK.KILL <id>

Format: TASK.Attach <pid>

TRACE32 as GDB Front-End 25 ©1989-2020 Lauterbach GmbH

Page 26: TRACE32 as GDB Front-End · debugging protocol. In this case, we talk about Stop Mode debugging since the TRACE32 GDB Front-End controls the whole target system and not a single process

TASK.DETACH Detach from a running process

Detaches from a running process. Only for multi-process mode.

TASK.COPYUP Copy a file from the target into the host

TASK.COPYDOWN Copy a file from the host into the target

TASK.Go Start a single task

Starts a single task. Only for multi-process mode.

TASK.Break Stop a single task

Stops a single task. Only for multi-process mode.

Format: TASK.DETACH <pid>

Format: TASK.COPYUP <target_file> <file>

Format: TASK.COPYDOWN <file> <target_file>

Format: TASK.Go <id>

Format: TASK.Break <id>

TRACE32 as GDB Front-End 26 ©1989-2020 Lauterbach GmbH

Page 27: TRACE32 as GDB Front-End · debugging protocol. In this case, we talk about Stop Mode debugging since the TRACE32 GDB Front-End controls the whole target system and not a single process

Support

Compiler

ARM

Language Compiler Company Option Comment

ADA GNAT PRO AdaCore ELF/DWARF not all ADA constructs/DWARF

C ARMCC ARM Ltd. AIFC ARMCC ARM Ltd. ELF/DWARFC REALVIEW-MDK ARM Ltd. ELF/DWARFC GCCARM GNU Compiler

CollectionCOFF/STABS

C GCCARM GNU Compiler Collection

ELF/DWARF

C GREENHILLS-C Greenhills Software Inc. ELF/DWARFC ICCARM IAR Systems AB ELF/DWARFC ICCV7-ARM Imagecraft Creations

Inc.ELF/DWARF ARM7

C CARM ARM Germany GmbH ELF/DWARFC HIGH-C Synopsys, Inc ELF/DWARFC TI-C Texas Instruments COFFC GNU-C Wind River Systems COFFC D-CC Wind River Systems ELFC++ ARM-SDT-2.50 ARM Ltd. ELF/DWARFC++ REALVIEW-MDK ARM Ltd. ELF/DWARFC++ GCCARM GNU Compiler

CollectionCOFF/STABS

C++ GNU GNU Compiler Collection

EXE/STABS

C++ GCCARM GNU Compiler Collection

ELF/DWARF

C++ GREENHILLS-C++ Greenhills Software Inc. ELF/DWARFC++ MSVC Microsoft Corporation EXE/CV5 WindowsCEC++ HIGH-C++ Synopsys, Inc ELF/DWARFC/C++ GNAT PRO AdaCore ELF/DWARFC/C++ XCODE Apple Inc. Mach-OC/C++ GCC HighTec EDV-Systeme

GmbHELF/DWARF

C/C++ VX-ARM TASKING ELF/DWARF

TRACE32 as GDB Front-End 27 ©1989-2020 Lauterbach GmbH

Page 28: TRACE32 as GDB Front-End · debugging protocol. In this case, we talk about Stop Mode debugging since the TRACE32 GDB Front-End controls the whole target system and not a single process

I386

MIPS

Language Compiler Company Option Comment

C SCO-UNIX-CC COFFC GNU-C GNU Compiler

CollectionDBX

C GNU-C GNU Compiler Collection

ELF/DWARF

C GCC386 Greenhills Software Inc. COFFC IC386 Intel Corporation OMF-386C IC286 Intel Corporation OMF-286C MCC386 Mentor Graphics

CorporationEOMF-386

C MSVC-1.5 Microsoft Corporation EOMF-386 Pharlap ETSC MSVC Microsoft Corporation EXE/CVC MSVC Microsoft Corporation OMF-386/CV SSI Link386C MSVC/CSI Microsoft Corporation EOMF-386C HC386 Synopsys, Inc OMF386/SPFC HIGHC Synopsys, Inc ELF/DWARFC++ BORLAND-C Borland Software

CorporationEXE/BC5

C++ ORGANON CAD-UL ElectronicServices GmbH

OMF386++

C++ GNU-C++ GNU Compiler Collection

DBX

C++ MSVC Microsoft Corporation EXE/CV4C++ HC386 Synopsys, Inc OMF/SPFC++ HIGH-C++ Synopsys, Inc ELF/DWARF

Language Compiler Company Option Comment

C TCC TASKING IEEEC++ GCC GNU Compiler

CollectionELF/DWARF

C++ GREEN-HILLS-C++

Greenhills Software Inc. ELF/DWARF

C++ SDE Imagination Technologies

ELF/STABS

TRACE32 as GDB Front-End 28 ©1989-2020 Lauterbach GmbH

Page 29: TRACE32 as GDB Front-End · debugging protocol. In this case, we talk about Stop Mode debugging since the TRACE32 GDB Front-End controls the whole target system and not a single process

PPC

Language Compiler Company Option Comment

ADA GNAT PRO AdaCore ELF/DWARF not all ADA constructs/DWARF

ADA GNAT GNU Compiler Collection

ELF/DWARF

C CXPPC Cosmic Software ELF/DWARFC XCC-V GAIO Technology Co.,

Ltd.SAUF

C GREEN-HILLS-C Greenhills Software Inc. ELF/DWARFC MCCPPC Mentor Graphics

CorporationELF/DWARF

C CC NXP Semiconductors XCOFFC ULTRA-C Radisys Inc. ROFC HIGH-C Synopsys, Inc ELF/DWARFC DCPPC TASKING ELF/DWARFC D-CC Wind River Systems IEEEC D-CC Wind River Systems COFFC D-CC Wind River Systems ELF/DWARFC++ GCC GNU Compiler

CollectionELF/DWARF

C++ GREEN-HILLS-C++

Greenhills Software Inc. ELF/DWARF

C++ CCCPPC Mentor Graphics Corporation

ELF/DWARF

C++ MSVC Microsoft Corporation EXE/CV5 WindowsCEC++ HIGH-C++ Synopsys, Inc ELF/DWARFC++ D-C++ Wind River Systems ELF/DWARFC++ GCCPPC Wind River Systems ELF/STABSC/C++ GNAT PRO AdaCore ELF/DWARFC/C++ GCC HighTec EDV-Systeme

GmbHELF/DWARF

C/C++ CODEWARRIOR NXP Semiconductors ELF/DWARFGCC GCC GNU Compiler

CollectionELF/DWARF

JAVA FASTJ Wind River Systems ELF/DWARF

TRACE32 as GDB Front-End 29 ©1989-2020 Lauterbach GmbH

Page 30: TRACE32 as GDB Front-End · debugging protocol. In this case, we talk about Stop Mode debugging since the TRACE32 GDB Front-End controls the whole target system and not a single process

XScale

Language Compiler Company Option Comment

C ARMCC ARM Ltd. AIFC ARMCC ARM Ltd. ELF/DWARFC GCCARM GNU Compiler

CollectionCOFF/STABS

C GCCARM GNU Compiler Collection

ELF/DWARF

C GREENHILLS-C Greenhills Software Inc. ELF/DWARFC ICCARM IAR Systems AB ELF/DWARFC HIGH-C Synopsys, Inc ELF/DWARFC TI-C Texas Instruments COFFC GNU-C Wind River Systems COFFC++ ARM-SDT-2.50 ARM Ltd. ELF/DWARFC++ GCCARM GNU Compiler

CollectionCOFF/STABS

C++ GNU GNU Compiler Collection

EXE/STABS

C++ GCCARM GNU Compiler Collection

ELF/DWARF

C++ GREENHILLS-C++ Greenhills Software Inc. ELF/DWARFC++ MSVC Microsoft Corporation EXE/CV5 WindowsCEC++ HIGH-C++ Synopsys, Inc ELF/DWARFC/C++ VX-ARM TASKING ELF/DWARF

TRACE32 as GDB Front-End 30 ©1989-2020 Lauterbach GmbH

Page 31: TRACE32 as GDB Front-End · debugging protocol. In this case, we talk about Stop Mode debugging since the TRACE32 GDB Front-End controls the whole target system and not a single process

Products

Product Information

OrderNo Code Text

LA-8890L FRONTEND-ARM-FL

1 User Floating License ARM Front-EndTRACE32 Front-End connecting to- third-party virtual target/simulators- third-party target server such as GDB- TRACE32 Back-Endsupports ARM, Cortex and XScalefloating license via RLM (Reprise License Manager)Please add the RLM HostID of the license serverto your order (please see our FAQ)

LA-8897L FRONTEND-HEXAGON-FL

1 User Floating License Hexagon Front-EndTRACE32 Front-End connecting to- third-party virtual target/simulators- third-party target server- TRACE32 Back-Endsupports the Hexagon architecturefloating license via RLM (Reprise License Manager)Please add the RLM HostID of the license serverto your order (please see our FAQ)

LA-8893L FRONTEND-TC-FL

1 User Floating License TriCore Front-EndTRACE32 Front-End connecting to- third-party virtual target/simulators- third-party target server such as GDB- TRACE32 Back-End such as XCP Debug Back-Endsupports TriCorefloating license via RLM (Reprise License Manager)Please add the RLM HostID of the license serverto your order (please see our FAQ)

LA-8899L FRONTEND-X86-FL

1 User Floating License x86/x64 Front-EndTRACE32 Front-End connecting to- third-party virtual target/simulators- third-party target server such as GDB- TRACE32 Back-Endsupports the x86/x64 architecturefloating license via RLM (Reprise License Manager)Please add the RLM HostID of the license serverto your order (please see our FAQ)

LA-8904L FRONTEND-XTENSA-FL

1 User Floating License Xtensa Front-EndTRACE32 Front-End connecting to virtual target via MCD interfaceTRACE32 Front-End connecting to TRACE32 GTL Back-Endsupports Xtensafloating license via RLM (Reprise License Manager)Please add the RLM HostID of the license serverto your order (please see our FAQ)

LA-8903L FRONTEND-ARC-FL

1 User Floating License ARC Front-EndTRACE32 Front-End connecting tovirtual prototypes/simulators(Synopsys Virtualizer, nSIM ...) via MCD API or ARCINT APIsupports ARCfloating license via RLM (Reprise License Manager)Please add the RLM HostID of the license serverto your order (please see our FAQ)

TRACE32 as GDB Front-End 31 ©1989-2020 Lauterbach GmbH

Page 32: TRACE32 as GDB Front-End · debugging protocol. In this case, we talk about Stop Mode debugging since the TRACE32 GDB Front-End controls the whole target system and not a single process

LA-8905L FRONTEND-I8051-FL

1 User Floating License 8051 Front-EndTRACE32 Front-End connecting to- third-party virtual target/simulators- third-party target server such as GDB- TRACE32 GTL Debug Back-Endsupports 8051floating license via RLM (Reprise License Manager)Please add the RLM HostID of the license serverto your order (please see our FAQ)

LA-8910L FRONTEND-RISC-V-FL

1 User Floating License RISC-V Front-EndTRACE32 Front-End connecting to- virtual target via MCD interface- third-party target server such as GDBsupports RISC-Vfloating license via RLM (Reprise License Manager)Please add the RLM HostID of the license serverto your order (please see our FAQ)

LA-8892L FRONTEND-PPC-FL

1 User Floating License PPC Front-EndTRACE32 Front-End connecting to- third-party virtual target/simulators- third-party target server such as GDB- TRACE32 Back-Endsupports all PowerPCsfloating license via RLM (Reprise License Manager)Please add the RLM HostID of the license serverto your order (please see our FAQ)

LA-8898L FRONTEND-MIPS-FL

1 User Floating License MIPS Front-EndTRACE32 Front-End connecting to- third-party virtual target/simulators- third-party target server such as GDB (MIPS32 only)- TRACE32 Back-Endsupports the MIPS architecturefloating license via RLM (Reprise License Manager)Please add the RLM HostID of the license serverto your order (please see our FAQ)

LA-8906L FRONTEND-CEVAX-FL

1 User Floating License CEVA-X Front-EndTRACE32 Front-End connecting to- third-party virtual target/simulator- TRACE32 Back-Endsupports CEVA-Xfloating license via RLM (Reprise License Manager)Please add the RLM HostID of the license serverto your order (please see our FAQ)

OrderNo Code Text

TRACE32 as GDB Front-End 32 ©1989-2020 Lauterbach GmbH

Page 33: TRACE32 as GDB Front-End · debugging protocol. In this case, we talk about Stop Mode debugging since the TRACE32 GDB Front-End controls the whole target system and not a single process

LA-8894L FRONTEND-TEAK-FL

1 User Floating License TeakLite Front-EndTRACE32 Front-End connecting to- third-party virtual target/simulators- third-party target server such as GDB- TRACE32 Back-Endsupports OAK, Teak and Teaklitefloating license via RLM (Reprise License Manager)Please add the RLM HostID of the license serverto your order (please see our FAQ)

LA-8889L FRONTEND-V850-FL

1 User Floating License V850/RH850 Front-EndTRACE32 Front-End connecting to- third-party virtual target/simulators- third-party target server such as GDB- TRACE32 Back-Endsupports NEC V850 / Renesas RH850floating license via RLM (Reprise License Manager)Please add the RLM HostID of the license serverto your order (please see our FAQ)

LA-8907L FRONTEND-GTM-FL

1 User Floating License GTM Front-EndTRACE32 Front-End connecting to- third-party virtual target/simulatorsupports GTM (MPC5xxx, RH850, TriCore)floating license via RLM (Reprise License Manager)Please add the RLM HostID of the license serverto your order (please see our FAQ)

LA-8888L FRONTEND-68K-FL

1 User Floating License 68K Front-EndTRACE32 Front-End connecting to- third-party target server such as GDBsupports the 68K/ColdFire architecturefloating license via RLM (Reprise License Manager)Please add the RLM HostID of the license serverto your order (please see our FAQ)

LA-8902L MULTICORE-LICENSE-FL

1 User Floating License MulticoreAllows together with one TRACE32 Front-End license to use up to8 TRACE32 PowerView GUIs of the same processor architectureon the same host machine. Alternatively 2 identical TRACE32 Front-Endlicenses can be used.The up to 8 TRACE32 GUIs are assigned to a license pool. Allrequired TRACE32 Back-End, Trace and Integration licensesare added to the same license pool.

OrderNo Code Text

TRACE32 as GDB Front-End 33 ©1989-2020 Lauterbach GmbH