ARM® Profiler User Guide

Version 2.1.1


Table of Contents

Preface
About this book
Intended audience
Using this book
Typographical conventions
Further reading
Feedback
Feedback on the ARM Profiler
Feedback on this book
1. Introduction
1.1. About the ARM Profiler
1.2. Availability and compatibility
1.3. Installation
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 connection options
3.3.1. Changing the connection type
3.3.2. Choosing hardware using the connection selector
3.3.3. Setting the port size
3.3.4. Enabling and disabling safe mode
3.3.5. Resetting the target before image transfer
3.3.6. Setting up scripts
3.3.7. Enabling semihosting
3.3.8. Auto-calibrate timings and using a TPIU pattern generator
3.3.9. Adding additional launcher options
3.4. Setting the image options
3.4.1. Setting the working directory on the host
3.4.2. Setting the image file
3.5. Setting profiling options
3.5.1. Enabling and disabling profiling
3.5.2. Naming the analysis file
3.5.3. Setting the sample rate
3.5.4. Setting the core clock speed
3.5.5. Setting an execution time limit
3.5.6. Enabling instruction trace replay
3.5.7. Enabling ARM Profiler to generate ETM context IDs
3.5.8. Enabling and disabling full live update
3.5.9. Generating Profiler Guided Optimization Data
3.6. Exporting a launch script
3.7. Executing the run configuration
3.8. Hardware profiling restrictions
3.9. 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 connection options
4.4.1. Setting model parameters
4.4.2. Enabling semihosting
4.4.3. Adding additional launcher options
4.5. Setting the image options
4.5.1. Setting the host working directory
4.5.2. Choosing image files
4.6. Setting the profiling options
4.6.1. Enabling profiling
4.6.2. Naming the analysis file
4.6.3. Setting the execution time limit
4.6.4. Enabling and disabling instruction trace replay
4.6.5. Enabling full live update
4.6.6. Enabling disk backlogging
4.6.7. Generating Profiler Guided Optimization Data
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. Overall analysis 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.3.6. The Timeline
5.4. Live update
5.4.1. Progress section
5.4.2. Activity section
5.4.3. Graphs
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 and Replay Views
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 panel
7.4.1. Locating source files
7.4.2. Source panel column headers
7.5. The disassembly panel
7.5.1. Disassembly panel column headers
7.5.2. Code view totals panel
7.6. The replay view
7.6.1. Replay view basics
7.6.2. Replay view column headers
7.6.3. Replay view menu options
7.6.4. Replay view contextual menu options
7.6.5. Breakpoint view
7.6.6. 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 replay options
8.7.5. 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
13. Profiling Applications Running on Linux OS
13.1. Installing and patching the Linux kernel extension
13.2. Profiling your Linux 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. 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 Instructions Executed timeline graph
5.7. The Exceptions timeline graph
5.8. The Memory Accesses timeline graph
5.9. The Progress section
5.10. The Activity section
5.11. The live update graphs
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 Panel
7.4. An Empty Source Panel
7.5. The Locate Source Dialog
7.6. The Disassembly Panel
7.7. The replay view below the code view
7.8. The replay view with a cycle accurate capture
7.9. Trace-specific menu options
7.10. The breakpoints view
7.11. The 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”.

XVID Notice

THIS NOTICE IS FOR THE USE OF XVID. ARM IS ONLY DELIVERING XVID TO YOU FOR CONVENIENCE ON CONDITION THAT YOU ACCEPT THAT IT IS NOT LICENSED TO YOU BY ARM BUT THAT IT IS SUBJECT TO THE TERMS OF THE GNU GENERAL PUBLIC LICENSE VERSION 2 AND MAY BE SUBJECT TO OTHER PROPRIETARY LICENCES. YOU EXPRESSLY ASSUME ALL LIABILITIES AND RISKS WITH RESPECT TO YOUR USE AND DISTRIBUTION OF XVID.

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.1.1
Revision DMay 2009Release Version 2.1
Revision EMay 2010Release Version 2.1.1
Copyright © 2007- 2010 ARM Limited. All rights reserved.ARM DUI 0414E
Non-Confidential