Debugging is an integral part of the embedded systems development process especially in the context of userspace applications running inside an OS, where it can be difficult to follow the flow of the code.
OS-aware debugging capabilities, which allow developers to inspect the kernel’s inner-workings and understand what’s happening on the userspace level, are key to good developer experience in this use case.
Therefore, as part of our work for Google Research focusing on developing a complete, simulation-driven flow for secure machine learning solutions, we have been working on bringing OS-aware debugging into Renode, our open source simulation framework.
The project uses the formally verified, high-assurance seL4 OS which thus was a logical first target – and we have recently released dedicated extensions which bring seL4 OS-aware features to both Renode and GDB.