Adding source location information to crash dumps

Awful though it may seem, we sometimes do get crashes in the compiler, usually because of some unhandled scenario we never thought of. Unfortunately this typically happens when compiling very large pieces of code, so narrowing down the context of the crash can be difficult.

When CLang/LLVM crashes it very helpfully creates a temporary pre-processed file along with a shell script to run this file so the issue can be reproduced. And when run there is (usually) a call-stack dump, particularly when the Debug build is run.

But I would also like to have a clue about what file and line in the test-case corresponds to the context in which the crash occurs. Is there any easy way of adding the ability to write the ‘DebugLoc’ information corresponding to the context or the crash, or is this information not available to the crash-handler?



We use creduce to reduce large crash code to a small example,
Then you can run clang under a debugger compiling the small example and actually understand the crash.

Perfect, thanks