RealView ® Debugger UserGuide

Version 3.0

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.2. Target connection
1.2.1. Target connection and target configuration
1.2.2. 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.4. DSP support
1.4.1. Overview of DSP support
1.4.2. Considerations for DSP support
1.4.3. Licensing and operating restrictions
1.4.4. DSP debugging resources
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. Memory mapping
1.7. Execution control
1.8. Execution context and scope
1.9. Breakpoints in RealView Debugger
1.9.1. Events that determine when a breakpointis hit
1.9.2. Conditions that delay breakpoint activation
1.9.3. Actions that can be performed whena breakpoint activates
1.10. Examining the target execution environment
1.11. 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 commandline
2.1.1. Syntax of the rvdebug command
2.1.2. Examples
2.1.3. Getting more information
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.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 Sun Solarisor Red Hat Linux
2.4.4. The current working directory
2.4.5. Using the examples directories
3. Target Connection
3.1. About target connections
3.1.1. Connection control and target access
3.1.2. Connections in single processor debuggingmode
3.1.3. Connections in multiprocessor debuggingmode
3.1.4. Connections to simulated targets
3.1.5. Connections to remote targets
3.1.6. Connections to DSP targets
3.2. Connecting to a target
3.2.1. Before you start
3.2.2. Making a connection
3.2.3. Connecting to a model launched byARM MaxSim Explorer
3.2.4. Effect of connecting to a target on the RealView Debugger GUI
3.2.5. Considerations when connecting totargets
3.3. Accessing the Target Access configurationdialog box
3.3.1. Procedure
3.4. Setting top of memory for the currentdebugging session
3.4.1. Procedure
3.5. Viewing connection details
3.5.1. Connection details in the Code windowtitle bar
3.5.2. Connection details in the Output pane
3.6. Connecting to a target on startup
3.6.1. Procedure
3.6.2. Also see
3.7. Connecting to a target using differentmodes
3.7.1. The connect modes
3.7.2. Setting connect mode for the currentdebugging session
3.7.3. Setting connect mode permanently
3.8. Connecting to a remote target
3.8.1. Procedure
3.9. Connecting to multiple targets
3.9.1. Before you start
3.9.2. Procedure
3.9.3. Consideration when connecting to multiple targets
3.10. Connecting to all targets on a specificTarget Access
3.10.1. Procedure
3.11. Changing the current target connection
3.11.1. What is the current connection?
3.11.2. Cycling through the active connectionlist
3.11.3. Selecting a connection from the activeconnection list
3.11.4. Considerations when changing the current connection
3.12. Disconnecting from a target
3.12.1. Disconnecting from any target
3.12.2. Disconnecting from the target shownin the Code window
3.12.3. Disconnect behavior in RealView Debugger
3.12.4. Considerations when disconnectingfrom targets
3.13. Disconnecting from a target usingdifferent modes
3.13.1. The disconnect modes
3.13.2. Setting disconnect mode for the currentdebugging session
3.13.3. Setting disconnect mode permanently
3.14. Disconnecting from multiple targets
3.14.1. Procedure
3.14.2. Considerations when disconnecting from multiple targets
3.14.3. Effect on Code windows when disconnecting
3.15. Disconnecting from all targets ona specific Target Access
3.15.1. Procedure
3.16. Storing connections when exiting RealView Debugger
3.17. Troubleshooting target connectionproblems
3.17.1. Failing to make a connection
3.17.2. Problems with configuration files
3.17.3. Kill all other connections error withRealView ICE
3.17.4. Reconnect to server error when usingMulti-ICE
3.17.5. Other problems
4. Loading Images and binaries
4.1. About loading images and binaries
4.1.1. 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 to a TrustZone-enabledtarget
4.2.4. Loading from the Process Control pane
4.2.5. Loading an image by dragging and dropping
4.2.6. 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.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. Displaying line numbers for openedsource files
4.16.1. Turning on line numbering for thecurrent debugging session only
4.16.2. Turning on line numbers permanently
4.16.3. See also
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. Writing Binaries to Flash
5.1. About writing binaries to Flash
5.1.1. Requirements for writing binariesto Flash
5.1.2. Flash Method files
5.1.3. Flash examples
5.1.4. Basic procedure for programming abinary into Flash
5.2. Writing a binary to Flash
5.2.1. Before you start
5.2.2. Procedure
5.3. Writing to specific locations in Flashmemory
5.3.1. Procedure
5.3.2. See also
5.4. Viewing information about the Flashmemory
5.4.1. Viewing Flash information
5.4.2. Viewing details on selected Flashblocks
5.5. Operations available when writingto Flash
5.5.1. Selecting the Flash blocks to operateon
5.5.2. Erasing selected Flash blocks
5.5.3. Additional operations when writingto Flash
5.5.4. Abandoning changes to Flash blocks
6. Debugging Multiple Targets
6.1. About debugging multiple targets
6.1.1. Components of the RealView Debugger multiprocessorarchitecture
6.1.2. Connections to a singletarget
6.1.3. Connections to multipletargets
6.1.4. Connections to multiple ARM targets anda DSP target
6.1.5. Connections to OS-awaretargets
6.1.6. Debug target interface units and multipletargets
6.1.7. About synchronization and cross-triggering
6.1.8. Commands used for synchronizationand cross-triggering
6.2. Methods of specifying processor-specificconnection settings
6.2.1. Creating processor-specific Advanced_Informationblocks
6.2.2. Assigning processor-specific BCD files
6.3. Displaying multiple Code windows
6.3.1. Displaying a new Code window
6.3.2. Properties of the new Code window
6.3.3. Closing an unwanted Code window
6.4. Attaching a Code window to a connection
6.4.1. What is windows attachment?
6.4.2. Procedure
6.5. Attaching multiple Code windows todifferent connections
6.5.1. Procedure
6.6. Unattaching a Code window from a connection
6.6.1. Procedure
6.7. Using RealView ICE for multiprocessordebugging
6.7.1. Synchronization of multiprocessor systems
6.7.2. Using the Debug tab when multiprocessor debuggingwith RealView ICE
6.8. Using Multi-ICE for multiprocessordebugging
6.8.1. Turning off the Multi-ICE cache mechanism
6.8.2. Consideration when using Multi-ICE with multiple targets
6.8.3. Synchronization of multiprocessor systems
6.8.4. Using the Debug tab when multiprocessor debuggingwith Multi-ICE
6.9. Synchronizing multiple processors
6.9.1. Before you start
6.9.2. Synchronization controls
6.9.3. Procedure
6.9.4. Considerations when working with synchronizedprocessors
6.10. Setting up cross-triggering for multipleprocessors
6.10.1. Before you start
6.10.2. Cross-triggering controls
6.10.3. Procedure
6.11. Configuring embedded cross-triggeringfor a connection
6.11.1. Procedure
6.12. Synchronization behavior for OS-awareimages
6.12.1. Synchronization behavior when runningan OS-aware image
6.12.2. Controlling connections running inRSD mode
6.13. Sharing resources between multipletargets
6.13.1. Resource sharing and debugger consistency
6.13.2. Saving and restoring your .brd file
6.13.3. Locating the settings for shared memoryregions
6.13.4. Defining memory for a symmetric multiprocessorenvironment
6.13.5. Defining memory fora three processor multimedia system
7. Mapping Target Memory
7.1. About mapping target memory
7.1.1. Uses for memory mapping
7.1.2. Considerations when using Memory maps
7.2. Enabling memory mapping
7.2.1. Before you start
7.2.2. Procedure
7.2.3. Considerations when using memory maps
7.3. Viewing the memory map
7.3.1. Before you start
7.3.2. Procedure
7.3.3. Memory map entry
7.3.4. Display colors
7.3.5. How loading an image affects the memorymap
7.4. Setting up a temporary memory map
7.4.1. Before you start
7.4.2. Procedure
7.5. Setting up a memory map
7.5.1. Assigning BCD files to a target connection
7.5.2. Panes that are affectedby assigning BCD files
7.5.3. Considerations when using memory maps
7.6. Creating a temporary memory map entry
7.6.1. Procedure
7.7. Editing a memory map entry
7.7.1. Procedure
7.8. Updating the memory map
7.8.1. Procedure
7.9. Resetting the memory map
7.9.1. Procedure
7.10. Generating linker command files fornon-ARM targets
8. Executing Images
8.1. About image execution
8.1.1. The starting and stopping controls
8.1.2. The stepping controls
8.1.3. Interacting with your application
8.1.4. The command queue
8.2. Starting image execution
8.2.1. Before you start
8.2.2. Starting execution
8.2.3. Stopping execution
8.3. Running an image to a specific point
8.3.1. Before you start
8.3.2. Running to the current cursor position
8.3.3. Running to the start of a functionusing the File Editor pane
8.3.4. Running to the start of a functionusing the Symbols pane
8.3.5. Running until the current functionreturns
8.3.6. Running to an entry in the Call Stack
8.4. Stepping by lines of source code
8.4.1. Before you start
8.4.2. Controls for stepping by lines ofcode
8.4.3. Stepping into functions
8.4.4. Stepping over function calls
8.4.5. Stepping a specified number of sourcelines
8.4.6. Considerations when high-level steppingin the disassembly view
8.5. Stepping by instructions
8.5.1. Before you start
8.5.2. Controls for stepping by assemblyinstructions
8.5.3. Stepping into functions
8.5.4. Low-level stepping over function calls
8.5.5. Stepping a specified number of assembly instructions
8.5.6. Considerations when low-level steppingin the source view
8.6. Stepping until a user-specified conditionis met
8.6.1. Before you start
8.6.2. Procedure
8.7. Resetting your target processor
8.7.1. Procedure
8.7.2. Considerations when resetting a processor
9. Changing the Execution Context
9.1. About changing the execution context
9.1.1. What is scope and context?
9.1.2. Why change scope?
9.1.3. Methods of forcingscope
9.1.4. Code views
9.2. Changing scope to the PC
9.2.1. Scoping to the PC
9.3. Displaying the current execution context
9.3.1. Procedure
9.4. Resetting the PC to the image entrypoint
9.4.1. Procedure
9.5. Setting the PC to the address of aninstruction or line of code
9.5.1. Procedure
9.6. Setting the PC to a function
9.6.1. Setting the PC to a function usingthe Symbols pane
9.6.2. Setting the PC to a function entrypoint
9.7. Changing scope to the lowest addressin memory of a module
9.7.1. Procedure
9.8. Changing scope to a line of code inthe source view
9.8.1. Procedure
9.9. Changing scope to an instruction inthe disassembly view
9.9.1. Procedure
9.10. Changing scope to the destinationof a branch instruction
9.10.1. Procedure
9.11. Changing scope to a function
9.11.1. Before you start
9.11.2. Changing scope using the code view
9.11.3. Changing scope to a function usingthe Symbols pane
9.11.4. Changing scope to a member functionin a C++ class
9.12. Changing scope to the code pointedto by a Call Stack entry
9.12.1. Before you start
9.12.2. Moving up and down the Call Stack
9.12.3. Changing scope to a specific entryin the Call Stack
9.13. Displaying a previously viewed lineor address
9.13.1. Displaying the previous line or address
9.13.2. Selecting a specific line or addressto display
10. Setting Breakpoints
10.1. About setting breakpoints
10.1.1. Software and hardware breakpoints
10.1.2. Breakpoint types for OS-aware applications
10.1.3. Unconditional and conditional breakpoints
10.1.4. Breakpoints in different memory mapregions
10.1.5. What happens when a breakpoint isactivated?
10.1.6. Breakpoint icons and color coding
10.1.7. Qualifying breakpoint line numberreferences with module names
10.1.8. Specifying address ranges
10.1.9. Help with specifying locations andvalues for hardware breakpoints
10.1.10. Breakpoints and image restarts
10.2. Setting a simple breakpoint
10.2.1. Before you start
10.2.2. Setting a breakpoint quickly
10.2.3. Toggling a breakpoint at the currentcursor position
10.2.4. Setting a breakpoint with the SimpleBreak if X dialog box
10.2.5. Effects of setting a breakpoint
10.3. Clearing breakpoints
10.3.1. Clearing a breakpoint quickly
10.3.2. Clearing breakpoints individually
10.3.3. Clearing all breakpoints
10.3.4. Considerations when clearing breakpoints
10.4. Viewing breakpoint information
10.4.1. Breakpoints in the Break/Tracepoints pane
10.4.2. Viewing the breakpoint details
10.4.3. Locating the entryfor a breakpoint in the Break/Tracepoints pane
10.5. Disabling a breakpoint
10.5.1. Disabling a breakpoint at the currentcursor position
10.5.2. Enabling a breakpoint at the currentcursor position
10.5.3. Disabling a specificbreakpoint
10.5.4. Enabling a specific breakpoint
10.5.5. Considerations when disabling and enabling breakpoints
10.6. Editing a breakpoint
10.6.1. Procedure
10.6.2. Help with specifying locations andvalues for hardware breakpoints
10.7. Copying a breakpoint
10.7.1. Procedure
10.8. Finding a breakpoint in the code view
10.8.1. Procedure
10.9. Viewing the target hardware breakpointsupport
10.9.1. Procedure
10.9.2. See also
10.10. Setting breakpoints by dragging anddropping
10.10.1. Procedure
10.11. Setting breakpoints on lines of sourcecode
10.11.1. Before you start
10.11.2. Setting a breakpoint on a single-statementline
10.11.3. Setting breakpointson a multi-statement line
10.12. Setting breakpoints on instructions
10.12.1. Before you start
10.12.2. Setting a breakpoint on an instruction
10.12.3. Setting a breakpoint at the destinationof a branch instruction
10.13. Setting breakpoints on functions
10.13.1. Setting a breakpoint at the startof a function
10.13.2. Setting a breakpoint at the entrypoint to a function
10.13.3. Setting a breakpoint on an inlinedfunction
10.13.4. Setting a breakpoint on a C++ template
10.13.5. Setting a breakpoint at the startof a member function in a C++ class
10.13.6. Setting a breakpoint at the locationof a Call Stack entry
10.13.7. Setting breakpoints on functions fromthe Function/Label list
10.14. Setting breakpoints for memory accesses
10.14.1. Before you start
10.14.2. Breaking on an explicit memory location
10.14.3. Breaking on a memory access in a rangeof addresses
10.14.4. Breaking on a named global variablein your source code
10.14.5. Breaking on a Stack address
10.14.6. Breaking on accesses at multiple locations
10.14.7. Considerations when setting memory access breakpoints
10.14.8. See also
10.15. Setting breakpoints for location-specificdata values
10.15.1. Before you start
10.15.2. Breaking on the value of a globalvariable
10.15.3. Breaking on a value of a watched variable
10.15.4. Breaking on a data value match withina range of addresses
10.15.5. Breaking in a function or range thatalso depends on a data value
10.15.6. See also
10.16. Setting breakpoints for location-independentdata values
10.16.1. Before you start
10.16.2. Setting a data only breakpoint
10.16.3. Breaking on a data value match witha modifier
10.16.4. Considerations when setting data only breakpoints
10.16.5. See also
10.17. Forcing the size of a software breakpoint
10.17.1. Procedure
10.18. Chaining hardware breakpoints
10.18.1. CLI command qualifiers used for chaining breakpoints
10.18.2. Converting existing individual hardwarebreakpoints to chained breakpoints
10.18.3. See also
10.19. Specifying processor exceptions (globalbreakpoints)
10.19.1. Procedure
10.20. Setting breakpoints on custom memorymapped registers
10.20.1. Before you start
10.20.2. Breaking on a custom memory mapped register
10.20.3. Breaking on a data value of a custom memorymapped register
10.21. Setting breakpoints from the breakpointhistory list
10.21.1. Procedure
10.22. Adding breakpoints to the breakpointhistory list
10.22.1. Procedure
10.23. Adding breakpoints to your FavoritesList
10.23.1. Before you start
10.23.2. Procedure
10.24. Creating new breakpoint favorites
10.24.1. Before you start
10.24.2. Procedure
10.25. Setting breakpoints from your FavoritesList
10.25.1. Procedure
11. Controlling the Behavior of Breakpoints
11.1. About controlling the behavior ofbreakpoints
11.1.1. Features for controlling breakpoint behavior
11.1.2. Considerations when using softwareconditions
11.1.3. Conditional hardware breakpoints
11.2. Updating windows and panes when abreakpoint activates
11.2.1. Updating specific windows and panes
11.2.2. Updating all windows and panes
11.3. Displaying user-defined messages whena breakpoint activates
11.3.1. Procedure
11.4. Setting the execution behavior fora breakpoint
11.4.1. Procedure
11.5. Setting breakpoints that test forhardware input triggers
11.5.1. Setting a hardware input trigger test
11.5.2. Resetting a hardware input triggertest
11.5.3. Hardware Support settings for RVISS
11.5.4. Hardware Support settings for an ARMarchitecture-based target
11.5.5. Hardware Support settingsfor a DSP-based debug target
11.6. Setting a breakpoint that activatesafter a number of passes
11.6.1. Procedure when using the generic breakpointdialog box
11.6.2. Procedure when using the Simple Breakif X, N times dialog box
11.6.3. Combining hardware and software passcounts
11.7. Setting a breakpoint that dependson the result of an expression
11.7.1. Procedure when using the generic breakpointdialog box
11.7.2. Procedure when using the Simple Breakif X, when Y is True dialog box
11.8. Setting a breakpoint that dependson the result of a macro
11.8.1. Attaching a macro as a command qualifier
11.8.2. Attaching a macro as a command argument
11.8.3. Attaching a macro toa global breakpoint
11.8.4. Considerations when using macros with breakpoints
11.8.5. See also
11.9. Setting a breakpoint that activatesfor a specific instance of a C++ class
11.9.1. Procedure
11.9.2. Demonstration
11.10. Example of breakpoint behavior
11.10.1. Procedure
11.10.2. Using a macro as an argument to abreak command
12. Examining the Target Execution Environment
12.1. About examining the target executionenvironment
12.1.1. Functions and variables
12.1.2. C++ classes
12.1.3. Registers
12.1.4. Memory
12.1.5. The Stack
12.1.6. The Call Stack
12.1.7. Watches
12.1.8. Saving a memory area to a file
12.2. Finding a function in your code
12.2.1. Finding public and static functions
12.2.2. Finding functions in the librariesused by an image
12.2.3. Viewing the functions of a module
12.2.4. Performing operations on functions fromthe Symbols pane
12.3. Displaying function information from theSymbols pane
12.3.1. Procedure
12.4. Displaying the list of variables inan image
12.4.1. Displaying variables
12.4.2. Displaying variables in the librariesused by an image
12.4.3. Viewing the variables for a module
12.4.4. Performing operations on variables fromthe Symbols pane
12.5. Viewing variables for the currentcontext
12.5.1. Displaying local variables for thecurrent context
12.5.2. Displaying static variables for thecurrent context
12.5.3. Displaying C++ thispointers for the current context
12.5.4. Formatting the display of values forindividual variables
12.5.5. Formatting the display of values forall variables
12.5.6. Toggling automatic updates of theCall Stack pane
12.5.7. Updating the values for individualvariables
12.5.8. Updating the values for all variableson request
12.5.9. Copying and pasting variables
12.6. Displaying information for a variable
12.6.1. Printing the value of a variable
12.6.2. Displaying type information for avariable
12.7. Viewing C++ classes
12.7.1. Displaying the properties of a classor a component of a class
12.7.2. Identifying the components of a classin the Classes pane
12.7.3. Finding a class definition in yoursource code
12.7.4. Operations you can perform on memberfunctions
12.8. Viewing registers
12.8.1. Examining registers in the Registerspane
12.8.2. Creating a customized register viewfor a connection
12.8.3. Formatting selected registers in the Registerspane
12.8.4. Formatting all registers in the Registerspane
12.8.5. Copying all registers in the currentregister view
12.8.6. Copying selected registers in thecurrent register view
12.8.7. Updating the register display
12.8.8. Viewing different registers
12.8.9. Viewing registers for multiple targets
12.8.10. Understanding the register view
12.8.11. Viewing debugger internals
12.9. Viewing memory contents
12.9.1. Examining memory in the Memory pane
12.9.2. Viewing memory at a specific address
12.9.3. Viewing the memory at a register value
12.9.4. Viewing memory associated with a variablein source code
12.9.5. Viewing memory at a variable valueby dragging and dropping
12.9.6. Viewing memory at the destinationof a branch instruction
12.9.7. Viewing memory at a watch variable
12.9.8. Viewing memory at a previous startaddress
12.9.9. Viewing memory by re-evaluating aC/C++ expression
12.9.10. Viewing memory for multiple targets
12.9.11. Copying memory contents
12.9.12. Changing the data size for the memorycontents
12.9.13. Formatting the memory contents
12.9.14. Changing the number of columns displayed
12.9.15. Toggling automatic updates of theMemory pane
12.9.16. Updating the memory display on request
12.9.17. Performing timed updates for RealMonitorand OS-aware targets
12.9.18. Displaying the error code for memoryerrors
12.9.19. Display colors in the Memory pane
12.10. Viewing the Stack
12.10.1. Before you start
12.10.2. Examining the Stack
12.10.3. Viewing the Stack at a specified address
12.10.4. Viewing the Stack at an address containedin a selected Stack entry
12.10.5. Viewing the Stack at a previous startaddress
12.10.6. Viewing the symbol at a Stack address
12.10.7. Viewing the symbol at an address ina selected Stack entry
12.10.8. Viewing the Stack by re-evaluatinga C/C++ expression
12.10.9. Copying the contents of the Stack
12.10.10. Formatting the Stack contents
12.10.11. Changing the data size for Stack contents
12.11. Viewing the Call Stack
12.11.1. Examining the Call Stack
12.11.2. Copying a Call Stack entry
12.11.3. Toggling automatic updates of theCall Stack pane
12.11.4. Updating the Call Stack on request
12.11.5. Performing timed updates for RealMonitorand OS-aware targets
12.11.6. Displaying the properties of a CallStack entry
12.11.7. Operations you can perform on theCall Stack
12.12. Setting watches
12.12.1. Setting a watch variable
12.12.2. Setting a watch expression
12.12.3. Setting a watch by copying and pasting
12.12.4. Setting a watch by dragging and dropping
12.12.5. Setting a watch from the Symbols pane
12.12.6. Editing the name of an existing watch
12.12.7. Deleting a watch
12.13. Viewing watches
12.13.1. Examining watches in the Watch pane
12.13.2. Toggling automatic updates of theWatch pane
12.13.3. Updating the Watch pane on request
12.13.4. Updating individual watches on request
12.13.5. Performing timed updates for RealMonitorand OS-aware targets
12.13.6. Formatting the display of values forindividual watches
12.13.7. Formatting the display of values forall watches
12.13.8. Recomputing an Expression with sameContext
12.13.9. Copying a watch
12.13.10. Displaying the properties of a watch
12.14. Adding a watch to your Favorites List
12.14.1. Adding watches
12.14.2. Adding data values
12.15. Creating a new watch favorite
12.15.1. Procedure
12.16. Setting a watch from your FavoritesList
12.16.1. Procedure
12.17. Saving memory contents to a file
12.17.1. Procedure
12.17.2. Considerations when saving memory contents to a file
12.17.3. See also
12.18. Comparing target memory with the contentsof a file
12.18.1. Before you start
12.18.2. Procedure
12.18.3. See also
12.19. Displaying information in a user-definedwindow
12.19.1. Opening a user-defined window
12.19.2. Closing a user-defined window
12.19.3. Clearing a user-defined window
12.19.4. See also
12.20. Saving information to a user-definedfile
12.20.1. Opening a user-defined file
12.20.2. Closing a user-definedfile
12.20.3. See also
12.21. Displaying a list of open user-definedwindows and files
12.21.1. Procedure
13. Altering the Target Execution Environment
13.1. About altering the target executionenvironment
13.1.1. Basic steps required for altering the target executionenvironment
13.2. Changing the value of a register
13.2.1. Before you start
13.2.2. Changing the value of a register
13.2.3. Setting registers with the InteractiveRegister Setting dialog box
13.2.4. Copying and pasting a selected registervalue
13.2.5. Changing values for the CPSR and SPSRregisters
13.2.6. Changing values for the CP15 Controlregister
13.2.7. Dragging and dropping expressionsinto register contents
13.2.8. Changing debugger internals
13.3. Changing memory contents
13.3.1. Before you start
13.3.2. Changing the value in a memory location
13.3.3. Setting memory with the InteractiveMemory Settings dialog box
13.3.4. Filling memory with a pattern
13.3.5. Changing memory contents from theStack pane
13.3.6. Operations you can perform on memory cells
13.4. Changing the data width on memoryaccesses
13.5. Loading the contents of a file intomemory
13.5.1. Before you start
13.5.2. Procedure
13.5.3. See also
13.6. Changing the stack pointer
13.6.1. Before you start
13.6.2. Procedure
13.7. Changing the value of a watch
13.7.1. Before you start
13.7.2. Setting a watch value using in-placeediting
13.7.3. Setting a watch value from the DataValues Favorites List
13.7.4. Operations you can perform on watchvalues
14. Debugging with Command Scripts
14.1. About debugging with command scripts
14.1.1. Logging and journaling
14.1.2. Command scripts
14.1.3. Macros
14.2. Changing output buffering behavior
14.3. Creating a log file for use as a commandscript
14.3.1. Procedure
14.4. Creating log and journal files atstart-up
14.5. Closing log and journal files
14.5.1. Procedure
14.6. Using macros in command scripts
14.7. Running command scripts
14.7.1. Before you start
14.7.2. Running command scripts from the GUI
14.7.3. Running command scripts from the commandline
14.7.4. Referencing command scripts from othercommand scripts
14.8. Creating a script that writes informationto a user-defined window
14.8.1. Procedure
14.8.2. CLI commands that support user-definedwindow IDs
14.9. Creating a script that accesses auser-defined file
14.9.1. Procedure
14.9.2. CLI commands that support user-definedfile IDs
14.9.3. Predefined macros that support user-definedfile IDs
15. Using Macros for Debugging
15.1. About using macros for debugging
15.1.1. What is a macro?
15.1.2. Properties of macros
15.2. Creating a macro
15.2.1. Creating a macro with the RealView Debugger GUI
15.2.2. Creating a macro in a text file directly
15.2.3. Using CLI commands in macros
15.2.4. Macro return values
15.3. Loading user-defined macros
15.3.1. Loading a user-defined macro
15.3.2. Reloading a user-defined macro
15.3.3. Loading macros on connection
15.4. Running a macro
15.5. Editing a macro
15.5.1. Procedure
15.5.2. Editing the example tutorial() macro
15.6. Copying a macro
15.6.1. Procedure
15.7. Viewing a macro
15.8. Deleting a macro
15.8.1. Procedure
15.9. Using macros in combination with other commands
15.9.1. Using an alias to run a macro
15.9.2. Redirecting macro output to a user-definedwindow or file
15.9.3. Attaching a macro to the GO command
15.9.4. Using a macro when stepping
15.9.5. Attaching a macro to a global breakpoint
15.9.6. Attaching a macro to a breakpoint
15.9.7. Limitations of using macros with otherentities
15.10. Stopping execution of a macro
16. Configuring Workspace Settings
16.1. About workspace settings
16.2. Initializing the workspace
16.2.1. Start-up options
16.3. Opening workspaces
16.3.1. Opening a workspace
16.3.2. Opening a workspace from the RecentWorkspaces list
16.3.3. Using the same workspace on startup
16.3.4. Considerations when opening workspaces
16.4. Closing workspaces
16.4.1. Procedure
16.4.2. Considerations when closing workspaces
16.5. Creating an empty workspace
16.5.1. Procedure
16.6. Saving workspaces
16.6.1. Saving the current workspace settings
16.6.2. Saving the current workspace settingsto a new file
16.6.3. Saving workspace settings on exit
16.7. Viewing workspace settings
16.7.1. Viewing the current workspace settings
16.7.2. Viewing the global configuration settings
16.7.3. Workspace file references
16.7.4. List of Entries pane
16.7.5. Settings Values pane
16.8. Configuring workspace settings
16.8.1. Restoring the factory settings
16.8.2. Changing settings
16.8.3. Resetting entries
16.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. Pos_size
A.2.2. Button
A.2.3. Asm_type
A.3. ALL
A.3.1. Text
A.3.2. Search
A.3.3. Edit
B. Configuration Files Reference
B.1. Overview
B.2. Files in the etc 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 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 more than one 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.4. Converting legacy AXD scripts to RealView Debugger format
C.4.1. axd2rvd command syntax
D. Moving from armsd to RealView Debugger
D.1. Comparison of RealView Debugger and armsdcommands
D.2. Converting legacy armsd scripts to RealView Debugger format
D.2.1. armsd2rvd command syntax
E. RealView Debugger on Sun Solaris and 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. X-Windows configuration change requiredon Sun Solaris
E.4. Changes to target configuration details
E.4.1. Default configuration files
E.4.2. Target configuration entries
E.5. Changes to GUI and general user information
E.5.1. Managing RDI components
E.5.2. Column resizing
E.5.3. Saving favorites

