RealView® Debugger User Guide

Version 4.1


Table of Contents

Preface
About this book
Intended audience
Before you start
Examples
Using this book
Typographical conventions
Further reading
Feedback
Feedback on this product
Feedback on this book
1. RealView Debugger Features
1.1. Overview of RealView Debugger windows and views
1.1.1. Common features of views
1.1.2. Persistence of settings in specific views
1.1.3. Toolbar buttons
1.1.4. Code window
1.1.5. Connect to Target window
1.1.6. Synchronization Control window
1.1.7. Analysis window
1.1.8. Home Page
1.1.9. Disassembly view
1.1.10. Source code view
1.1.11. Break/Tracepoints view
1.1.12. Call Stack view
1.1.13. Classes view
1.1.14. Comms Channel view
1.1.15. Diagnostic Log view
1.1.16. Locals view
1.1.17. Memory view
1.1.18. Output view
1.1.19. Process Control view
1.1.20. Registers view
1.1.21. Resource Viewer
1.1.22. Stack view
1.1.23. Symbols view
1.1.24. Watch view
1.2. Target connection
1.2.1. Debug Interface configuration overview
1.2.2. Debug Configuration overview
1.2.3. Default Debug Configurations provided with RVDS
1.2.4. Files used to describe target connections and configurations
1.3. Image and binary loading
1.3.1. Executable images
1.3.2. Binaries
1.3.3. Multiple images and binaries
1.3.4. RealMonitor connections
1.3.5. OS-aware connections
1.4. TrustZone technology support
1.4.1. Determining the current world
1.4.2. Specifying addresses
1.5. Multiprocessor debugging
1.5.1. Multiple target connections
1.5.2. Multiple Code windows
1.5.3. Processor synchronization
1.5.4. Cross-triggering
1.6. Execution control
1.7. Memory mapping
1.7.1. Specifying a memory map
1.7.2. Viewing the memory map
1.7.3. Memory maps for targets that support TrustZone technology
1.8. Execution context and scope
1.8.1. Displaying the location of the PC in the disassembly view
1.8.2. Displaying the location of the PC in a source file
1.9. Breakpoints in RealView Debugger
1.9.1. Events that determine when a breakpoint is hit
1.9.2. Actions that can be performed when a breakpoint activates
1.9.3. Conditional breakpoint activation
1.10. Examining the target execution environment
1.10.1. Debug views
1.10.2. Other methods of examining the target execution environment
1.11. Altering the target execution environment
1.11.1. Debug views
1.11.2. Other methods of altering the target execution environment
1.12. Command scripts
1.13. Macros
1.14. Log and journal files
1.14.1. Types of log and journal files
1.15. Editing source files
1.16. Searching source files
2. The RealView Debugger Environment
2.1. Starting RealView Debugger from the command line
2.1.1. Syntax of the rvdebug command
2.1.2. Starting multiple instances of RealView Debugger
2.1.3. Examples
2.2. Starting RealView Debugger after installing other components
2.3. Setting user-defined environment variables
2.3.1. Overriding the default home directory
2.3.2. Specifying a shared location
2.3.3. Specifying the location of a project template
2.4. Redefining the RealView Debugger directories
2.4.1. Defining the installation directory
2.4.2. Defining the home directory on Windows
2.4.3. The home directory on Red Hat Linux
2.4.4. The current working directory
2.4.5. Using the examples directories
3. Target Connection
3.1. About target connection
3.1.1. The Connect to Target window
3.1.2. Target Connections
3.1.3. Connections to multiple targets
3.1.4. Connections to trace components
3.1.5. Connections in the Home Page
3.2. About creating a Debug Configuration
3.2.1. Adding a new Debug Configuration
3.2.2. Creating a DSTREAM, RealView ICE, or VSTREAM Debug Configuration
3.2.3. Creating a Model Library Debug Configuration
3.2.4. Creating a Model Process Debug Configuration
3.2.5. Creating an RVISS Debug Configuration
3.2.6. Creating an ISSM Debug Configuration
3.2.7. Creating an RTSM Debug Configuration (RTSM not running)
3.2.8. Creating an RTSM Debug Configuration (RTSM running)
3.2.9. Creating a SoC Designer Debug Configuration (SoC Designer not running)
3.2.10. Creating a SoC Designer Debug Configuration (SoC Designer running)
3.3. Changing the name of a Debug Configuration
3.3.1. Considerations when renaming a Debug Configuration
3.4. Copying an existing Debug Configuration
3.5. Deleting a Debug Configuration
3.6. Customizing a Debug Configuration
3.6.1. Opening the Connection Properties dialog box
3.6.2. Configuring semihosting
3.6.3. Configuring vector catch
3.6.4. Configuring endianness
3.6.5. Configuring top of memory
3.6.6. Enabling RealMonitor
3.6.7. Assigning one or more board/chip definitions
3.6.8. Viewing a board/chip definition
3.6.9. Creating advanced configurations
3.7. Connecting to a target
3.7.1. Making a connection from the Connect to Target window
3.7.2. Making a connection from the Home Page
3.7.3. Connections to RTSMs
3.7.4. Connecting to a Model Library target
3.7.5. Connecting to a Model Process target
3.7.6. Connecting to a SoC Designer target
3.7.7. Effect of connecting to a target on the RealView Debugger GUI
3.7.8. Considerations when connecting to targets
3.8. Showing the trace components in the Connect to Target window
3.9. Viewing information about the target topology
3.10. Setting top of memory for the current debugging session
3.10.1. Setting top_of_memory and stack values
3.11. Viewing connection details
3.11.1. Connection details in the Code window title bar
3.11.2. Connection details in the Output view
3.12. Connecting to a target on startup
3.13. Connecting to a target using different modes
3.13.1. The connect modes
3.13.2. Setting connect mode for the current debugging session
3.13.3. Displaying the connect mode in the Connect to Target window
3.13.4. Setting connect mode permanently
3.13.5. Considerations for DSTREAM or RealView ICE
3.14. Connecting to multiple targets
3.14.1. Consideration when connecting to multiple targets
3.15. Connecting to all targets for a specific Debug Configuration
3.15.1. Considerations when connecting to all targets for a specific Debug Configuration
3.16. Changing the current target connection
3.16.1. What is the current connection?
3.16.2. Cycling through the active connection list
3.16.3. Selecting a connection from the active connection list
3.16.4. Considerations when changing the current connection
3.17. Disconnecting from a target
3.17.1. Disconnecting from any target
3.17.2. Disconnecting from the target shown in the Code window
3.17.3. Disconnect behavior in RealView Debugger
3.17.4. Considerations when disconnecting from targets
3.18. Disconnecting from a target using different modes
3.18.1. The disconnect modes
3.18.2. Setting disconnect mode for the current debugging session
3.18.3. Displaying the disconnect mode in the Connect to Target window
3.18.4. Setting disconnect mode permanently
3.19. Disconnecting from multiple targets
3.19.1. Methods for disconnecting from multiple targets
3.19.2. Considerations when disconnecting from multiple targets
3.19.3. Effect on Code windows when disconnecting
3.20. Disconnecting from all targets for a specific Debug Configuration
3.21. Storing connections when exiting RealView Debugger
3.22. Troubleshooting target connection problems
3.22.1. Failing to make a connection
3.22.2. Problems connecting to targets in a system containing trace components
3.22.3. Error P1001E (Parser): Specified target not in list of available targets
3.22.4. Simulator Debug Configuration error states
3.22.5. DSTREAM or RealView ICE Debug Configuration error states
3.22.6. Problems with configuration files
3.22.7. Kill all other connections error with DSTREAM or RealView ICE
3.22.8. Examining details in the Diagnostic Log view
3.22.9. Other problems
4. Loading Images and binaries
4.1. About loading images and binaries
4.1.1. Source file search path
4.1.2. Module naming conventions
4.2. Loading an executable image
4.2.1. Before you load an image
4.2.2. Loading an executable image with options
4.2.3. Loading an image from the Home Page
4.2.4. Loading an image to a target that supports TrustZone technology
4.2.5. Loading an image to a SoC Designer target
4.2.6. Loading from the Process Control view
4.2.7. Loading an image by dragging and dropping
4.2.8. Considerations when loading an image
4.3. Viewing image details
4.3.1. Viewing image details in the Code window
4.3.2. Viewing image details in the Process Control view
4.4. Loading a binary
4.4.1. Considerations when loading a binary
4.5. Loading multiple images to the same target
4.6. Loading symbols only for an image
4.6.1. Loading the symbols
4.6.2. Refreshing the symbols
4.7. Replacing the currently loaded image
4.8. Loading an executable image on startup
4.8.1. Examples of loading an image on startup
4.8.2. Connection prompt on load failure
4.9. Unloading an image
4.9.1. Saving breakpoints when unloading an image
4.9.2. Considerations when unloading an image
4.10. Deleting the process details for an unloaded image
4.11. Reloading an image
4.11.1. Considerations when reloading images
4.12. Reloading a binary
4.12.1. Considerations when reloading binaries
4.13. Changing the format of the disassembly view
4.14. Interleaving source in the disassembly view
4.15. Opening source files for a loaded image
4.15.1. Opening a source file from any location
4.15.2. Opening a file from the image file list
4.15.3. Locating a source file for an image in the Process Control view
4.16. Saving and closing source files
4.16.1. Closing one or more source files
4.16.2. Saving and closing selected files in a single operation
4.17. Hiding line numbers for opened source files
4.17.1. Turning off line numbering for the current debugging session only
4.17.2. Turning off line numbers permanently
4.18. Adding source file search paths for a loaded image
4.18.1. Adding a source search path
4.18.2. Adding a source mapping
4.19. Autoconfiguring search rules for locating source files
4.19.1. Specifying the source file location
4.19.2. Viewing the source mappings
5. Navigating the Source and Disassembly Views
5.1. About navigating the source and disassembly views
5.2. Viewing the selected location in the opposite code view
5.2.1. Viewing the disassembly corresponding to the selected line of source
5.2.2. Viewing the line of source corresponding to a selected disassembly instruction
5.3. Locating the lowest address in memory of a module
5.4. Locating the line of code using a symbol in the source view
5.5. Locating the address of a label in the disassembly view
5.6. Locating the destination of a branch instruction
5.7. Locating a function
5.7.1. Locating a function using the source code view
5.7.2. Locating a function using the Symbols view
5.7.3. Locating a member function in a C++ class
6. Writing Binaries to Flash
6.1. About writing binaries to Flash
6.1.1. Requirements for writing binaries to Flash
6.1.2. Flash Method files
6.1.3. Flash examples
6.1.4. Basic procedure for programming a binary into Flash
6.2. Writing a binary to Flash
6.2.1. Considerations when writing a binary to Flash
6.3. Writing to specific locations in Flash memory
6.3.1. Considerations when writing to specific locations in Flash
6.4. Viewing information about the Flash memory
6.4.1. Viewing Flash information
6.4.2. Viewing details on selected Flash blocks
6.5. Operations available when writing to Flash
6.5.1. Selecting the Flash blocks to operate on
6.5.2. Erasing selected Flash blocks
6.5.3. Additional operations when writing to Flash
6.5.4. Abandoning changes to Flash blocks
7. Debugging Multiprocessor Applications
7.1. About debugging multiprocessor applications
7.1.1. Working with multiple targets and connections
7.1.2. Debug Interface units and multiple targets
7.1.3. Synchronization and cross-triggering
7.1.4. Synchronized start and stop operations, cross-triggering, and skid
7.1.5. Synchronized stepping, cross-triggering, and skid
7.1.6. Synchronized actions
7.2. Opening multiple Code windows
7.2.1. Opening a new Code window
7.2.2. Properties of the new Code window
7.2.3. What is window attachment?
7.3. Attaching a Code window to a connection
7.4. Unattaching a Code window from a connection
7.5. Using DSTREAM or RealView ICE for multiprocessor debugging
7.6. Synchronizing multiple processors
7.6.1. Synchronization controls
7.6.2. Synchronizing actions
7.6.3. Synchronizing execution operations
7.6.4. Considerations when synchronizing multiple processors
7.7. Setting up software cross-triggering
7.7.1. Cross-triggering controls
7.7.2. Considerations when using software cross-triggering
7.8. Setting up hardware cross-triggering
7.8.1. Setting up the hardware cross-triggering controls
7.8.2. Reviewing the register definitions and CLI commands for the ARM11 MPCore
7.9. Configuring embedded cross-triggering
7.10. Configuring CoreSight embedded cross-triggering
7.11. Sharing resources between multiple targets
7.11.1. Resource sharing and debugger consistency
7.11.2. Saving and restoring your .brd file
7.11.3. Locating the settings for shared memory regions
7.11.4. Defining memory for a symmetric multiprocessor environment
7.11.5. Defining memory for a three processor multimedia development platform
7.11.6. Shared program memory
8. Executing Images
8.1. About image execution
8.1.1. The stepping controls
8.1.2. Interacting with your application
8.1.3. The command queue
8.2. Starting and stopping image execution
8.2.1. Starting execution
8.2.2. Stopping execution
8.2.3. Considerations when running applications on RTSMs
8.3. Running an image to a specific point
8.3.1. Running to the current cursor position
8.3.2. Running to the start of a function using the source view
8.3.3. Running to the start of a function using the Symbols view
8.3.4. Running until the current function returns
8.3.5. Running to an entry in the Call Stack
8.4. Stepping by lines of source code
8.4.1. Controls for stepping by lines of code
8.4.2. Stepping into functions
8.4.3. Stepping over function calls
8.4.4. Stepping a specified number of source lines
8.4.5. Considerations when high-level stepping in the disassembly view
8.5. Stepping by instructions
8.5.1. Controls for stepping by assembly instructions
8.5.2. Stepping into functions
8.5.3. Low-level stepping over function calls
8.5.4. Stepping a specified number of assembly instructions
8.5.5. Considerations when low-level stepping in the source view
8.6. Stepping until a user-specified condition is met
8.7. Resetting your target processor
8.7.1. Considerations when resetting a processor
9. Mapping Target Memory
9.1. About mapping target memory
9.1.1. Uses for memory mapping
9.1.2. Memory mapping with RVISS models
9.1.3. Considerations when using memory maps
9.2. Setting the default access type for unmapped memory regions
9.3. Enabling memory mapping
9.3.1. Disabling memory mapping
9.3.2. Considerations when using memory maps
9.4. Viewing the memory map
9.4.1. Memory maps on targets that support TrustZone technology
9.4.2. Memory map entry
9.4.3. Display colors
9.4.4. How loading an image affects the memory map
9.5. Setting up a temporary memory map
9.6. Setting up a memory map
9.6.1. Assigning board/chip definitions to a Debug Configuration
9.6.2. Views that are affected by assigning BCD files
9.6.3. Considerations when using memory maps
9.7. Creating a temporary memory map entry
9.8. Editing a memory map entry
9.9. Updating the memory map
9.10. Deleting memory map blocks
9.10.1. Deleting all memory map blocks
9.10.2. Deleting a specific memory map block
9.11. Generating linker command files for non-ARM targets
10. Changing the Execution Context
10.1. About changing the execution context
10.1.1. What is scope and context?
10.1.2. Why change scope?
10.1.3. Methods of forcing scope
10.1.4. Code views
10.2. Changing scope to the PC
10.3. Displaying the current execution context
10.4. Resetting the PC to the image entry point
10.5. Setting the PC to the address of an instruction or line of code
10.6. Setting the PC to a function
10.6.1. Setting the PC to a function using the Symbols view
10.6.2. Setting the PC to a function entry point
10.7. Changing scope to the code pointed to by a Call Stack entry
10.7.1. Changing scope to a specific entry in the Call Stack
10.7.2. Moving up and down the Call Stack
11. Setting Breakpoints
11.1. About setting breakpoints
11.1.1. Software and hardware breakpoints
11.1.2. Breakpoint types for OS-aware connections
11.1.3. Unconditional and conditional breakpoints
11.1.4. Breakpoints in different memory map regions
11.1.5. What happens when a breakpoint is activated?
11.1.6. Breakpoint icons and color coding
11.1.7. Qualifying breakpoint line number references with module names
11.1.8. Specifying address ranges
11.1.9. Help with specifying locations and values for hardware breakpoints
11.1.10. Breakpoints and image restarts
11.1.11. Enabling the auto save breakpoints feature
11.2. Setting a simple breakpoint
11.2.1. Setting a breakpoint quickly
11.2.2. Toggling a breakpoint at the current cursor position
11.2.3. Setting a breakpoint with the Simple Break if X dialog box
11.2.4. Effects of setting a breakpoint
11.3. Setting an unconditional breakpoint with specific attributes
11.4. Clearing breakpoints
11.4.1. Clearing a breakpoint quickly
11.4.2. Clearing specific breakpoints
11.4.3. Clearing all breakpoints
11.4.4. Considerations when clearing breakpoints
11.5. Restoring saved breakpoints for a loaded image
11.6. Viewing breakpoint information
11.6.1. Breakpoints in the Break/Tracepoints view
11.6.2. Viewing the breakpoint details
11.7. Disabling a breakpoint
11.7.1. Disabling a breakpoint at the current cursor position
11.7.2. Disabling a specific breakpoint
11.7.3. Considerations when disabling breakpoints
11.8. Enabling a breakpoint
11.8.1. Enabling a breakpoint in the code view
11.8.2. Enabling a specific breakpoint
11.8.3. Considerations when enabling breakpoints
11.9. Editing a breakpoint
11.9.1. Help with specifying locations and values for hardware breakpoints
11.10. Copying a breakpoint
11.11. Finding a breakpoint in the code view
11.12. Viewing the target hardware breakpoint support
11.13. Setting breakpoints by dragging and dropping
11.14. Setting breakpoints on lines of source code
11.14.1. Setting a breakpoint on a single-statement line
11.14.2. Setting breakpoints on a multi-statement line
11.15. Setting breakpoints on instructions
11.15.1. Setting a breakpoint on an instruction
11.15.2. Setting a breakpoint at the destination of a branch instruction
11.16. Setting breakpoints on functions
11.16.1. Setting a breakpoint at the start of a function
11.16.2. Setting a breakpoint at the entry point to a function
11.16.3. Setting a breakpoint in an inlined function
11.16.4. Setting a breakpoint in a C++ template
11.16.5. Setting a breakpoint at the start of a member function in a C++ class
11.16.6. Setting a breakpoint at the location of a Call Stack entry
11.16.7. Setting breakpoints on functions from the Function/Label list
11.17. Setting breakpoints for memory accesses
11.17.1. Breakpoint types for memory accesses
11.17.2. Breaking on a named global variable in your source code
11.17.3. Breaking on a variable in the Locals view
11.17.4. Breaking on a variable in the Watch view
11.17.5. Breaking on a Stack address
11.17.6. Breaking on a single memory cell in the Memory view
11.17.7. Breaking on a range of memory cells in the Memory view
11.17.8. Breaking on accesses at multiple locations
11.17.9. Considerations when setting memory access breakpoints
11.18. Setting breakpoints for location-specific data values
11.18.1. Breakpoint access types for accesses to location-specific data values
11.18.2. Breaking on the value of a global variable
11.18.3. Breaking on the value of a watched variable
11.18.4. Breaking on a data value match within a range of addresses
11.18.5. Breaking in a function or range that also depends on a data value
11.19. Setting breakpoints for location-independent data values
11.19.1. Breakpoint access types for data only breakpoints
11.19.2. Setting a data only breakpoint
11.19.3. Breaking on a data value match with a modifier
11.19.4. Considerations when setting data only breakpoints
11.20. Forcing the size of a software breakpoint
11.21. Chaining hardware breakpoints
11.21.1. CLI command qualifiers used for chaining breakpoints
11.21.2. Converting existing individual hardware breakpoints to chained breakpoints
11.21.3. Considerations when chaining hardware breakpoints
11.22. Specifying processor exceptions (global breakpoints)
11.22.1. Specifying a processor exception that runs a macro when triggered
11.22.2. Considerations when setting SVC vector catch (hardware targets)
11.23. Setting breakpoints on custom memory mapped registers
11.23.1. Breaking on a custom memory mapped register
11.23.2. Breaking on a data value of a custom memory mapped register
11.24. Setting breakpoints from the breakpoint history list
11.25. Creating new breakpoint favorites
11.26. Setting breakpoints from your Favorites List
12. Controlling the Behavior of Breakpoints
12.1. About controlling the behavior of breakpoints
12.1.1. Features for controlling breakpoint behavior
12.1.2. Considerations when using software conditions
12.1.3. Conditional hardware breakpoints
12.2. Updating windows and views when a breakpoint activates
12.2.1. Updating specific windows and views
12.2.2. Updating all windows and views
12.3. Displaying user-defined messages when a breakpoint activates
12.4. Setting the execution behavior for a breakpoint
12.5. Setting breakpoints that test for hardware input triggers
12.5.1. Setting a hardware input trigger test
12.5.2. Resetting a hardware input trigger test
12.5.3. Hardware Support settings for RVISS
12.5.4. Hardware Support settings for an ARM architecture-based target
12.6. Setting a breakpoint that activates after a number of passes
12.6.1. Procedure when using the generic breakpoint dialog box
12.6.2. Procedure when using the Simple Break if X, N times dialog box
12.6.3. Combining hardware and software pass counts
12.7. Resetting breakpoint pass counters
12.8. Setting a breakpoint that depends on the result of an expression
12.8.1. Procedure when using the generic breakpoint dialog box
12.8.2. Procedure when using the Simple Break if X, when Y is True dialog box
12.9. Setting a breakpoint that depends on the result of a macro
12.9.1. Attaching a macro as a command qualifier
12.9.2. Attaching a macro as a command argument
12.9.3. Attaching a macro to a global breakpoint
12.9.4. Considerations when using macros with breakpoints
12.10. Setting a breakpoint on a specific instance of a C++ class
12.10.1. Example of setting a breakpoint on a C++ class
12.11. Example of breakpoint behavior
12.11.1. Summary of breakpoint behavior
12.11.2. Using a macro as an argument to a break command
13. Examining the Target Execution Environment
13.1. About examining the target execution environment
13.1.1. Functions and variables
13.1.2. C++ classes
13.1.3. Registers
13.1.4. Memory
13.1.5. The Stack
13.1.6. The Call Stack and Locals
13.1.7. Watch
13.1.8. Saving a memory area to a file
13.2. Finding a function in your code
13.2.1. Finding public and static functions
13.2.2. Finding functions in the libraries used by an image
13.2.3. Viewing the functions of a module
13.2.4. Performing operations on functions from the Symbols view
13.3. Displaying function information from the Symbols view
13.4. Displaying the list of variables in an image
13.4.1. Displaying variables
13.4.2. Displaying variables in the libraries used by an image
13.4.3. Viewing the variables for a module
13.4.4. Performing operations on variables from the Symbols view
13.5. Viewing variables for the current context
13.5.1. Displaying local variables for the current context
13.5.2. Displaying static variables for the current context
13.5.3. Displaying C++ this pointers for the current context
13.5.4. Performing timed updates for RealMonitor and OS-aware targets
13.5.5. Formatting the display of values for individual variables
13.5.6. Formatting the display of values for all variables
13.5.7. Toggling automatic updates of the Locals view
13.5.8. Manually updating values in the Locals view
13.5.9. Copying and pasting variables from the Locals view to the Watch view
13.6. Displaying information for a variable
13.6.1. Printing the value of a variable
13.6.2. Displaying type information for a variable
13.7. Viewing C++ classes
13.7.1. Displaying the properties of a class or a component of a class
13.7.2. Identifying the components of a class in the Classes view
13.7.3. Finding a class definition in your source code
13.7.4. Operations you can perform on member functions
13.8. Viewing registers
13.8.1. Examining registers in the Registers view
13.8.2. Displaying the properties of a register
13.8.3. Creating a customized register view for a connection
13.8.4. Formatting selected registers in the Registers view
13.8.5. Formatting all registers in the Registers view
13.8.6. Copying all registers in the current register view
13.8.7. Copying selected registers in the current register view
13.8.8. Updating the register display
13.8.9. Viewing different registers
13.8.10. Viewing registers for multiple targets
13.8.11. Understanding the register view
13.8.12. Viewing debugger internals
13.9. Viewing semihosting controls for DSTREAM or RealView ICE JTAG connections
13.9.1. The semihosting controls for DSTREAM or RealView ICE connections
13.10. Viewing semihosting controls for RVISS targets
13.10.1. The semihosting controls for RVISS targets
13.11. Viewing memory contents
13.11.1. Toggling the display of the Memory view toolbar
13.11.2. Examining memory in the Memory view
13.11.3. Viewing memory at a specific address
13.11.4. Viewing the memory at a register value
13.11.5. Viewing memory associated with a variable in source code
13.11.6. Viewing memory at a variable value by copying and pasting
13.11.7. Viewing memory at the destination of a branch instruction
13.11.8. Viewing memory at a variable in the Locals view
13.11.9. Viewing memory at a watch variable
13.11.10. Viewing memory at a previous start address
13.11.11. Viewing memory for multiple processors
13.11.12. Considerations when performing the view memory operations
13.12. MMU page tables views
13.12.1. Viewing the MMU page tables
13.12.2. Switching between the Level 1 and Level 2 descriptors
13.12.3. Walking through an MMU page table
13.13. Managing the display of memory in the Memory view
13.13.1. Changing the display size for viewing memory contents
13.13.2. Formatting the display of memory contents
13.13.3. Displaying the ASCII view in separate columns
13.13.4. Changing the number of columns displayed
13.13.5. Coloring memory contents
13.13.6. Toggling automatic updates of the Memory view
13.13.7. Manually updating values in the Memory view
13.13.8. Performing timed updates for RealMonitor and OS-aware targets
13.13.9. Adding memory views for different locations
13.13.10. Deleting a memory view
13.13.11. Moving a memory view to another Memory view
13.13.12. Display colors in the Memory view
13.14. Viewing the Stack
13.14.1. Before you start
13.14.2. Examining the Stack
13.14.3. Viewing the Stack at a specified address
13.14.4. Viewing the Stack at an address contained in a selected Stack entry
13.14.5. Viewing the symbol at a Stack address
13.14.6. Viewing the symbol at an address in a selected Stack entry
13.14.7. Viewing the Stack by re-evaluating a C/C++ expression
13.14.8. Copying the contents of the Stack
13.14.9. Formatting the Stack contents
13.14.10. Changing the data size for Stack contents
13.15. Viewing the Call Stack
13.15.1. Examining the Call Stack
13.15.2. Copying a Call Stack entry
13.15.3. Toggling automatic updates of the Call Stack view
13.15.4. Manually updating the Call Stack view
13.15.5. Displaying the properties of a Call Stack entry
13.15.6. Operations you can perform on the Call Stack
13.16. Setting watches
13.16.1. Setting a watch variable
13.16.2. Setting a watch expression
13.16.3. Setting a watch by copying and pasting
13.16.4. Setting a watch by dragging and dropping
13.16.5. Setting a watch from the Symbols view
13.16.6. Editing the name of an existing watch
13.16.7. Deleting a watch
13.17. Viewing watches
13.17.1. Examining watches in the Watch view
13.17.2. Toggling automatic updates of the Watch view
13.17.3. Manually updating the Watch view
13.17.4. Performing timed updates for RealMonitor and OS-aware targets
13.17.5. Formatting the display of values for individual watches
13.17.6. Formatting the display of values for all watches
13.17.7. Displaying the properties of a watch
13.18. Viewing statistics for RVISS targets
13.18.1. Statistics for uncached von Neumann processors
13.18.2. Statistics for uncached Harvard processors
13.18.3. RVISS map file related statistics
13.18.4. Accessing additional processor-specific statistics
13.18.5. Viewing the RVISS cycle count statistics
13.18.6. Accessing the individual cycle count statistics values
13.18.7. Viewing standard cycle count statistics with the STATS command
13.18.8. Example of how to accumulate RVISS statistics
13.19. Viewing the RVISS map related statistics in RealView Debugger
13.19.1. Viewing the map related statistics on the Mapfile tab
13.19.2. Viewing the statistics with CLI commands
13.20. Saving memory contents to a file
13.20.1. Considerations when saving memory contents to a file
13.21. Comparing target memory with the contents of a file
13.22. Displaying information in a user-defined window
13.22.1. Opening a user-defined window
13.22.2. Closing a user-defined window
13.22.3. Clearing a user-defined window
13.23. Saving information to a user-defined file
13.23.1. Opening a user-defined file
13.23.2. Closing a user-defined file
13.24. Displaying a list of open user-defined windows and files
14. Altering the Target Execution Environment
14.1. About altering the target execution environment
14.1.1. Basic steps required for altering the target execution environment
14.2. Changing the value of a register
14.2.1. Changing the value of a register
14.2.2. Setting registers with the Interactive Register Setting dialog box
14.2.3. Copying and pasting a selected register value
14.2.4. Changing values for the CPSR and SPSR registers
14.2.5. Changing values for the CP15 Control register
14.2.6. Changing debugger internals
14.3. Changing memory contents
14.3.1. Changing the value in a memory location
14.3.2. Setting memory with the Interactive Memory Settings dialog box
14.3.3. Filling memory with a pattern
14.4. Changing the data width on memory accesses
14.5. Loading the contents of a file into memory
14.6. Changing the stack pointer
14.7. Changing the value of a watch
14.8. Communicating with a target over DCC
14.8.1. Sending information to the target
14.8.2. Receiving information from the target
14.8.3. Saving input to a log file
14.8.4. Changing the format of data displayed in the Data log pane
14.8.5. Showing and hiding data sent to the target
14.8.6. Clearing the Data log pane
15. Debugging with Command Scripts
15.1. About debugging with command scripts
15.1.1. Logging and journaling
15.1.2. Command scripts
15.1.3. Macros
15.2. Changing output buffering behavior
15.3. Creating a log file for use as a command script
15.4. Creating log and journal files at start-up
15.5. Closing log and journal files
15.6. Using macros in command scripts
15.7. Running command scripts
15.7.1. Running scripts using the Scripts toolbar
15.7.2. Running scripts using the Include Commands from File option
15.7.3. Running scripts when starting RealView Debugger
15.7.4. Referencing scripts in a Debug Configuration or BCD file
15.7.5. Referencing scripts from other command scripts
15.7.6. Considerations when running command scripts
15.8. Creating a script that writes information to a user-defined window
15.8.1. CLI commands that support user-defined window IDs
15.9. Creating a script that accesses a user-defined file
15.9.1. CLI commands that support user-defined file IDs
15.9.2. Predefined macros that support user-defined file IDs
16. Using Macros for Debugging
16.1. About using macros for debugging
16.1.1. What is a macro?
16.1.2. Properties of macros
16.2. Creating a macro
16.2.1. Creating a macro with the RealView Debugger GUI
16.2.2. Creating a macro in a text file directly
16.2.3. Using CLI commands in macros
16.2.4. Macro return values
16.2.5. Considerations when creating macros
16.3. Loading user-defined macros
16.3.1. Loading a user-defined macro using the Scripts toolbar
16.3.2. Loading a user-defined macro using the Include Commands from File option
16.3.3. Reloading a user-defined macro
16.3.4. Loading macros on connection
16.4. Running a macro
16.4.1. Running a macro directly at the RealView Debugger command line
16.4.2. Running a macro that returns a value
16.4.3. Running a macro that has the same name as a CLI command
16.4.4. Running a macro that has the same name as a target function
16.5. Editing a macro
16.5.1. Editing the example tutorial() macro
16.6. Copying a macro
16.7. Viewing a macro
16.8. Deleting a macro
16.9. Using macros in combination with other commands
16.9.1. Using an alias to run a macro
16.9.2. Redirecting macro output to a user-defined window or file
16.9.3. Attaching a macro to the GO command
16.9.4. Using a macro when stepping
16.9.5. Attaching a macro to a global breakpoint
16.9.6. Attaching a macro to a breakpoint
16.9.7. Limitations of using macros with other entities
16.10. Stopping execution of a macro
17. Configuring Workspace Settings
17.1. About workspace settings
17.2. Initializing the workspace
17.2.1. Examples of workspace start-up options
17.3. Opening workspaces
17.3.1. Opening a workspace
17.3.2. Opening a workspace from the Recent Workspaces list
17.3.3. Using the same workspace on startup
17.3.4. Considerations when opening workspaces
17.4. Closing workspaces
17.4.1. Considerations when closing workspaces
17.5. Creating an empty workspace
17.6. Saving workspaces
17.6.1. Saving the current workspace settings
17.6.2. Saving the current workspace settings to a new file
17.6.3. Saving workspace settings on exit
17.7. Viewing workspace settings
17.7.1. Viewing the current workspace settings
17.7.2. Viewing the global configuration settings
17.7.3. Workspace file references
17.7.4. List of Entries pane
17.7.5. Settings Values pane
17.8. Configuring workspace settings
17.8.1. Restoring the factory settings
17.8.2. Changing settings
17.8.3. Resetting entries
17.8.4. Considerations when configuring workspace settings
A. Workspace Settings Reference
A.1. DEBUGGER
A.1.1. Command
A.1.2. Disassembler
A.1.3. Memory_maps
A.1.4. Board_file
A.2. CODE
A.2.1. Asm_type
A.3. ALL
A.3.1. Text
A.3.2. Search
A.3.3. Edit
A.4. CONNECTION
A.5. WINDOW
B. Configuration Files Reference
B.1. Overview
B.2. Files in the default settings directory
B.3. Files in the home directory
B.3.1. Backup files
C. Moving from AXD to RealView Debugger
C.1. RealView Debugger configuration
C.1.1. Where do I find Debugger Internal variables?
C.1.2. How do I set top_of_memory?
C.1.3. How do I configure vector_catch?
C.1.4. How do I configure semihosting?
C.2. RealView Debugger operations
C.2.1. Viewing Coprocessor variables
C.2.2. How do I load symbols for an image?
C.2.3. RealView ARMulator ISS Benchmarking
C.2.4. Debug illusion issues
C.3. Comparison of RealView Debugger and AXD commands
C.4. Converting legacy AXD scripts to RealView Debugger format
C.4.1. axd2rvd command syntax
D. Moving from armsd to RealView Debugger
D.1. RealView Debugger configuration
D.1.1. Where do I find Debugger Internal variables?
D.2. Comparison of RealView Debugger and armsd commands
D.3. Converting legacy armsd scripts to RealView Debugger format
D.3.1. armsd2rvd command syntax
E. RealView Debugger on Red Hat Linux
E.1. About this Appendix
E.2. Getting more information
E.2.1. Online resources
E.2.2. Feedback on RealView Debugger
E.3. Changes to target configuration details
E.3.1. Default configuration files
E.3.2. Target configuration entries
E.4. Changes to GUI and general user information
E.4.1. Column resizing
E.4.2. Saving favorites

