Reverse Debugging is a new paradigm that simplifies bug analysis. It greatly improves debugging experience for the developers and reduces debugging effort dramatically. The program is run unmodified and without breakpoints until a misbehavior occurs. From there, developers step back in time and investigate what happened.

Interested in our products and services? Subscribe our newsletter:

Simulics Reverse Debugger for Embedded Platforms

A Backstep Ahead! In the conventional debugging process, developers must inspect program states at breakpoints carefully. Once passed, program states cannot be re-inspected to gather additional information. The program must be restarted. Not only is this tedious and annoying, but non-deterministic behavior as caused by IRQs and race conditions cannot be reproduced safely in each successive run.

With the Simulics Reverse Debugger, developers do not need to know in advance what they are looking for. The program can be run without breakpoints and without error hypothesis. When an error occurred, developers can run back in time and investigate what did happen. They do no more need to capture all the information that might be relevant before continuing program execution. Developers can step the program back and forth, like forwarding and rewinding a tape. Every position in program runtime can be inspected many times.
Conventional Debugging
Conventional Debugging – Program must be restarted
Reverse Debugging
Reverse Debugging – We added a Rewind Button!
Features at a Glimpse:
  • Free movement in program runtime, back and forth
  • Deterministic analysis of IRQs and race conditions without restarting the program
  • Backstep at the instruction, source line, function, breakpoint or watchpoint level
  • Complete visibility of all register and memory contents for every point in time
  • Works for any target operation system and bare metal applications
  • Does not require a hardware target
Reverse Debugging – The program can be run in both directions. Developers can inspect past program states and non-deterministic events. This simplifies software debugging significantly.
Reverse Debugging - Backstep
Rewind & Modify – After a backstep, developers can modify the target state and fork off an alternative execution branch.
Reverse Debugging - Rewind & Modify

Platform Modeling Kit

Complement Your Toolchain for Early Software Development! With the Simulics Platform Simulator you can enable your customers to execute application binaries before the target is available in hardware. The Simulics Modeling Kit helps you to create and modify platform models in a short time. Reverse Debugging works with the created models out-of-the-box.
  • ISA description language
  • Automated instruction decoder synthesis
  • API for the modeling of IO devices
  • Full Java integration
Embedded Platform Modeling Kit
Automated Instruction Decoder Synthesis – The creator of a model denotes instruction word formats and opcodes in almost the same way as they are defined by the Instruction Set Manual. The instruction decoder is derived completely automatically.
IO Device Modeling API – The Simulics Modeling Kit includes a Java API to model busses, IRQs, MMUs and IO devices.

Simulics Platform Simulator

A Deeper Insight into Your System. Whether for Early Software Development or for a deeper insight into your system. The Simulics Plattform Simulator is fast and versatile. It perfectly complements real hardware in the software development process. Reverse Debugging is available for all simulation models.
  • Instruction Set and Platform Simulator
  • More than 500 MIPS, Linux boot time less than 5 seconds
  • Dynamic Runtime Instrumentation
  • Test automation and script control with Java integration
  • GDB and Eclipse integration
Instruction Set Architectures:
  • ARMv7 including Thumb I/II
  • PowerISA 2.06 (Book E) + VLE
  • Intel 80186
More instruction set and platform models can be created using the Simulics Modeling Kit.
Simulation in Real-Time – The performance of cycle-accurate simulators is not suitable for reactive software development (10kIPS to 1 MIPS). While developers demand fast targets that they can use in interactive IDE sessions, the exact timing behavior is of minor importance in the early stages of software development. The Simulics Platform Simulator performs more than 500 MIPS and is suited for the simulation of hardware targets in real time.
Dynamic Run-Time Instrumentation – In most cases, instrumentation is invasive and based on the execution of modified software. The Simulics Platform Simulator supports dynamic run-time instrumentation. The source code of the software is not required for this. The unmodified application binary is executed.
A Deeper Insight – The Simulics Plattform Simulator removes the limitations of real hardware. All of the system and device registers are fully visible. The Simulics Reverse Debugger stops the complete system, including devices. This allows inspection in a consistent state.
Test Automation – Increase your productivity and product quality with test automation. The Simulics Platform Simulator includes a powerful, integrated script language with numerous commands for test support.
Work with Your Familiar ToolsSimulics Reverse Debugger and Simulics Platform Simulator integrate an interface for GDB and Eclipse/CDT. You can use these products from within your established toolchain.


Our Offer. We are a young company with new ideas and concepts for a more effective and efficient system analysis.
Tool Development and Tool Integration – We are developing customer specific test and analysis tools as well as modifications and plugins of our products for your needs. We also help you with the integration of our products in your toolchain.
Modeling – Whether special purpose instruction sets, multi core platforms or special peripheral devices. We develop platform models of all kinds for you that can be used with Simulics Platform Simulator and Simulics Reverse Debugger.
Consulting – We evaluate your problem and find a tailor-made solution with you.


Funded by the European Union's European Social Fund (ESF). EXIST dresden|exists