ARM® Profiler User Guide

Version 2.0

Table of Contents

About this book
Intended audience
Using this book
Typographical conventions
Further reading
Feedback on the ARM Profiler
Feedback on this book
1. Introduction
1.1. About the ARM Profiler
1.2. Availability and compatibility
1.3. System Requirements
1.4. Licensing
1.5. Getting help
2. Getting Started with the ARM Profiler
2.1. How to use this tutorial
2.2. Opening the ARM Workbench
2.3. Importing the xvid example
2.4. Re-building the project
2.5. Profiling using a Real-Time System Model
2.6. Stopping the execution using the live update view
2.7. Examining the new analysis file
3. Data Collection Using RealView Trace 2
3.1. Required items
3.2. Opening hardware preferences within the ARM Workbench
3.3. Setting the target connection options
3.3.1. Setting the sampling rate
3.3.2. Setting the port size
3.3.3. Setting the run control
3.3.4. Choosing hardware using the connection selector
3.3.5. Enabling and disabling safe mode
3.3.6. Resetting the target before download
3.4. Setting the application options
3.4.1. Setting the working directory on the host
3.4.2. Enabling semihosting
3.4.3. Setting the image file
3.5. Setting up scripts
3.5.1. Creating a script file
3.6. Setting profiling options
3.6.1. Enabling and disabling profiling
3.6.2. Enabling and disabling full live update
3.6.3. Enabling and disabling program trace collection
3.6.4. Naming the analysis file
3.6.5. Setting an execution time limit
3.6.6. Adding extra commands
3.7. Exporting a launch script
3.8. Executing the run configuration
3.9. Hardware profiling restrictions
3.10. Hardware profiling execution speed
4. Data Collection Using a Real-Time System Model
4.1. Overview
4.2. Using the ARM compilation tools in the ARM Workbench
4.3. Creating a profiling-enabled RTSM run configuration
4.4. Setting the Real-Time System Model options
4.5. Setting the application options
4.5.1. Setting the working directory
4.5.2. Enabling semi-hosting and VFP
4.5.3. Choosing image files
4.6. Setting the profiling options
4.6.1. Enabling profiling
4.6.2. Enabling full live update
4.6.3. Naming the analysis file
4.6.4. Setting the execution time limit
4.6.5. Adding extra commands
4.7. Running the configuration
4.8. Enabling profiling outside of the ARM Workbench
4.8.1. Using the export script command
5. The Analysis Summary
5.1. Analysis summary overview
5.2. Opening an analysis summary
5.3. Analysis summary elements
5.3.1. Navigation
5.3.2. Information section
5.3.3. The code coverage pie charts
5.3.4. The call chains by stack depth chart
5.3.5. The top five bar charts
5.4. Live update
5.4.1. Live update summary
5.4.2. Memory accesses
5.4.3. Interrupts
5.4.4. The live update bar and pie charts
5.4.5. The live update function report
6. The Table Reports: Functions, Files, Classes, and Call Chains
6.1. Table report basics
6.1.1. Opening a table report
6.1.2. Table report column headers
6.1.3. The totals panel
6.1.4. The statistical type drop-down menu
6.1.5. Selecting columns to display
6.1.6. Sorting data
6.1.7. Exporting table data
6.1.8. The outline view
6.2. Navigating to other reports
6.2.1. Contextual menus
6.2.2. Toolbar navigation options
6.3. The functions report
6.4. The classes report
6.5. The files report
6.6. The call chains report
6.6.1. Navigating the call chains report's hierarchical table
6.6.2. Call chains link notes
6.6.3. Call chains report filtering
7. The Code View
7.1. Overview
7.2. Navigating to the code view
7.2.1. Navigating to the code view using the bar charts
7.2.2. Navigating to the code view from the other reports
7.3. Basic code view functionality
7.3.1. Selection behavior
7.3.2. Adjusting views
7.3.3. The find command
7.4. The source view
7.4.1. Locating source files
7.4.2. Source view column headers
7.5. The disassembly view
7.5.1. Disassembly view column headers
7.5.2. Code view totals panel
7.6. The program trace view
7.6.1. Program trace view basics
7.6.2. Trace view column headers
7.6.3. Program trace view menu options
7.6.4. Program trace view contextual menu options
7.6.5. Trace breakpoint view
7.6.6. Trace stack view
8. The Call Graph
8.1. Overview
8.2. Opening a call graph
8.3. Call graph layout
8.3.1. How the hierarchy is built
8.3.2. Caller and callee bullets
8.4. The mini-map
8.5. Color coding
8.6. Selection behavior
8.7. Contextual menu options
8.7.1. Showing system and uncalled functions
8.7.2. The caller and callee menu options
8.7.3. Contextual menu selection options
8.7.4. Contextual menu navigation options
8.8. The toolbar
8.9. The outline view
9. The Call Summary
9.1. Call summary breakdown
9.2. Function box statistics
9.2.1. Basic statistical fields
9.2.2. Instances: the x of y (z total) notation
9.3. Filtering instances
9.4. Call summary navigation
9.4.1. The outline view
9.5. Navigating to other report types
9.5.1. Navigating using the toolbar
9.5.2. Navigating using the contextual menus
10. Merging Analysis Files
10.1. Reasons to merge analysis files
10.2. Analysis file compatibility
10.3. How to merge analysis files
11. Preferences
11.1. Accessing the ARM Profiler color preferences
11.2. Color preference descriptions
12. Profiling Applications Running on the Symbian OS
12.1. Building the ARM Profiler Symbian OS kernel extension
12.2. Building Symbian OS applications
12.3. Profiling your Symbian OS application
A. Using the Command Line
A.1. Configuring your system for running the ARM Profiler on the command line
A.2. Command line options
B. Keyboard shortcuts
B.1. Table report keyboard shortcuts
B.2. Code view keyboard shortcuts
B.3. Call graph keyboard shortcuts
B.4. Call summary keyboard shortcuts
C. Troubleshooting guide
C.1. Troubleshooting steps

