Yet Another Java Profiler is a profiler tool that uses the JVMTI interface. It can be used to selectively trace a Java program and store this information in a compressed logfile. This logfile can then later be analyzed using the same tool. It's also possible to monitor heap/stack usage and the threads at runtime.
The Novell Linux Kernel Debugger (NLKD) is a kernel debugger for Linux. NLKD provides an architecture for supporting a robust debugging experience and debug agents supporting local and remote debugging. NLKD's Console Debug Agent (CDA) supports on-box kernel debugging and is extremely rich in functionality and easy to use. The Remote Debug Agent (RDA) supports remote source level debugging via gdbtransport to your favorite gdb based client.
Kernel Analyzer monitors system activity by recording information about task preemptions and interruptions. The data generated is intended for real-time developers and is useful for analyzing driver timing issues and scheduling efficiency. It can also help by giving an overview of a system.
DUMA (Detect Unintended Memory Access) stops your program on the exact instruction that overruns (or underruns) a malloc() memory buffer. GDB will then display the source-code line that causes the bug. It works by using the virtual-memory hardware to create a red-zone at the border of each buffer: touch that, and your program stops. It can catch formerly impossible-to-catch overrun bugs. DUMA is a fork of Bruce Perens' Electric Fence library.
Originating from GDB/Armulator, the SkyEye project aims to provide an integrated simulation environment in Linux and Windows. It can currently simulate several popular embedded systems such as Atmel AT91 boards (from ARM7TDMI to ARM920T processors), ARM720T boards, StrongARM (SA1100/SA1110), and Xscale boards. It can run several operating systems such as ARM Linux, uClinux, and uc/OS-II (ucos-ii), and analyse or debug them at source level.
"jscpp" is an ANSI C preprocessor and language parser that can analyze and instrument C code. Currently, its most prominent application is to add tracing to existing C programs simply by recompiling and linking it with the "jscc" compiler frontend. The standard tracing shows when a function is entered or left along with the parameters passed or return values. It is also possible to trace each source line and watch read/write access to simple variables. Tracing is achieved by instrumenting the source code before calling the system compiler. The program is modular and can be easily extended to other kinds of source code modifications.