Simics 4.2 Operating System Awareness Features
Simics provides its full system debug based on a global view into the virtualized-system's running processes/threads. Simics OS awareness adds the abilities to isolate specific kernel or user processes/threads of interest and to hide everything else. The result is expanded and simplified debug and trace capabilities.
Key Problems Addressed:
- It is not possible to perform completely non-intrusive debugging on a physical platform
- A full system view during debug can make it challenging to find the specific task or thread of interest
- “Heisenbugs” - bugs which change characteristics based on the presense of the debugger itself, can take months to find
- Hardware based debuggers such as JTAG do not provide full visibility into every register on the target, and the system is not completely stopped during debug
- Developers could not perform kernel and user space debug, independent of target OS-hosted software
Who should care?:
- Developers
- Integrators
- Engineering and Project managers
Summary
For Linux, Enea OSE and QNX, OS awareness allows Simics to keep track of all active processes by detecting when they start and exist on the simulated machine. Such OS aware operation is useful for single process debugging, or when collecting statistics on a per-process and per-thread basis.
Simics also provides a simple kernel/user mode awareness module that is capable of differentiating between user and supervisor mode in order to improve system debugging even when explicit OS awareness has not been provided.