List of Figures

2.1. Welcome window
2.2. The ARM Workbench
2.3. The Import Dialog
2.4. The import project dialog
2.5. The Browse For Folder dialog
2.6. The updated Import dialog
2.7. The Console view
2.8. Running on the ARM 1136 EB RTSM
2.9. Live update
2.10. The summary report
3.1. A New RealView Trace 2 Run Configuration
4.1. Choosing a Pre-configured Run Configuration
4.2. A New ARM RTSM Run Configuration
5.1. A sample analysis summary
5.2. The Remove Filtering Link
5.3. Sample code coverage pie charts
5.4. The stack depth histogram
5.5. The Top Five Bar Charts
5.6. The live update summary
5.7. The memory accesses live update graph
5.8. The interrupts live update graph
5.9. The live update bar and pie charts
5.10. The live update function report
6.1. The Navigation Section of the Summary
6.2. Choosing Report Columns
6.3. A Multi-level Sort
6.4. The Export File Dialog
6.5. The outline view
6.6. A Functions Report's Toolbar Navigation
6.7. The hierarchical call chains display
7.1. The Code View
7.2. A Selection Indicator
7.3. The Source View
7.4. An Empty Source View
7.5. The Locate Source Dialog
7.6. The Disassembly View
7.7. The code view with trace collection enabled and the sampling rate set to a value greater than 1
7.8. The program trace view with a cycle accurate capture
7.9. Trace-specific menu options
7.10. The trace breakpoints view
7.11. The trace stack view
8.1. The Call Graph
8.2. A Simple Call Hierarchy
8.3. A Call Hierarchy with Multiple Call
8.4. Caller Bullets
8.5. The Call Graph Mini-map
8.6. A Selected Function
9.1. The Call Summary
9.2. The xvid_decore Primary Function
9.3. The dec_init Calling Function
9.4. Filter, Including Children
9.5. A single filter
10.1. Merging Analysis Data
11.1. Color Preferences Window

Proprietary Notice

Words and logos marked with ® or ™ are registered trademarks or trademarks of ARM Limited 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 Limited 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.

Unrestricted Access is an ARM internal classification.

Product Status

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

Revision History
Revision AOctober 2007Release Version 1.0
Revision BMarch 2008Release Version 1.1
Revision CSeptember 2008Release Version 2.0


ARM Profiler User Guide. Provides instructional documentation for real-time, non-intrusive analysis of applications using the ARM Workbench IDE together with RealView ICE and RealView Trace 2 hardware. Available as PDF.

Copyright © 2007, 2008 ARM Limited. All rights reserved.ARM DUI 0414C