DCC

The Debugging
C/C++ Compiler

The Debugging C Compiler (DCC) is an educationally-focused C/C++ compiler which explains common novice compiler errors in simple terms. It introduces additional compile-time and run-time checks such as memory leak detection, and much more.

See what DCC can do

Segfaults gone. Actually helpful run-time error messages

dcc program.c -o program ./program program.c:11:37 runtime error - index 5 out of bounds for type 'int [5]' dcc explanation: You are using an illegal array index: 5   Valid indices for an array of size 5 are 0..4   Make sure the size of your array is correct.   Make sure your array indices are correct. Execution stopped in main() in program.c at line 11:   int i = 0;   while(i < 5) {     printf("%d\n", data[i]);     i++;   } --> printf("Final value was: %d\n", data[i]); } Values when execution stopped: data = {1, 2, 3, 4, 5} i = 5 data[i] = <uninitialized value> Don't understand? Get AI-generated help by running: dcc-help

Everything a student needs in a compiler

DCC comes batteries included. It is easy to use, maintains the same API as GCC/Clang, and is built on top of LLVM.

Extra compile-time checks

DCC provides extra compile-time checks to help you catch bugs early, utilising GCC, Clang, AddressSan, and more.

Run-time stack traces and errors

DCC utilises industry dynamic analysis tools such as GDB and Valgrind to support students in writing correct, safe C/C++ programs.

Help me, DCC, you're my only hope!

Stuck at an error you just don't understand? DCC-help uses AI to help you understand the error and how to fix it.

Memory leak detection

DCC utilises Valgrind to detect memory leaks in your program, and provides you with a report on how to fix them.

Conforms to standard APIs

DCC conforms to the same API as standard implementations, such as gcc or clang.

Built on the LLVM toolchain

DCC does not fork the LLVM, meaning that it is always up to date with the latest LLVM features.

Works with your platforms and languages*

Better explanations.

Easily replace existing C/C++ compilers with DCC, designed for students.