Find and measure bottlenecks in your code! The Profiler collects information on frequency and execution time of each function and line of code. It also generates call graphs and gathers caller/callee statistics for call chains.
Run programs, designed for different architectures and processors within The Profiler's own simulated, user-scriptable environment. The Profiler is modular and supports many device environments, processors and microcontrollers.
Find programming issues while running the application. Step through the code with The Profiler's symbolic or source level debugger. Modify variables and processor registers and flags, Set configurable conditional breakpoints with a click of a mouse.
Disassemble raw binaries or object files for many supported processors and microcontrollers. Save the results to a file or clipboard.
Analyze generated profiling and coverage statistics, memory reads and writes and instruction trace stream.
Monitor the state of a processor or microcontroller registers, flags, stack, interrupts and device pins and memory contents.
Create new device definitions and their simulation environments using builtin scripting language. Simulate IO ports or custom chips with it.