1571
1572
1573
1574
1575
1576
1577
1578
1579
1580
1581
1582
1583
1584
1585
|
size_t i;
Blob out;
size = backtrace(array, sizeof(array)/sizeof(array[0]));
strings = backtrace_symbols(array, size);
blob_init(&out, 0, 0);
blob_appendf(&out, "Segfault during %s", g.zPhase);
for(i=0; i<size; i++){
blob_appendf(&out, "\n(%d) %s", i, strings[i]);
}
fossil_panic("%s", blob_str(&out));
#else
fossil_panic("Segfault during %s", g.zPhase);
#endif
exit(1);
}
|
>
>
>
>
>
>
>
|
>
|
1571
1572
1573
1574
1575
1576
1577
1578
1579
1580
1581
1582
1583
1584
1585
1586
1587
1588
1589
1590
1591
1592
1593
|
size_t i;
Blob out;
size = backtrace(array, sizeof(array)/sizeof(array[0]));
strings = backtrace_symbols(array, size);
blob_init(&out, 0, 0);
blob_appendf(&out, "Segfault during %s", g.zPhase);
for(i=0; i<size; i++){
size_t len;
const char *z = strings[i];
if( i==0 ) blob_appendf(&out, "\nBacktrace:");
len = strlen(strings[i]);
if( z[0]=='[' && z[len-1]==']' ){
blob_appendf(&out, " %.*s", (int)(len-2), &z[1]);
}else{
blob_appendf(&out, " %s", z);
}
}
fossil_panic("%s", blob_str(&out));
#else
fossil_panic("Segfault during %s", g.zPhase);
#endif
exit(1);
}
|