header

CBUG

A system for consistent cross platform memory debugging.

The Problem

As a Computer Science student, memory debugging is a key part of a number of classes. It is not only extremely helpful to creating safe and performant code, but is also a required component of passing classes. Unfortunately, as an Apple Silicon MacBook user, memory debugging is a complete mess. Technically, there is the built in "leaks" tool, but it has a number of holes, and won't even check for runtime errors. There is no comprehensive memory debugging tool that is compatible with the way that me and many other students and developers require and runs on Apple Silicon Macs.

The Solution

To allow me, and anyone else who is in a similar situation, effectively debug memory on Apple Silicon, I developed CBug. Cbug is a shell tool that is designed to wrap around docker and pass files and commands into a container. While targeted towards Apple Silicon, it is available for both MacOS and Linux on x86 and arm, for anyone who needs a more consistent environment. CBug offers a number of customization features for how it handles containers, and has been recommended by RPI's data structures course for debugging memory on platforms that do not otherwise support it.