List of Figures

1.1. Code window (default layout)
1.2. Status bar
1.3. Connect to Target window (Target grouping)
1.4. Connect to Target window (Configuration grouping)
1.5. Synchronization Control window
1.6. Analysis window
1.7. Home Page
1.8. Break/Tracepoints view
1.9. Call Stack view
1.10. Classes view
1.11. Comms Channel view
1.12. Diagnostic Log view
1.13. Locals view
1.14. Memory view
1.15. Output view
1.16. Process Control view
1.17. Registers view
1.18. Resource Viewer
1.19. Stack view
1.20. Symbols view
1.21. Watch view
1.22. Location of PC in disassembly view
1.23. Location of the PC in a source file
1.24. Scripts toolbar
1.25. Search toolbar
1.26. Find in Files dialog box
2.1. Prompt dialog box to update configuration files
2.2. Prompt dialog box to rebuild the rvdebug.brd file
3.1. Example Connect to Target window
3.2. Example Connect to Target window (Target group)
3.3. Example Connect to Target window (Configuration group)
3.4. Trace warning dialog box
3.5. Model Configuration Utility dialog box (ISSM)
3.6. Model Configuration Utility dialog box (ISSM)
3.7. Model Configuration Utility dialog box (RTSM)
3.8. Connection Properties dialog box
3.9. Connection Properties window
3.10. Debug interfaces in the Connect to Target window
3.11. Targets in a Debug Configuration
3.12. Home Page
3.13. Real-Time System Model CLCD window
3.14. SoC Designer model connection in the Connect to Target window
3.15. Targets on a CoreSight development platform
3.16. Topology dialog box
3.17. Top of Memory in Debug tab of Registers view
3.18. Connection information in the Code window title bar
3.19. Active connection list
3.20. Failing to make a connection
4.1. Load Image dialog box
4.2. Home Page
4.3. Code window with image loaded
4.4. Image details in the Process Control view
4.5. Load Binary dialog box
4.6. Multiple images in the Process Control view
4.7. Image Load Failure dialog box
4.8. Unload Image dialog box
4.9. Unloaded image
4.10. Deleted image
4.11. Disassembly Mode selection box
4.12. Settings Window
4.13. The line number workspace setting
4.14. Source Search Paths dialog box
4.15. Source search path list
4.16. New Mapping dialog box
4.17. Source Mapping tab
4.18. Source File Location dialog box
4.19. Source Mapping tab
5.1. Source code and disassembly views
5.2. Symbols view
5.3. Modules in the dhrystone.axf image
5.4. Locating a module
5.5. Located line of source
5.6. Disassembly view showing branch instructions
5.7. Navigated to branch destination
5.8. Call to Proc_8() function
5.9. Proc_8() function located in source view
5.10. Symbols view
5.11. Functions in the dhrystone.axf image
5.12. Navigate to a function
5.13. Classes view
6.1. Flash Memory Control dialog box
6.2. Flash information
6.3. Flash Memory Control dialog box with multiple blocks selected
6.4. Flash block details
7.1. Active connections list showing attached connection
7.2. The Synchronization Controls
7.3. Synchronization Control window
7.4. Synchronization Control window showing synchronized actions
7.5. Execution controls in the Synchronization Control window
7.6. Synchronization Control window showing synchronized execution operations
7.7. Synchronization Control window showing cross-triggering controls
7.8. Synchronization Control window
7.9. Cross Triggering tab in the Synchronization Control window
7.10. Cross-triggering controls
7.11. Synchronization Control window
7.12. Hardware cross-triggering controls
7.13. Hardware cross-trigger controls enabled
7.14. Connection Properties window
7.15. ECT tab
7.16. CoreSight CTI registers in the Registers view
7.17. Defining shared memory regions
7.18. Memory block attributes
7.19. Example of a shared memory configuration
7.20. Editing the memory block in the CP Board/Chip definition file
8.1. Real-Time System Model CLCD window
8.2. Real-Time System Model CLCD window with graphical output
8.3. Located line in the source code
8.4. Symbols view
8.5. List of functions
8.6. Example Call Stack view for dhrystone
9.1. Disabled memory map
9.2. Default memory map
9.3. Example of a memory map
9.4. Memory map for a target that supports TrustZone technology
9.5. Colors in the memory map
9.6. Memory map with an image loaded
9.7. Default memory map
9.8. Create Map Entry dialog box
9.9. Example of a memory map
9.10. Integrator/CP and ARM966E-S memory map
9.11. CP and CM966ES tabs in the Registers view
9.12. Edit Map Entry dialog box
9.13. Default memory map
10.1. Code and disassembly tabs in the Code window
10.2. Symbols view
10.3. Functions in the dhrystone.axf image
10.4. Set PC to a function
10.5. Stopped at breakpoint in Proc_8() function
10.6. Call Stack view
10.7. Scoped to a Call Stack entry
11.1. Breakpoint showing downward pointing arrows
11.2. Breakpoint icon in the code view
11.3. Simple Break if X dialog box
11.4. Create Breakpoint dialog box
11.5. Breakpoint in the Break/Tracepoints view
11.6. Breakpoint in the Break/Tracepoints view
11.7. Breakpoints in the Break/Tracepoints view
11.8. Breakpoint in the Break/Tracepoints view
11.9. Breakpoint entry expanded
11.10. Full breakpoint details
11.11. Breakpoint in the Break/Tracepoints view
11.12. Edit Breakpoint dialog box
11.13. Breakpoint in the Break/Tracepoints view
11.14. Edit Breakpoint dialog box
11.15. Breakpoint in the Break/Tracepoints view
11.16. Locating a breakpoint
11.17. Example hardware break characteristics
11.18. Break/tracepoint view
11.19. Source code view
11.20. Breakpoint type selection dialog box
11.21. Setting an unconditional breakpoint on a line
11.22. Multiple breakpoints on a multi-statement line
11.23. Setting an unconditional breakpoint on an instruction
11.24. Breakpoint entry showing multiple locations
11.25. Breakpoint entry showing multiple C++ template instantiations
11.26. Classes view
11.27. Breakpoint type selection dialog box
11.28. Function Breakpoint Selector dialog box
11.29. Example Stack view
11.30. Example Memory view
11.31. Example Memory view showing selected locations
11.32. Create Breakpoint dialog box showing selected address range
11.33. HW break if X, then if Y dialog box
11.34. Chained breakpoints
11.35. HW Break if in Range dialog box
11.36. HW While in func/range, Break if X dialog box
11.37. Chained breakpoint
11.38. HW Break on Data Value match dialog box
11.39. Processor Exceptions list selection dialog box
11.40. Simple Break if X dialog box
11.41. Register List Selection dialog box
11.42. Breakpoint history list dialog box
11.43. Favorites/Chooser Editor dialog box
11.44. New/Edit Favorite dialog box
11.45. Favorites/Chooser Editor dialog box
12.1. Breakpoint behavior controls
12.2. Add Action dialog box
12.3. The breakpoint action list
12.4. Breakpoint with an action assigned
12.5. Breakpoint behavior controls
12.6. Add Action dialog box
12.7. The breakpoint action list
12.8. Breakpoint behavior controls
12.9. Breakpoint behavior controls
12.10. Breakpoint behavior controls
12.11. Add Condition dialog box
12.12. Breakpoint with a condition assigned
12.13. Simple Break if X, N times dialog box
12.14. Breakpoint behavior controls
12.15. Add Condition dialog box
12.16. Simple Break if X, when Y is True dialog box
12.17. Execution stopped on an instance of a C++ object
13.1. Symbols view
13.2. List of functions
13.3. List of modules
13.4. Symbols view
13.5. List of variables
13.6. List of modules
13.7. Locals tab in the Locals view
13.8. Locals tab in the Locals view
13.9. Statics tab in the Locals view
13.10. This tab in the Locals view
13.11. Timed Update Period dialog box
13.12. Symbols view
13.13. List of variables
13.14. Classes view
13.15. Components of class entries in the Classes view
13.16. Find In Files dialog box
13.17. Registers view
13.18. Registers view
13.19. Registers changed since the last update
13.20. Registers changed at the previous update
13.21. Register properties dialog box
13.22. Customized register view
13.23. Registers for an Integrator/CP and ARM966E-S debug target
13.24. Viewing registers
13.25. Viewing internal variables (DSTREAM or RealView ICE)
13.26. Specifying semihosting (DSTREAM or RealView ICE)
13.27. Viewing Semihost tab (RVISS)
13.28. Memory view toolbar
13.29. Memory view
13.30. Memory view showing address contents
13.31. Memory view at an address in a register
13.32. Memory view at a value in a variable
13.33. ARMv6 and ARMv7 MMU table (Level 1 descriptors)
13.34. Level 1 descriptors dialog box
13.35. Size of fields list in Memory view
13.36. Format of fields list in the Memory view
13.37. Number of columns list in Memory view
13.38. Timed Update Period dialog box
13.39. Memory view showing address contents
13.40. Memory view with multiple memory views
13.41. Viewing the stack
13.42. Start address dialog box
13.43. Expression Pointer in the Stack view
13.44. Symbol at a Stack address
13.45. Symbol at address in a selected Stack entry
13.46. Call Stack view
13.47. Multistatement details in the Call Stack view
13.48. Multistatement details in the Call Stack view
13.49. Properties of a Call Stack entry
13.50. Watch expression dialog box
13.51. Watch view with watches
13.52. Timed Update Period dialog box
13.53. Watch properties
13.54. CycleCount tab for an uncached von Neumann processor
13.55. CycleCount tab for an uncached Harvard processor
13.56. RVISS map related statistics in the Mapfile tab
13.57. Upload/Download file from/to Memory dialog box
13.58. User-defined window
14.1. Registers view
14.2. In-place editing of a register
14.3. Interactive Register Setting dialog box
14.4. Register set in Interactive Register Setting dialog box
14.5. CPSR register view
14.6. PSR dialog box
14.7. CPSR register for the ARM1136JF-S
14.8. PSR dialog box for the ARM1136JF-S
14.9. CPSR register for the Cortex-A8
14.10. PSR dialog box for the Cortex-A8
14.11. ARM1136JF-S CP15 Control register in Registers view
14.12. CP15 Control dialog box
14.13. Memory view showing address contents
14.14. Memory view showing changed value
14.15. Example memory display
14.16. Memory updated
14.17. Memory updated
14.18. Start Address field in Memory view
14.19. Interactive Memory Setting dialog box
14.20. Memory set in Interactive Memory Setting dialog box
14.21. Fill Memory dialog box
14.22. Upload/Download file from/to Memory dialog box
14.23. Registers view
14.24. In-place editing of the SP register
14.25. Stack view for new SP register address
14.26. Comms Channel view
14.27. Memory view
14.28. Data defined for indata in image
14.29. Data sent to indata location
14.30. Comms Channel view
14.31. Data received in Comms Channel view
15.1. Status line indicating an open log file
15.2. Status line indicating open log and journal files
15.3. Close log and journal files selection box
15.4. Script file added to Scripts toolbar
16.1. Creating a macro
16.2. Script file added to Scripts toolbar
17.1. Close Open Objects selection dialog box
17.2. Workspace Options window
17.3. Options window
17.4. Example Workspace Options
E.1. Column resizing in the Watch view
E.2. Column resizing prompt box

