About this book

This book describes the Iris interface for debug and trace on Fast Models and other targets. Iris defines a generic function call mechanism, an object model, and a set of concrete functions for debug and trace.

Using this book

This book is organized into the following chapters:

Chapter 1 Iris overview

This chapter describes the purpose and implementation of Iris.

Chapter 2 Iris examples

This chapter describes the examples of Iris clients, plug-ins, and Python scripts. Each client and plug-in example contains source code and a makefile for GCC or project file for Microsoft Visual Studio.

Chapter 3 Generic function call interface

Iris interfaces are named functions that receive named arguments. The functions mostly receive and return structured data as objects that contain named values. In case of an error, they return an error code. This chapter describes how to access Iris interfaces from C++ or using IPC/TCP.

Chapter 4 Object model

Iris provides an object model in which all entities are represented by instances. Instances can discover other instances and can call functions on each other. For example, a debugger can read a register in a CPU model, and the CPU model can send trace data to the debugger. Both debugger and model are instances.

Chapter 5 Iris APIs

This chapter describes the Iris APIs. It provides conceptual information for each API, followed by detailed reference information for each function, object, and event source in the API.

Chapter 6 Response error codes

This chapter describes the error codes that Iris defines. These are in addition to those defined in the JSON-RPC 2.0 specification.


The Arm® Glossary is a list of terms used in Arm documentation, together with definitions for those terms. The Arm Glossary does not contain terms that are industry standard unless the Arm meaning differs from the generally accepted meaning.

See the Arm® Glossary for more information.

Typographic conventions

Introduces special terminology, denotes cross-references, and citations.
Highlights interface elements, such as menu names. Denotes signal names. Also used for terms in descriptive lists, where appropriate.
Denotes text that you can enter at the keyboard, such as commands, file and program names, and source code.
Denotes a permitted abbreviation for a command or option. You can enter the underlined text instead of the full command or option name.
monospace italic
Denotes arguments to monospace text where the argument is to be replaced by a specific value.
monospace bold
Denotes language keywords when used outside example code.
Encloses replaceable terms for assembler syntax where they appear in code or code fragments. For example:
MRC p15, 0, <Rd>, <CRn>, <CRm>, <Opcode_2>
Used in body text for a few terms that have specific technical meanings, that are defined in the Arm® Glossary. For example, IMPLEMENTATION DEFINED, IMPLEMENTATION SPECIFIC, UNKNOWN, and UNPREDICTABLE.


Feedback on this product

If you have any comments or suggestions about this product, contact your supplier and give:

  • The product name.
  • The product revision or version.
  • An explanation with as much information as you can provide. Include symptoms and diagnostic procedures if appropriate.
Feedback on content

If you have comments on content then send an e-mail to mailto:errata@arm.com. Give:

  • The title Iris Developer Guide.
  • The number 101196_0100_03_en.
  • If applicable, the page number(s) to which your comments refer.
  • A concise explanation of your comments.

Arm also welcomes general suggestions for additions and improvements.


Arm tests the PDF only in Adobe Acrobat and Acrobat Reader, and cannot guarantee the quality of the represented document when used with any other PDF reader.

Other information

Non-ConfidentialPDF file icon PDF version101196_0100_03_en
Copyright © 2018, 2019 Arm Limited or its affiliates. All rights reserved.