Codescape Debugger

Codescape Debugger is Imagination’s bespoke debug environment for heterogeneous SoC
development. It has recently undergone a major overhaul to include many new features for native debugging of MIPS targets and other IP from Imagination. From Codescape Debugger you can simultaneously debug MIPS CPU cores, as well as Ensigma communications RPU cores in a single environment, with more heterogeneous processing features coming soon.
Download our factsheet from here

  • Simultaneous multiple debug adapter connections to multi-SoC, multi-core,
    multi-VPE with multi-OS task support
  • OS-aware debug support for Linux®, ThreadX®, Nucleus™, Free RTOS and MEOS™
  • Ultra-fast debugging performance using intelligent, low latency probes
    (< 1 sec step with multiple connections, VPEs, TCs & threads. > 1 MByte/sec binary load).
  • Configurable debug regions
  • Python scripting support
  • Run external tools such as make and user scripts at a key press
  • Ensigma RPU support – fully-featured MCP core debugging
  • Powerful and cost-effective system for all members of the SoC and application development team
  • Single IDE for the entire development cycle
  • Mature solutions that minimize design risk and reduce time to market
  • Proven technology used by major SoC manufacturers
  • IP evaluation
  • SoC design
  • SoC bring-up
  • Driver development
  • Application development
  • Code optimization

Host Environments


Debug Environments


Codescape Debugger forms the hub of a system that facilitates all stages of development alongside a low-level command-line console, built-in scripting, intelligent debug probes, emulators and simulators.

For pre-hardware application development, Codescape Debugger works with the MIPS Instruction Accurate Simulator (IASim) and QEMU emulator. For silicon bring-up, application development, and testing on real hardware, Codescape Debugger can connect to Imagination’s range of debug probes supporting JTAG, cJTAG and EJTAG equipped targets. Host connection via USB or Ethernet enables remote debugging across networks.

Development System


Codescape Debugger is driven from its own powerful GUI, running natively on 32-bit and 64-bit Windows, Linux and Mac OS hosts. For fast, efficient debugging, it provides a host of useful debug views and features such as editable memory, drag and drop between views and real-time OS-aware debugging. For more advanced product development, Codescape Debugger has many state-of-the-art features such as built-in graphical scripting, a fully-annotated memory mapped peripheral inspector, real-time event tracing and support for multi-SoC, multi-core, multi-VPE and multi-OS task development and debugging.

Simultaneously connect to a variety of multi-VPE and multi-core real and simulated targets debugging multiple OSes.

Use advanced in-built graphical scripting for data visualisation. This example shows event profiling on an Ensigma RPU.

View task swaps between threads with native RTOS-aware debugging.


What Codescape Debugger Can Debug

Codescape Debugger has been designed from the ground up to have multiple connections to multiple, heterogeneous, multi-core SoCs with hardware threads, virtual processors (VPEs), hardware thread contexts (TCs), and multiple software threads.
Codescape Debugger's user interface

Linux Application Debug

Linux applications can be debugged via gdbserver running on Linux on the target. Connecting to gdbserver over a specified port, Codescape Debugger displays gdbserver as a target, and when debugging Linux user code with multiple threads, each pthread can be debugged just like a core.


The MIPS Toolkit and Codescape Debugger provide support for semihosting functions from a target via a built-in API in the toolkit. The Codescape Debugger allows you to set a root directory for semi-hosting operations so that programs running on a target can use relative address pathing for file operations. No additional libraries or function calls are required. Semihosting operations supported include file operations such as fopen, fwrite, fread and fclose and outputs such as stdout, stderr and printf.

Debug Regions

Codescape Debugger provides a host of useful debugging regions to display data, and using the extensive scripting support you can create bespoke regions and plug-ins to display your data in unique ways. Regions can be tied to specific threads, or the current thread, can be docked, floating or stacked in tabbed groups. Data can be dragged between regions and targets using intelligent, contextual drag-and-drop.


Fully featured syntax highlighted editor.

Hex Editor

Edit and display binaries in many formats.


Can show interleaved source and disassembly.


Layout is user definable and can display in different radices/formats.


Can unwind through interrupt handlers. Uses code reading and debug info.


Shows all types of memory (RAM, DSP, CORE etc) in many different formats.


Shows breakpoint state for all, current, or specific threads.


Watch and edit values of variables or complex expressions.

Local Watch

Automatically populated with variables in the current scope.

Peripheral Watch

Populated with the peripheral registers. Bit fields shown/edited as mnemonics.

RTOS Watch

Automatically populated with RTOS data e.g. threads, mutexes, block pools

RTOS Trace

Graphically displays the Task execution captured by the RTOS.


Displays all TLB in Raw or Decoded format.


Displays the ICache in a human readable format.


Displays the DCache in a human readable format.


Create your own region using wxWidgets & Python.


VT100 emulator. Stream output to file.


Low impact PC capture. Data shown next to code.

Realtime Trace

Graphical representation of Real Time Trace data.

Trace Results

Setup and display data from the MIPS PDTrace system.


Shows the current status of Overlays.


Make Manager

Codescape Debugger’s Make Manager provides a quick and simple way to call ‘make’ and see your build log without exiting the Codescape Debugger. Multiple configurations for ‘make’ can be specified with individually-specified parameters for each configuration.

Imagination supplies an advanced, Python-based, scripting interface and command-line console, Codescape Console, that enables direct access to Imagination’s debug probes from your host PC without using the Codescape Debugger user interface. This provides an ultra-low-level, non-intrusive, scripting layer that is ideal for target bring-up and allows you to perform such tasks as read/write memory and registers, or manually control JTAG signals, with very predictable impact on the target.
In addition to this external scripting environment, Codescape Debugger has its own internal, fully-configurable, script region that supports standard wxPython to enable advanced graphical scripting for data visualisation, input/output device emulation, and the creation of bespoke debug regions.
Codescape scripting and profiling
Statistical profiling data, with variable sample rate, can be displayed alongside the standard Source and Disassembly regions.

Trace Results Region

The Trace Results Region reads trace data saved by MIPS’ PDTrace on-chip tracing hardware. The data captured is configurable and includes processor-specific information captured from each pipeline and from non-processor-specific blocks such as the Coherence Manager block in a Coherent Multi-Processor system.
trace profiling

RTOS Trace Region

Codescape Debugger supports debug and trace of several common realtime operating systems, including ThreadX, FreeRTOS and MEOS. The RTOS Watch region reads, formats, and displays system variables in use by real-time operating systems, and the RTOS Trace region reads, processes, and displays thread execution order and duration.
RTOS trace

Codescape Debugger is provided as part of the Codescape MIPS SDK Professional.
For further information please click here.

Debug probes, customer support and user forums and can be found on the MIPS Insider page.

A range of approved development boards and vendor details are available at