Proprietary Notice

Words and logos marked with ® or ™ are registered trademarks or trademarks of ARM in the EU and other countries, except as otherwise stated below in this proprietary notice. Other brands and names mentioned herein may be the trademarks of their respective owners.

Neither the whole nor any part of the information contained in, or the product described in, this document may be adapted or reproduced in any material form except with the prior written permission of the copyright holder.

The product described in this document is subject to continuous developments and improvements. All particulars of the product and its use contained in this document are given by ARM in good faith. However, all warranties implied or expressed, including but not limited to implied warranties of merchantability, or fitness for purpose, are excluded.

This document is intended only to assist the reader in the use of the product. ARM shall not be liable for any loss or damage arising from the use of any information in this document, or any error or omission in such information, or any incorrect use of the product.

Where the term ARM is used it means “ARM or any of its subsidiaries as appropriate”.

Confidentiality Status

This document is Non-Confidential. The right to use, copy and disclose this document may be subject to license restrictions in accordance with the terms of the agreement entered into by ARM and the party that ARM delivered this document to.

Product Status

The information in this document is final, that is for a developed product.

Revision History
Revision AApril 2002Release v1.5
Revision BSeptember 2002Release v1.6
Revision CFebruary 2003Release v1.6.1
Revision DSeptember 2003Release v1.6.1 for RealView Developer Suite v2.0
Revision EJanuary 2004Release v1.7 for RealView Developer Suite v2.1
Revision FDecember 2004Release v1.8 for RealView Developer Suite v2.2
Revision GMay 2005Release v1.8 SP1 for RealView Developer Suite v2.2 SP1
Revision HMarch 2006Release v3.0 for RealView Development Suite v3.0
Revision IMarch 2007Release v3.1 for RealView Development Suite v3.1
Revision JSeptember 2008Release 4.0 for RealView Development Suite v4.0
Revision K27 March 2009Release v4.0 SP1 for RealView Development Suite v4.0
Revision L28 May 2010Release 4.1 for RealView Development Suite v4.1
Revision M30 September 2010Release 4.1 SP1 for RealView Development Suite v4.1 SP1
Revision N31 May 2011Release 4.1 SP2 for RealView Development Suite v4.1 SP2
Copyright © 2002-2011 ARM. All rights reserved.ARM DUI 0153N
Non-ConfidentialID052111