List of Figures

1.1. RealView Debugger windows and panes
1.2. Breakpoint activation flow diagram
2.1. Prompt to update configuration files
2.2. Prompt to rebuild the rvdebug.brdfile
3.1. Example Connection Control window
3.2. Target Access interfaces in the ConnectionControl window
3.3. Open Target Access
3.4. MaxSim model connection in ConnectionControl window
3.5. Additional connection controls
3.6. Interactive Register Setting dialogbox
3.7. Connection information in the Codewindow title bar
3.8. Active connection list
3.9. Failing to make a connection
4.1. Select Local File to Load dialogbox
4.2. Code window with image loaded
4.3. Image details in the Process Controlpane
4.4. Load Binary dialog box
4.5. Multiple images in the Process Controlpane
4.6. Connection prompt
4.7. Unload Image dialog box
4.8. Unloaded image
4.9. Deleted image
4.10. Disassembly Mode selection box
4.11. Settings Window
4.12. The line number workspace setting
4.13. Source Search Paths dialog box
4.14. Source search path list
4.15. New Mapping dialog box
4.16. Source Mapping tab
4.17. Source File Location dialog box
4.18. Source Mapping tab
5.1. Flash Memory Control dialog box
5.2. Flash information
5.3. Flash Memory Control dialog box withmultiple blocks selected
5.4. Flash block details
6.1. The relationship of one Code windowto a processor
6.2. Creating a second connection to thetarget
6.3. Creating multiple connections andviews on the target
6.4. Creating a connection to an OS-awaretarget
6.5. User halt stopping skid
6.6. Breakpoint stopping skid using hardwaresynchronization
6.7. Breakpoint stopping skid using softwaresynchronization
6.8. Active connections list showing attachedconnection
6.9. RealView ICE connection in the ConnectionControl window
6.10. The Synchronization Controls
6.11. Synchronization Control window
6.12. Synchronization Control window showingsynchronized processors
6.13. Synchronization Control window showingcross-triggering controls
6.14. Synchronization Control window
6.15. Cross-triggering controls
6.16. Connection Properties window
6.17. ECT.bcd file assigned to a connection
6.18. ECT.bcd settings
6.19. ECT tab
6.20. Defining shared memory regions
6.21. Example of a shared memory configuration
6.22. Editing the memory block in the CP Board/Chipdefinition file
7.1. Disabled memory map
7.2. Default memory map
7.3. Example of a memory map
7.4. Colors in the memory map
7.5. Memory map with an image loaded
7.6. Default memory map
7.7. Add/Copy/Edit Memory Map dialog box
7.8. Example of a memory map
7.9. Connection Properties window
7.10. CP.bcd file assigned to a connection
7.11. CP.bcd and CM966ES.bcd files assignedto a connection
7.12. Integrator/CP and ARM966E-S memorymap
7.13. CP and CM966ES tabs in the Registerspane
7.14. Default memory map
8.1. Symbols pane
8.2. List of functions
8.3. Example Call Stack pane for dhrystone
9.1. Symbols pane
9.2. Functions in the dhrystone.axf image
9.3. Set PC to a function
9.4. Symbols pane
9.5. Modules in the dhrystone.axf image
9.6. Scope to a module
9.7. Disassembly view showing branch instructions
9.8. Scope set to branch destination
9.9. Call to Proc_8() function
9.10. Scope shown in Proc_8() function
9.11. Symbols pane
9.12. Functions in the dhrystone.axf image
9.13. Scope to a function
9.14. Classes pane
9.15. Stopped at breakpoint in Proc_8()function
9.16. Call Stack pane
9.17. Stopped at breakpoint in Proc_8()function
9.18. Call Stack pane
9.19. Line/Address List Selection dialogbox
10.1. Breakpoint showing downward pointingarrows
10.2. Breakpoint icon in the code view
10.3. Simple Break if X dialog box
10.4. Breakpoint in the Break/Tracepointspane
10.5. Breakpoint in the Break/Tracepointspane
10.6. Breakpoints in the Break/Tracepointspane
10.7. Breakpoint in the Break/Tracepointspane
10.8. Breakpoint entry expanded
10.9. Full breakpoint details
10.10. Breakpoint in the Break/Tracepointspane
10.11. Edit Breakpoint dialog box
10.12. Breakpoint in the Break/Tracepointspane
10.13. Copy Breakpoint dialog box
10.14. Breakpoint in the Break/Tracepointspane
10.15. Locating a breakpoint
10.16. Example hardware break characteristics
10.17. Break/tracepoint pane
10.18. Source code view
10.19. Breakpoint type selection dialogbox
10.20. Setting an unconditional breakpointon a line
10.21. Multiple breakpoint units on a singleline
10.22. Setting an unconditional breakpointon an instruction
10.23. Classes pane
10.24. Breakpoint type selection dialogbox
10.25. Function Breakpoint/Profile Selectordialog box
10.26. Example Stack pane
10.27. HW break if X, then if Y dialog box
10.28. Chained breakpoints
10.29. HW Break if in Range dialog box
10.30. HW While in func/range, Break ifX dialog box
10.31. Chained breakpoint
10.32. HW Break on Data Value match dialogbox
10.33. Processor Exceptions List Selectiondialog box
10.34. Simple Break if X dialog box
10.35. Register List Selection dialog box
10.36. Break/Tracepoint pane
10.37. Breakpoint history list dialog box
10.38. Breakpoint set with a CLI command
10.39. Breakpoint added to the breakpointhistory list
10.40. New/Edit Favorite dialog box
10.41. Favorites/Chooser Editor dialog box
11.1. Breakpoint behavior controls
11.2. Add Action dialog box
11.3. The breakpoint action list
11.4. Breakpoint with an action assigned
11.5. Breakpoint behavior controls
11.6. Add Action dialog box
11.7. The breakpoint action list
11.8. Breakpoint behavior controls
11.9. Breakpoint behavior controls
11.10. Breakpoint behavior controls
11.11. Add Condition dialog box
11.12. Breakpoint with a condition assigned
11.13. Simple Break if X, N times dialogbox
11.14. Breakpoint behavior controls
11.15. Add Condition dialog box
11.16. Simple Break if X, when Y is Truedialog box
12.1. Symbols pane
12.2. List of functions
12.3. List of modules
12.4. Symbols pane
12.5. List of variables
12.6. List of modules
12.7. Locals tab in the Call Stack pane
12.8. Call Stack pane
12.9. Statics tab in the Call Stack pane
12.10. This tab in the Call Stack pane
12.11. Symbols pane
12.12. List of variables
12.13. Classes pane
12.14. Components of class entries in the Classespane
12.15. Find In Files dialog box
12.16. Registers pane
12.17. Registers pane
12.18. Registers changed since the lastupdate
12.19. Registers changed at the previousupdate
12.20. Customized register view
12.21. Registers for an Integrator/CP andARM966E-S debug target
12.22. Viewing registers
12.23. Viewing CycleCount tab (RVISS)
12.24. Viewing internal variables (RealViewICE)
12.25. Viewing Semihost tab (RVISS)
12.26. Specifying semihosting (RealViewICE)
12.27. Memory pane
12.28. Memory start address selection box
12.29. Memory pane showing address contents
12.30. Memory view at a register address
12.31. Prompt for number of columns to display
12.32. Prompt for timed update interval
12.33. Viewing the stack
12.34. Start address dialog box
12.35. Expression Pointer in the Stack pane
12.36. Symbol at a Stack address
12.37. Symbol at address in a selected Stackentry
12.38. Call Stack pane
12.39. Multistatement details in the CallStack pane
12.40. Multistatement details in the CallStack pane
12.41. Prompt for timed update interval
12.42. Properties of a Call Stack entry
12.43. Watch expression dialog box
12.44. Watch pane with watches
12.45. Prompt for timed update interval
12.46. Watch properties
12.47. Watch Expressions Favorites List
12.48. Adding a new watch favorite
12.49. Watch favorite added
12.50. The Data Values Favorites List
12.51. Adding a new watch value favorite
12.52. Watch value favorite added
12.53. Watch Expressions Favorites List
12.54. New/Edit Favorite dialog box
12.55. Watch favorite added
12.56. Watch Expressions Favorites List
12.57. Upload/Download file from/to Memorydialog box
12.58. User-defined window
13.1. Registers pane
13.2. In-place editing of a register
13.3. Interactive Register Setting dialogbox
13.4. Register set in Interactive RegisterSetting dialog box
13.5. CPSR register view
13.6. PSR dialog box
13.7. CPSR register for the ARM1136JF-S
13.8. PSR dialog box for the ARM1136JF-S
13.9. CPSR register for the Cortex-A8
13.10. PSR dialog box for the Cortex-A8
13.11. ARM1136JF-S CP15 Control registerin Registers pane
13.12. CP15 Control dialog box
13.13. Memory pane showing address contents
13.14. Memory value dialog box
13.15. Memory pane showing changed value
13.16. Example memory display
13.17. Memory updated
13.18. Memory updated
13.19. Memory updated
13.20. Interactive Memory Setting dialogbox
13.21. Memory set in Interactive MemorySetting dialog box
13.22. Fill Memory with Pattern dialog box
13.23. Upload/Download file from/to Memorydialog box
13.24. Registers pane
13.25. In-place editing of the SP register
13.26. Stack pane for new SP register address
13.27. The Data Values Favorites List
14.1. Status line indicating an open logfile
14.2. Status line indicating open log andjournal files
14.3. Close log and journal files selectionbox
15.1. Creating a macro
15.2. Loading macros on connection
16.1. Close Open Objects selection dialogbox
16.2. Workspace Options window
16.3. Options window
16.4. Example Workspace Options
E.1. Remote entries in the ConnectionProperties window
E.2. Column resizing in the Watch pane
E.3. 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.


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 RealView Debugger v1.5 release
Revision B September2002 RealView Debugger v1.6 release
Revision C February2003 RealView Debugger v1.6.1 release
Revision D September2003 RealView Debugger v1.6.1 release for RVDSv2.0
Revision E January2004 RealView Debugger v1.7 release for RVDS v2.1
Revision F December2004 RealView Debugger v1.8 release for RVDS v2.2
Revision G May2005 RealView Debugger v1.8 SP1 release for RVDSv2.2 SP1
Revision H March 2006 RealViewDebugger v3.0 release for RVDS v3.0
Copyright © 2002-2006 ARM Limited. All rights reserved. ARM DUI 0153H