Codescape Debugger

Codescape Debugger includes many new features for native debugging of MIPS targets.

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
  • 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

linuxwindowsmac-logo

Debug Environments

rtoslinuxmeosnucleusthreadx


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_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 visualization. This example shows event profiling on an Ensigma RPU from Imagination Technologies.

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

CodescapeMIPS-with-Interaptive-UCC-4

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.

Semihosting

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.

SourceFully featured syntax highlighted editor.
Hex EditorEdit and display binaries in many formats.
DisassemblyCan show interleaved source and disassembly.
RegisterLayout is user definable and can display in different radices/formats.
CallstackCan unwind through interrupt handlers. Uses code reading and debug info.
MemoryShows all types of memory (RAM, DSP, CORE etc) in many different formats.
BreakpointShows breakpoint state for all, current, or specific threads.
WatchWatch and edit values of variables or complex expressions.
Local WatchAutomatically populated with variables in the current scope.
Peripheral WatchPopulated with the peripheral registers. Bit fields shown/edited as mnemonics.
RTOS WatchAutomatically populated with RTOS data e.g. threads, mutexes, block pools
RTOS TraceGraphically displays the Task execution captured by the RTOS.
TLBDisplays all TLB in Raw or Decoded format.
ICacheDisplays the ICache in a human readable format.
DCacheDisplays the DCache in a human readable format.
ScriptCreate your own region using wxWidgets & Python.
TerminalVT100 emulator. Stream output to file.
ProfilerLow impact PC capture. Data shown next to code.
Realtime TraceGraphical representation of Real Time Trace data.
Trace ResultsSetup and display data from the MIPS PDTrace system.
OverlayShows 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.

MIPS supplies an advanced, Python-based, scripting interface and command-line console, Codescape Console, that enables direct access to MIPS 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 visualization, 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 real-time 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.