PHP Debug is single API for tracing PHP applications. With a single file of only 200 lines, you can add, with minimal impact, diagnostics to be displayed upon program termination. Each diagnostic contains file, function, and caller function information. You just need to include the debug.php file and add debug() calls throughout your code in the same way as var_dump(). The diagnostic messages are stored and displayed in a list. Diagnostics can be disabled and controlled. It's small and simple yet very versatile.
SystemTap is a tracing and probing tool that allows users to study and monitor the activities of the computer system in fine detail. It provides information similar to the output of tools like netstat, ps, top, and iostat; however, SystemTap is designed to provide more filtering and analysis options for collected information. It can be used as a performance monitoring tool, and is most useful when other tools cannot precisely pinpoint a bottleneck in the system, requiring a deep analysis of kernel activity. Application developers can also use it to monitor, in finer detail, how their application behaves within the Linux system.
Coretrace is a lightweight tool for debugging embedded Linux applications. It works by analyzing core files from crashed applications and outputs a short plain-text backtrace, suitable for putting into logfiles. The basic idea is to let the failing unit do self analysis of core files and report those back home during device maintenance lifetime. Non-interactive small-sized embedded systems are the primary targets, so small footprint is of major concern, since it will be stored on flash. Currently the compiled size is approximately 20 kb.
kongcurrent provides an easy-to use helper to assist debugging issues which cause exceptions under concurrent access. It was inspired by a problem in which a non-thread-safe Map object held by a third party framework was accidentally shared between threads, causing a ConcurrentModificationException. The helper (a "monitor") creates a proxied version of an object implementing some interface. The proxy can track invocations of the objects' methods and can report on potential concurrent access on the object. This can be used to help find code paths which concurrently access the object through its interface methods. By design, the helper is extensible, and can be adapted to more specific needs.