It still requires a fair bit of setup but you can make tracking down the location of a crash a bit less painful by defining a macro which prints file/line and dotting that through your code
#define FL printf("File %s, line %u\n", __FILE__, __LINE__);
void foo(int c) {
FL bar();
FL for(int i=0; i<c; ++c) {
FL baz(i);
}
FL very_long_function(&with, &arguments, \
on->several(lines));
FL}