RealView ® Debugger UserGuide

Version 3.1

Table of Contents

About this book
Intended audience
Before you start
Using this book
Typographical conventions
Further reading
Feedback on RealView Debugger
Feedback on this book
1. RealView Debugger Features
1.1. Overview of RealView Debugger windows andpanes
1.1.1. Common features of panes
1.1.2. Persistence of settings in specific panes
1.1.3. Toolbar buttons
1.1.4. Code window
1.1.5. Connect to Target window
1.1.6. Synchronization Controlwindow
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 pane
1.1.12. Call Stack pane
1.1.13. Classes pane
1.1.14. Locals pane
1.1.15. Memory pane
1.1.16. Output pane
1.1.17. Process Control pane
1.1.18. Registers pane
1.1.19. Resource Viewer pane
1.1.20. Stack pane
1.1.21. Symbols pane
1.1.22. Watch pane
1.2. Target connection
1.2.1. Debug Interface configuration overview
1.2.2. Debug Configurationoverview
1.2.3. Files used to describe target connectionsand 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. OS-aware connections
1.4. TrustZone support
1.4.1. Determining the current TrustZone mode
1.4.2. Specifying addresses
1.5. DSP support
1.5.1. Overview of DSP support
1.5.2. Considerations for DSP support
1.5.3. Licensing and operating restrictions
1.5.4. DSP debugging resources
1.6. Multiprocessor debugging
1.6.1. Multiple target connections
1.6.2. Multiple Code windows
1.6.3. Processor synchronization
1.6.4. Cross-triggering
1.7. Memory mapping
1.7.1. See also
1.8. Execution control
1.8.1. See also
1.9. Execution context and scope
1.9.1. Displaying the location of the PC in the disassemblyview
1.9.2. Displaying the location of the PC in a source file
1.9.3. See also
1.10. Breakpoints in RealView Debugger
1.10.1. Events that determine when a breakpointis hit
1.10.2. Actions that can be performed whena breakpoint activates
1.10.3. Conditional breakpoint activation
1.11. Examining the target execution environment
1.11.1. See also
1.12. Altering the target execution environment
1.12.1. See also
1.13. Command scripts
1.13.1. See also
1.14. Macros
1.14.1. See also
1.15. Log and journal files
1.15.1. Types of log and journal files
1.16. Editing source files
1.16.1. See also
1.17. Searching source files
2. The RealView Debugger Environment
2.1. Starting RealView Debugger from the commandline
2.1.1. Syntax of the rvdebug command
2.1.2. Starting multiple instances of RealView Debugger
2.1.3. Examples
2.1.4. See also
2.2. Starting RealView Debugger after installingother components
2.2.1. Procedure
2.3. Setting user-definedenvironment 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 directoryon 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 CoreSight components
3.1.5. Connections to DSP targets
3.1.6. Connections in the Home Page
3.2. Creating a Debug Configuration
3.2.1. Adding a new Debug Configuration
3.2.2. Creating a SoC Designer Debug Configuration(SoC Designer not running)
3.2.3. Creating a SoC Designer Debug Configuration(SoC Designer running)
3.2.4. Creating an RTSM Debug Configuration
3.3. Changing the name of a Debug Configuration
3.3.1. Procedure
3.4. Copying an existing Debug Configuration
3.4.1. Procedure
3.5. Deleting a Debug Configuration
3.5.1. Procedure
3.5.2. See also
3.6. Connecting to a target
3.6.1. Before you start
3.6.2. Making a connection from the Connectto Target window
3.6.3. Making a connection from the HomePage
3.6.4. Connecting to a RealViewSoC Designer target
3.6.5. Connecting to an RTSMtarget
3.6.6. Effect of connecting to a target on the RealView Debugger GUI
3.6.7. Considerations when connecting totargets
3.7. Viewing information about the CoreSighttopology
3.7.1. Procedure
3.8. Setting top of memory for the currentdebugging session
3.8.1. Procedure
3.9. Viewing connection details
3.9.1. Connection details in the Code windowtitle bar
3.9.2. Connection details in the Output pane
3.10. Connecting to a target on startup
3.10.1. Procedure
3.10.2. See also
3.11. Connecting to a target using differentmodes
3.11.1. The connect modes
3.11.2. Setting connect mode for the currentdebugging session
3.11.3. Displaying the connect mode in theConnect to Target window
3.11.4. Setting connect mode permanently
3.11.5. Considerations for RealView ICE andARM Ltd. Direct Connection
3.12. Connecting to multiple targets
3.12.1. Before you start
3.12.2. Procedure
3.12.3. Consideration when connecting to multiple targets
3.13. Connecting to all targets for a specificDebug Configuration
3.13.1. Procedure
3.14. Changing the current target connection
3.14.1. What is the current connection?
3.14.2. Cycling through the active connectionlist
3.14.3. Selecting a connectionfrom the active connection list
3.14.4. Considerations when changing the current connection
3.15. Disconnecting from a target
3.15.1. Disconnecting from any target
3.15.2. Disconnecting from the target shownin the Code window
3.15.3. Disconnect behavior in RealView Debugger
3.15.4. Considerations when disconnectingfrom targets
3.16. Disconnecting from a target usingdifferent modes
3.16.1. The disconnect modes
3.16.2. Setting disconnect mode for the currentdebugging session
3.16.3. Displaying the disconnect mode inthe Connect to Target window
3.16.4. Setting disconnect mode permanently
3.17. Disconnecting from multiple targets
3.17.1. Procedure
3.17.2. Considerations when disconnecting from multiple targets
3.17.3. Effect on Code windows when disconnecting
3.18. Disconnecting from all targets fora specific Debug Configuration
3.18.1. Procedure
3.19. Storing connections when exiting RealView Debugger
3.19.1. See also
3.20. Troubleshooting target connectionproblems
3.20.1. Failing to make a connection
3.20.2. Error P1001E (Parser): Specified targetnot in list of available targets
3.20.3. Simulator Debug Configuration error states
3.20.4. RealView ICE Debug Configuration error states
3.20.5. ARM Ltd. Direct Connection Debug Configuration errorstates
3.20.6. Problems with configuration files
3.20.7. Kill all other connections error withRealView ICE
3.20.8. 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 start
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 TrustZone-enabledtarget
4.2.5. Loading an image to a SoC Designertarget
4.2.6. Loading from the Process Control pane
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 Codewindow
4.3.2. Viewing image details in the ProcessControl pane
4.4. Loading a binary
4.4.1. Before you start
4.4.2. Procedure
4.4.3. Considerations when loading a binary
4.5. Loading multiple images to the sametarget
4.5.1. Before you start
4.5.2. Procedure
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.7.1. Procedure
4.8. Loading an executable image on startup
4.8.1. Specifying the target connection andload instruction
4.8.2. Connection prompt on load failure
4.9. Unloading an image
4.9.1. Procedure
4.9.2. Considerations when unloading an image
4.10. Deleting the process details for anunloaded image
4.10.1. Procedure
4.11. Reloading an image
4.11.1. Procedure
4.11.2. Considerations when reloading images
4.12. Reloading a binary
4.12.1. Procedure
4.12.2. Considerations when reloading binaries
4.13. Changing the format of the disassemblyview
4.13.1. See also
4.14. Interleaving source in the disassemblyview
4.14.1. Procedure
4.15. Opening source files for a loadedimage
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 imagein the Process Control pane
4.16. Hiding line numbers for opened sourcefiles
4.16.1. Turning off line numbering for thecurrent debugging session only
4.16.2. Turning off line numbers permanently
4.17. Adding source file search paths fora loaded image
4.17.1. Adding a source search path
4.17.2. Adding a source mapping
4.18. Autoconfiguring search rules for locatingsource files
4.18.1. Specifying the source file location
4.18.2. Viewing the source mappings
5. Navigating the Source and Disassembly Views
5.1. About navigating the source and disassembly
5.2. Viewing the selected location in theopposite code view
5.2.1. Viewing the disassembly corresponding to the selectedline of source
5.2.2. Viewing the line of source corresponding to a selecteddisassembly instruction
5.3. Locating the lowest address in memoryof a module
5.3.1. Procedure
5.4. Locating the line of code using asymbol in the source view
5.4.1. Procedure
5.5. Locating the address of a label inthe disassembly view
5.5.1. Procedure
5.6. Locating the destination of a branchinstruction
5.6.1. Procedure
5.7. Locating a function
5.7.1. Before you start
5.7.2. Locating a function using the sourcecode view
5.7.3. Locating a function using the Symbolspane
5.7.4. Locating a member functionin a C++ class
6. Writing Binaries to Flash
6.1. About writing binaries to Flash
6.1.1. Requirements for writing binariesto Flash
6.1.2. Flash Method files
6.1.3. Flash examples
6.1.4. Basic procedure for programming abinary into Flash
6.2. Writing a binary to Flash
6.2.1. Before you start
6.2.2. Procedure
6.3. Writing to specific locations in Flashmemory
6.3.1. Procedure
6.4. Viewing information about the Flashmemory
6.4.1. Viewing Flash information
6.4.2. Viewing details onselected Flash blocks
6.4.3. See also
6.5. Operations available when writingto Flash
6.5.1. Selecting the Flash blocks to operateon
6.5.2. Erasing selected Flash blocks
6.5.3. Additional operations when writingto 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 andconnections
7.1.2. Debug Interface units and multipletargets
7.1.3. Synchronization and cross-triggering
7.1.4. Synchronized startand stop operations, cross-triggering, and skid
7.1.5. Synchronized stepping, cross-triggering,and skid
7.1.6. Synchronized actions
7.2. Displaying multiple Code windows
7.2.1. Displaying a new Code window
7.2.2. Properties of the new Code window
7.3. Attaching a Code window to a connection
7.3.1. What is window attachment?
7.3.2. Procedure
7.4. Unattaching a Code window from a connection
7.4.1. Procedure
7.5. Using RealView ICE for multiprocessordebugging
7.5.1. See also
7.6. Synchronizing multiple processors
7.6.1. Before you start
7.6.2. Synchronization controls
7.6.3. Synchronizing actions
7.6.4. Synchronizing execution operations
7.7. Setting up software cross-triggering
7.7.1. Before you start
7.7.2. Cross-triggering controls
7.7.3. Procedure
7.7.4. See also
7.8. Setting up hardware cross-triggering
7.8.1. Setting up the hardware cross-triggeringcontrols
7.8.2. Reviewing the registerand CLI commands for the ARM11 MPCore
7.8.3. See also
7.9. Configuring standard embedded cross-triggering
7.9.1. Procedure
7.9.2. See also
7.10. Configuring CoreSight embedded crosstriggering
7.10.1. Procedure
7.10.2. See also
7.11. Sharing resources between multipletargets
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 memoryregions
7.11.4. Defining memory for a symmetric multiprocessorenvironment
7.11.5. Defining memory for a three processormultimedia development platform
7.11.6. Shared program memory
8. Mapping Target Memory
8.1. About mapping target memory
8.1.1. Uses for memory mapping
8.1.2. Memory mapping with RVISS models
8.1.3. Considerations when using memory maps
8.2. Enabling memory mapping
8.2.1. Before you start
8.2.2. Procedure
8.2.3. Considerations when using memory maps
8.3. Viewing the memory map
8.3.1. Before you start
8.3.2. Procedure
8.3.3. Memory map entry
8.3.4. Display colors
8.3.5. How loading an image affects the memorymap
8.4. Setting up a temporary memory map
8.4.1. Before you start
8.4.2. Procedure
8.5. Setting up a memory map
8.5.1. Assigning BCD files to a Debug Configuration
8.5.2. Panes that are affectedby assigning BCD files
8.5.3. Considerations when using memory maps
8.6. Creating a temporary memory map entry
8.6.1. Procedure
8.7. Editing a memory map entry
8.7.1. Procedure
8.8. Updating the memory map
8.8.1. Procedure
8.8.2. See also
8.9. Deleting memory map blocks
8.9.1. Deleting all memory map blocks
8.9.2. Deleting a specific memory map block
8.10. Generating linker command files fornon-ARM targets
8.10.1. Procedure
9. Executing Images
9.1. About image execution
9.1.1. The stepping controls
9.1.2. Interacting with your application
9.1.3. The command queue
9.2. Starting image execution
9.2.1. Before you start
9.2.2. Starting execution
9.2.3. Stopping execution
9.3. Running an image to a specific point
9.3.1. Running to the current cursor position
9.3.2. Running to the start of a functionusing the source view
9.3.3. Running to the start of a functionusing the Symbols pane
9.3.4. Running until the current functionreturns
9.3.5. Running to an entryin the Call Stack
9.4. Stepping by lines of source code
9.4.1. Before you start
9.4.2. Controls for stepping by lines ofcode
9.4.3. Stepping into functions
9.4.4. Stepping over function calls
9.4.5. Stepping a specified number of sourcelines
9.4.6. Considerations when high-level steppingin the disassembly view
9.5. Stepping by instructions
9.5.1. Before you start
9.5.2. Controls for stepping by assemblyinstructions
9.5.3. Stepping into functions
9.5.4. Low-level stepping over function calls
9.5.5. Stepping a specified number of assemblyinstructions
9.5.6. Considerations when low-level steppingin the source view
9.6. Stepping until a user-specified conditionis met
9.6.1. Before you start
9.6.2. Procedure
9.7. Resetting your target processor
9.7.1. Procedure
9.7.2. Considerations when resetting a processor
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 forcingscope
10.1.4. Code views
10.2. Changing scope to the PC
10.2.1. Scoping to the PC
10.3. Displaying the current execution context
10.3.1. Procedure
10.4. Resetting the PC to the image entrypoint
10.4.1. Procedure
10.5. Setting the PC to the address of aninstruction or line of code
10.5.1. Procedure
10.6. Setting the PC to a function
10.6.1. Setting the PC to a function usingthe Symbols pane
10.6.2. Setting the PC to a function entrypoint
10.7. Changing scope to the code pointedto by a Call Stack entry
10.7.1. Before you start
10.7.2. Changing scope to a specific entryin the Call Stack
10.7.3. 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 mapregions
11.1.5. What happens when a breakpoint isactivated?
11.1.6. Breakpoint icons and color coding
11.1.7. Qualifying breakpoint line numberreferences with module names
11.1.8. Specifying address ranges
11.1.9. Help with specifying locations andvalues for hardware breakpoints
11.1.10. Breakpoints and image restarts
11.1.11. See also
11.2. Setting a simple breakpoint
11.2.1. Before you start
11.2.2. Setting a breakpoint quickly
11.2.3. Toggling a breakpoint at the currentcursor position
11.2.4. Setting a breakpoint with the SimpleBreak if X dialog box
11.2.5. Effects of setting a breakpoint
11.3. Setting an unconditional breakpointwith specific attributes
11.3.1. Procedure
11.3.2. See also
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. Viewing breakpoint information
11.5.1. Breakpoints in the Break/Tracepoints pane
11.5.2. Viewing the breakpointdetails
11.6. Disabling a breakpoint
11.6.1. Disabling a breakpoint at the currentcursor position
11.6.2. Disabling a specific breakpoint
11.6.3. Considerations when disabling breakpoints
11.7. Enabling a breakpoint
11.7.1. Enabling a breakpoint in the codeview
11.7.2. Enabling a specific breakpoint
11.7.3. Considerations when enabling breakpoints
11.8. Editing a breakpoint
11.8.1. Procedure
11.8.2. Help with specifying locations andvalues for hardware breakpoints
11.9. Copying a breakpoint
11.9.1. Procedure
11.10. Finding a breakpoint in the code view
11.10.1. Procedure
11.11. Viewing the target hardware breakpointsupport
11.11.1. Procedure
11.12. Setting breakpoints by dragging anddropping
11.12.1. Procedure
11.13. Setting breakpoints on lines of sourcecode
11.13.1. Before you start
11.13.2. Setting a breakpoint on a single-statementline
11.13.3. Setting breakpointson a multi-statement line
11.14. Setting breakpoints on instructions
11.14.1. Before you start
11.14.2. Setting a breakpoint on an instruction
11.14.3. Setting a breakpoint at the destinationof a branch instruction
11.15. Setting breakpoints on functions
11.15.1. Setting a breakpoint at the startof a function
11.15.2. Setting a breakpointat the entry point to a function
11.15.3. Setting a breakpointin an inlined function
11.15.4. Setting a breakpoint in a C++ template
11.15.5. Setting a breakpoint at the startof a member function in a C++ class
11.15.6. Setting a breakpoint at the locationof a Call Stack entry
11.15.7. Setting breakpoints on functions fromthe Function/Label list
11.16. Setting breakpoints for memory accesses
11.16.1. Before you start
11.16.2. Breaking on a named global variablein your source code
11.16.3. Breaking on a variable in the Localspane
11.16.4. Breaking on a Stack address
11.16.5. Breaking on a single memory cell inthe Memory pane
11.16.6. Breaking on a range of memory cells in the Memorypane
11.16.7. Breaking on accesses at multiple locations
11.16.8. Considerations when setting memory access breakpoints
11.16.9. See also
11.17. Setting breakpoints for location-specificdata values
11.17.1. Before you start
11.17.2. Breaking on the value of a globalvariable
11.17.3. Breaking on a value of a watched variable
11.17.4. Breaking on a data value match withina range of addresses
11.17.5. Breaking in a function or range thatalso depends on a data value
11.17.6. See also
11.18. Setting breakpoints for location-independentdata values
11.18.1. Before you start
11.18.2. Setting a data only breakpoint
11.18.3. Breaking on a data value match witha modifier
11.18.4. Considerations when setting data only breakpoints
11.18.5. See also
11.19. Forcing the size of a software breakpoint
11.19.1. Procedure
11.20. Chaining hardware breakpoints
11.20.1. CLI command qualifiers used for chainingbreakpoints
11.20.2. Converting existing individual hardwarebreakpoints to chained breakpoints
11.20.3. Considerations when chaining hardwarebreakpoints
11.20.4. See also
11.21. Specifying processor exceptions (globalbreakpoints)
11.21.1. Procedure
11.21.2. Specifying a processor exception that runs a macrowhen triggered
11.21.3. Considerations when setting SVC vector catch (hardwaretargets)
11.22. Setting breakpoints on custom memorymapped registers
11.22.1. Before you start
11.22.2. Breaking on a custom memory mappedregister
11.22.3. Breaking on a data value of a custommemory mapped register
11.23. Setting breakpoints from the breakpointhistory list
11.23.1. Procedure
11.24. Adding breakpoints to the breakpointhistory list
11.24.1. Procedure
11.25. Creating new breakpoint favorites
11.25.1. Before you start
11.25.2. Procedure
11.26. Setting breakpoints from your FavoritesList
11.26.1. Procedure
12. Controlling the Behavior of Breakpoints
12.1. About controlling the behavior ofbreakpoints
12.1.1. Features for controlling breakpoint behavior
12.1.2. Considerations when using softwareconditions
12.1.3. Conditional hardware breakpoints
12.2. Updating windows and panes when abreakpoint activates
12.2.1. Updating specific windows and panes
12.2.2. Updating all windows and panes
12.2.3. See also
12.3. Displaying user-defined messages whena breakpoint activates
12.3.1. Procedure
12.4. Setting the execution behavior fora breakpoint
12.4.1. Procedure
12.5. Setting breakpoints that test forhardware input triggers
12.5.1. Setting a hardware input trigger test
12.5.2. Resetting a hardware input triggertest
12.5.3. Hardware Support settings for RVISS
12.5.4. Hardware Support settings for an ARMarchitecture-based target
12.5.5. Hardware Support settings for a DSP-baseddebug target
12.5.6. See also
12.6. Setting a breakpoint that activatesafter a number of passes
12.6.1. Procedure when using the generic breakpointdialog box
12.6.2. Procedure when using the Simple Breakif X, N times dialog box
12.6.3. Combining hardware and software passcounts
12.6.4. See also
12.7. Resetting breakpoint pass counters
12.7.1. Procedure
12.8. Setting a breakpoint that dependson the result of an expression
12.8.1. Procedure when using the generic breakpointdialog box
12.8.2. Procedure when using the Simple Breakif X, when Y is True dialog box
12.8.3. See also
12.9. Setting a breakpoint that dependson 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.9.5. See also
12.10. Setting a breakpoint on a specificinstance of a C++ class
12.10.1. Procedure
12.10.2. Example of settinga breakpoint on a C++ class
12.11. Example of breakpoint behavior
12.11.1. Procedure
12.11.2. Using a macro as an argument to abreak command
13. Examining the Target Execution Environment
13.1. About examining the target executionenvironment
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 librariesused by an image
13.2.3. Viewing the functions of a module
13.2.4. Performing operations on functionsfrom the Symbols pane
13.3. Displaying function information fromthe Symbols pane
13.3.1. Procedure
13.4. Displaying the list of variables inan image
13.4.1. Displaying variables
13.4.2. Displaying variables in the librariesused by an image
13.4.3. Viewing the variables for a module
13.4.4. Performing operations on variablesfrom the Symbols pane
13.5. Viewing variables for the currentcontext
13.5.1. Displaying local variables for thecurrent context
13.5.2. Displaying static variablesfor the current context
13.5.3. Displaying C++ thispointers for the current context
13.5.4. Performing timed updates for RealMonitorand OS-aware targets
13.5.5. Formatting the display of values forindividual variables
13.5.6. Formatting the display of values forall variables
13.5.7. Toggling automatic updates of theLocals pane
13.5.8. Manually updating values in the Localspane
13.5.9. Copying and pasting variables
13.6. Displaying information for a variable
13.6.1. Printing the value of a variable
13.6.2. Displaying type information for avariable
13.7. Viewing C++ classes
13.7.1. Displaying the properties of a classor a component of a class
13.7.2. Identifying the components of a classin the Classes pane
13.7.3. Finding a class definition in yoursource code
13.7.4. Operations you can perform on memberfunctions
13.8. Viewing registers
13.8.1. Examining registers in the Registerspane
13.8.2. Creating a customized register viewfor a connection
13.8.3. Formatting selected registers in theRegisters pane
13.8.4. Formatting all registers in the Registerspane
13.8.5. Copying all registers in the currentregister view
13.8.6. Copying selected registers in thecurrent register view
13.8.7. Updating the register display
13.8.8. Viewing different registers
13.8.9. Viewing registers for multiple targets
13.8.10. Understanding the register view
13.8.11. Viewing debugger internals
13.9. Viewing semihosting controls for RealViewICE JTAG connections
13.9.1. The semihosting controls for RealView ICE connections
13.10. Viewing semihosting controls for RVISSconnections
13.10.1. The semihosting controls for RVISS connections
13.11. Viewing memory contents
13.11.1. Toggling the display of the Memorypane toolbar
13.11.2. Examining memory in the Memory pane
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 variablein source code
13.11.6. Viewing memory at a variable valueby cutting and pasting
13.11.7. Viewing memory at thedestination of a branch instruction
13.11.8. Viewing memory at a watch variable
13.11.9. Viewing memory at a previous startaddress
13.11.10. Viewing memory for multiple processors
13.11.11. Considerations when performing theview memory operations
13.12. Managing the display of memory inthe Memory pane
13.12.1. Changing the display size for viewingmemory contents
13.12.2. Formatting the displayof memory contents
13.12.3. Displaying the ASCIIview in separate columns
13.12.4. Changing the number of columns displayed
13.12.5. Coloring memory contents
13.12.6. Toggling automatic updates of theMemory pane
13.12.7. Manually updating values in the Memorypane
13.12.8. Performing timed updatesfor RealMonitor and OS-aware targets
13.12.9. Adding memory views for differentlocations
13.12.10. Deleting a memory view
13.12.11. Moving a memory view to another Memorypane
13.12.12. Display colors in the Memory pane
13.13. Viewing the Stack
13.13.1. Before you start
13.13.2. Examining the Stack
13.13.3. Viewing the Stack at a specified address
13.13.4. Viewing the Stack at an address containedin a selected Stack entry
13.13.5. Viewing the symbol at a Stack address
13.13.6. Viewing the symbol at an address ina selected Stack entry
13.13.7. Viewing the Stack by re-evaluatinga C/C++ expression
13.13.8. Copying the contents of the Stack
13.13.9. Formatting the Stack contents
13.13.10. Changing the data size for Stack contents
13.14. Viewing the Call Stack
13.14.1. Examining the Call Stack
13.14.2. Copying a Call Stack entry
13.14.3. Toggling automatic updates of theCall Stack pane
13.14.4. Manually updating the Call Stack pane
13.14.5. Displaying the propertiesof a Call Stack entry
13.14.6. Operations you can perform on theCall Stack
13.15. Setting watches
13.15.1. Setting a watch variable
13.15.2. Setting a watch expression
13.15.3. Setting a watch by copying and pasting
13.15.4. Setting a watch by dragging and dropping
13.15.5. Setting a watch fromthe Symbols pane
13.15.6. Editing the name of an existing watch
13.15.7. Deleting a watch
13.16. Viewing watches
13.16.1. Examining watches in the Watch pane
13.16.2. Toggling automatic updates of theWatch pane
13.16.3. Manually updating the Watch pane
13.16.4. Performing timed updatesfor RealMonitor and OS-aware targets
13.16.5. Formatting the display of values forindividual watches
13.16.6. Formatting the display of values forall watches
13.16.7. Displaying the propertiesof a watch
13.17. Viewing statistics for RVISS targets
13.17.1. Statistics for uncached von Neumann processors
13.17.2. Statistics for uncached Harvard processors
13.17.3. RVISS map file related statistics
13.17.4. Accessing additional core-specific statistics
13.17.5. Viewing the RVISS cycle count statistics
13.17.6. Accessing the individual cycle countstatistics values
13.17.7. Viewing standard cycle count statisticswith the STATS command
13.17.8. Example of how to accumulate RVISSstatistics
13.18. Viewing the RVISS map related statisticsin RealView Debugger
13.18.1. Viewing the map related statisticson the Mapfile tab
13.18.2. Viewing the statistics with CLI commands
13.19. Saving memory contents to a file
13.19.1. Procedure
13.19.2. Considerations when saving memorycontents to a file
13.20. Comparing target memory with the contentsof a file
13.20.1. Before you start
13.20.2. Procedure
13.21. Displaying information in a user-definedwindow
13.21.1. Opening a user-defined window
13.21.2. Closing a user-defined window
13.21.3. Clearing a user-defined window
13.21.4. See also
13.22. Saving information to a user-definedfile
13.22.1. Opening a user-defined file
13.22.2. Closing a user-definedfile
13.22.3. See also
13.23. Displaying a list of open user-definedwindows and files
13.23.1. Procedure
14. Altering the Target Execution Environment
14.1. About altering the target executionenvironment
14.1.1. Basic steps required for altering the target executionenvironment
14.2. Changing the value of a register
14.2.1. Before you start
14.2.2. Changing the value of a register
14.2.3. Setting registers with the InteractiveRegister Setting dialog box
14.2.4. Copying and pasting a selected registervalue
14.2.5. Changing values for the CPSR and SPSRregisters
14.2.6. Changing values forthe CP15 Control register
14.2.7. Changing debugger internals
14.3. Changing memory contents
14.3.1. Before you start
14.3.2. Changing the value in a memory location
14.3.3. Setting memory with the InteractiveMemory Settings dialog box
14.3.4. Filling memory with a pattern
14.4. Changing the data width on memoryaccesses
14.4.1. See also
14.5. Loading the contents of a file intomemory
14.5.1. Before you start
14.5.2. Procedure
14.6. Changing the stack pointer
14.6.1. Before you start
14.6.2. Procedure
14.7. Changing the value of a watch
14.7.1. Before you start
14.7.2. Setting a watch value using in-placeediting
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 commandscript
15.3.1. Procedure
15.4. Creating log and journal files atstart-up
15.4.1. See also
15.5. Closing log and journal files
15.5.1. Procedure
15.6. Using macros in command scripts
15.6.1. See also
15.7. Running command scripts
15.7.1. Before you start
15.7.2. Running scripts using the Scriptstoolbar
15.7.3. Running scripts using the IncludeCommands from File option
15.7.4. Running scripts when starting RealView Debugger
15.7.5. Referencing scripts from other commandscripts
15.7.6. Considerations when running command scripts
15.8. Creating a script that writes informationto a user-defined window
15.8.1. Procedure
15.8.2. CLI commands that support user-definedwindow IDs
15.9. Creating a script that accesses auser-defined file
15.9.1. Procedure
15.9.2. CLI commands that support user-definedfile IDs
15.9.3. Predefined macros that support user-definedfile 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 commandsin 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 usingthe Scripts toolbar
16.3.2. Loading a user-definedmacro 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 commandline
16.4.2. Running a macro that returns a value
16.4.3. Running a macro that has the samename as a CLI command
16.4.4. Running a macro that has the samename as a target function
16.5. Editing a macro
16.5.1. Procedure
16.5.2. Editing the exampletutorial() macro
16.6. Copying a macro
16.6.1. Procedure
16.7. Viewing a macro
16.7.1. See also
16.8. Deleting a macro
16.8.1. Procedure
16.9. Using macros in combination with othercommands
16.9.1. Using an alias to run a macro
16.9.2. Redirecting macro output to a user-definedwindow 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 otherentities
16.10. Stopping execution of a macro
17. Configuring Workspace Settings
17.1. About workspace settings
17.2. Initializing the workspace
17.2.1. Start-up options
17.3. Opening workspaces
17.3.1. Opening a workspace
17.3.2. Opening a workspace from the RecentWorkspaces list
17.3.3. Using the same workspace on startup
17.3.4. Considerations when opening workspaces
17.4. Closing workspaces
17.4.1. Procedure
17.4.2. Considerations when closing workspaces
17.5. Creating an empty workspace
17.5.1. Procedure
17.6. Saving workspaces
17.6.1. Saving the current workspace settings
17.6.2. Saving the current workspace settingsto a new file
17.6.3. Saving workspace settingson 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.1. Command
A.1.2. Disassembler
A.1.3. Board_file
A.2.1. Asm_type
A.3. ALL
A.3.1. Text
A.3.2. Search
A.3.3. Edit
A.4.1. See also
A.5.1. See also
B. Configuration Files Reference
B.1. Overview
B.1.1. See also
B.2. Files in the etc directory
B.2.1. See also
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 Internalvariables?
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. Why am I unable to connect to a DSP target?
C.2.2. Viewing Coprocessor variables
C.2.3. How do I load symbols for an image?
C.2.4. RealView ARMulator ISS Benchmarking
C.2.5. Debug illusion issues
C.3. Comparison of RealView Debugger and AXD commands
C.3.1. See also
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 armsdcommands
D.2.1. See also
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. Connect to Target window (Targetgrouping)
1.3. Connect to Target window (Configurationgrouping)
1.4. Synchronization Control window
1.5. Analysis window
1.6. Home Page
1.7. Break/Tracepoints pane
1.8. Call Stack pane
1.9. Classes pane
1.10. Locals pane
1.11. Memory pane
1.12. Output pane
1.13. Process Control pane
1.14. Registers pane
1.15. Resource Viewer pane
1.16. Stack pane
1.17. Symbols pane
1.18. Watch pane
1.19. Location of PC in disassembly view
1.20. Location of the PC in a source file
1.21. Scripts toolbar
1.22. Search toolbar
2.1. Prompt to update configuration files
2.2. Prompt to rebuild the rvdebug.brdfile
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. Model Configuration Utility dialogbox
3.5. Debug interfaces in the Connect toTarget window
3.6. Targets in a Debug Configuration
3.7. Home Page
3.8. SoC Designer model connection inthe Connect to Target window
3.9. Targets on a CoreSight developmentplatform
3.10. Topology dialog box
3.11. Interactive Register Setting dialogbox
3.12. Connection information in the Codewindow title bar
3.13. Active connection list
3.14. 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 Controlpane
4.5. Load Binary dialog box
4.6. Multiple images in the Process Controlpane
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. Code and disassembly tabs in theCode window
5.2. Symbols pane
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 sourceview
5.10. Symbols pane
5.11. Functions in the dhrystone.axf image
5.12. Navigate to a function
5.13. Classes pane
6.1. Flash Memory Control dialog box
6.2. Flash information
6.3. Flash Memory Control dialog box withmultiple blocks selected
6.4. Flash block details
7.1. Active connections list showing attachedconnection
7.2. The Synchronization Controls
7.3. Synchronization Control window
7.4. Synchronization Control window showingsynchronized actions
7.5. Execution controls in the SynchronizationControl window
7.6. Synchronization Control window showingsynchronized execution operations
7.7. Synchronization Control window showingcross triggering controls
7.8. Synchronization Control window
7.9. Cross Triggering tab in the SynchronizationControl 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. Connection Properties window
7.16. ECT.bcd file assigned to a connection
7.17. ECT tab
7.18. CoreSight CTI registers in the Registerspane
7.19. Defining shared memory regions
7.20. Memory block attributes
7.21. Example of a shared memory configuration
7.22. Editing the memory block in the CPBoard/Chip definition file
8.1. Disabled memory map
8.2. Default memory map
8.3. Example of a memory map
8.4. Colors in the memory map
8.5. Memory map with an image loaded
8.6. Default memory map
8.7. Create Map Entry dialog box
8.8. Example of a memory map
8.9. Connection Properties window
8.10. CP.bcd file assigned to a connection
8.11. CP.bcd and CM966ES.bcd files assignedto a connection
8.12. Integrator/CP and ARM966E-S memorymap
8.13. CP and CM966ES tabs in the Registerspane
8.14. Edit Map Entry dialog box
8.15. Default memory map
9.1. Located line in the source code
9.2. Symbols pane
9.3. List of functions
9.4. Example Call Stack pane for dhrystone
10.1. Code and disassembly tabs in theCode window
10.2. Symbols pane
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 pane
10.7. Scoped to a Call Stack entry
11.1. Breakpoint showing downward pointingarrows
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/Tracepointspane
11.6. Breakpoint in the Break/Tracepointspane
11.7. Breakpoints in the Break/Tracepointspane
11.8. Breakpoint in the Break/Tracepointspane
11.9. Breakpoint entry expanded
11.10. Full breakpoint details
11.11. Breakpoint in the Break/Tracepointspane
11.12. Edit Breakpoint dialog box
11.13. Breakpoint in the Break/Tracepointspane
11.14. Edit Breakpoint dialog box
11.15. Breakpoint in the Break/Tracepointspane
11.16. Locating a breakpoint
11.17. Example hardware break characteristics
11.18. Break/tracepoint pane
11.19. Source code view
11.20. Breakpoint type selection dialogbox
11.21. Setting an unconditional breakpointon a line
11.22. Multiple breakpoints on a multi-statementline
11.23. Setting an unconditional breakpointon an instruction
11.24. Breakpoint entry showing multiplelocations
11.25. Breakpoint entry showing multipleC++ template instantiations
11.26. Classes pane
11.27. Breakpoint type selection dialogbox
11.28. Function Breakpoint Selector dialogbox
11.29. Example Stack pane
11.30. Example Memory pane
11.31. Example Memory pane showing selectedlocations
11.32. Create Breakpoint dialog box showingselected 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 ifX dialog box
11.37. Chained breakpoint
11.38. HW Break on Data Value match dialogbox
11.39. Processor Exceptions list selectiondialog 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. Breakpoint set with a CLI command
11.44. Breakpoint added to the breakpointhistory list
11.45. Favorites/Chooser Editor dialog box
11.46. New/Edit Favorite dialog box
11.47. 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 dialogbox
12.14. Breakpoint behavior controls
12.15. Add Condition dialog box
12.16. Simple Break if X, when Y is Truedialog box
12.17. Execution stopped on an instanceof a C++ object
13.1. Symbols pane
13.2. List of functions
13.3. List of modules
13.4. Symbols pane
13.5. List of variables
13.6. List of modules
13.7. Locals tab in the Locals pane
13.8. Locals tab in the Locals pane
13.9. Statics tab in the Locals pane
13.10. This tab in the Locals pane
13.11. Timed Update Period dialog box
13.12. Symbols pane
13.13. List of variables
13.14. Classes pane
13.15. Components of class entries in theClasses pane
13.16. Find In Files dialog box
13.17. Registers pane
13.18. Registers pane
13.19. Registers changed since the lastupdate
13.20. Registers changed at the previousupdate
13.21. Customized register view
13.22. Registers for an Integrator/CP andARM966E-S debug target
13.23. Viewing registers
13.24. Viewing internal variables (RealViewICE)
13.25. Specifying semihosting (RealViewICE)
13.26. Viewing Semihost tab (RVISS)
13.27. Memory pane toolbar
13.28. Memory pane
13.29. Memory pane showing address contents
13.30. Memory view at an address in a register
13.31. Memory view at a value in a variable
13.32. Size of fields list in Memory pane
13.33. Format of fields list in the Memorypane
13.34. Number of columns list in Memorypane
13.35. Timed Update Period dialog box
13.36. Memory pane showing address contents
13.37. Memory pane with multiple memoryviews
13.38. Viewing the stack
13.39. Start address dialog box
13.40. Expression Pointer in the Stack pane
13.41. Symbol at a Stack address
13.42. Symbol at address in a selected Stackentry
13.43. Call Stack pane
13.44. Multistatement details in the CallStack pane
13.45. Multistatement details in the CallStack pane
13.46. Properties of a Call Stack entry
13.47. Watch expression dialog box
13.48. Watch pane with watches
13.49. Timed Update Period dialog box
13.50. Watch properties
13.51. CycleCount tab for an uncached vonNeumann processor
13.52. CycleCount tab for an uncached Harvardprocessor
13.53. RVISS map related statistics in theMapfile tab
13.54. Upload/Download file from/to Memorydialog box
13.55. User-defined window
14.1. Registers pane
14.2. In-place editing of a register
14.3. Interactive Register Setting dialogbox
14.4. Register set in Interactive RegisterSetting 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 registerin Registers pane
14.12. CP15 Control dialog box
14.13. Memory pane showing address contents
14.14. Memory pane showing changed value
14.15. Example memory display
14.16. Memory updated
14.17. Memory updated
14.18. Start Address field in Memory pane
14.19. Interactive Memory Setting dialogbox
14.20. Memory set in Interactive MemorySetting dialog box
14.21. Fill Memory dialog box
14.22. Upload/Download file from/to Memorydialog box
14.23. Registers pane
14.24. In-place editing of the SP register
14.25. Stack pane for new SP register address
15.1. Status line indicating an open logfile
15.2. Status line indicating open log andjournal files
15.3. Close log and journal files selectionbox
15.4. Script file added to Scripts toolbar
16.1. Creating a macro
16.2. Script file added to Scripts toolbar
16.3. Loading macros on connection
17.1. Close Open Objects selection dialogbox
17.2. Workspace Options window
17.3. Options window
17.4. Example Workspace Options
E.1. Column resizing in the Watch pane
E.2. Column resizing prompt box

Proprietary Notice

Words and logos marked with ® or ™ are registered trademarks or trademarksowned by ARM Limited. Other brands and names mentioned herein maybe the trademarks of their respective owners.

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

The product described in this document is subject to continuousdevelopments and improvements. All particulars of the product andits use contained in this document are given by ARM in good faith.However, all warranties implied or expressed, including but notlimited to implied warranties of merchantability, or fitness forpurpose, are excluded.

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

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


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

Product Status

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

Revision History
Revision A April2002 Release v1.5
Revision B September2002 Release v1.6
Revision C February2003 Release v1.6.1
Revision D September2003 Release v1.6.1 for RVDS v2.0
Revision E January2004 Release v1.7 for RVDS v2.1
Revision F December2004 Release v1.8 for RVDS v2.2
Revision G May2005 Release v1.8 SP1 for RVDS v2.2 SP1
Revision H March2006 Release v3.0 for RVDS v3.0
Revision I March2007 Release v3.1 for RVDS v3.1
Copyright © 2002-2007 ARM Limited. All rights reserved. ARM DUI 0153I