Fossil SCM
Invoke abort() after a call to fossil_panic(), not exit(1). This will leave a core file if the system is correctly configured. Also show the panic on debugging logs.
Commit
8163228997755fcb67d5f0842bf9160f2f9383197fd5e28a3452f931f502389a
Parent
5d6fc9678d36bc6…
1 file changed
+4
+4
| --- src/printf.c | ||
| +++ src/printf.c | ||
| @@ -1085,12 +1085,16 @@ | ||
| 1085 | 1085 | mainInFatalError = 1; |
| 1086 | 1086 | db_force_rollback(); |
| 1087 | 1087 | va_start(ap, zFormat); |
| 1088 | 1088 | sqlite3_vsnprintf(sizeof(z),z,zFormat, ap); |
| 1089 | 1089 | va_end(ap); |
| 1090 | + if( g.fAnyTrace ){ | |
| 1091 | + fprintf(stderr, "/***** panic on %d *****/\n", getpid()); | |
| 1092 | + } | |
| 1090 | 1093 | fossil_errorlog("panic: %s", z); |
| 1091 | 1094 | rc = fossil_print_error(rc, z); |
| 1095 | + abort(); | |
| 1092 | 1096 | exit(rc); |
| 1093 | 1097 | } |
| 1094 | 1098 | NORETURN void fossil_fatal(const char *zFormat, ...){ |
| 1095 | 1099 | char *z; |
| 1096 | 1100 | int rc = 1; |
| 1097 | 1101 |
| --- src/printf.c | |
| +++ src/printf.c | |
| @@ -1085,12 +1085,16 @@ | |
| 1085 | mainInFatalError = 1; |
| 1086 | db_force_rollback(); |
| 1087 | va_start(ap, zFormat); |
| 1088 | sqlite3_vsnprintf(sizeof(z),z,zFormat, ap); |
| 1089 | va_end(ap); |
| 1090 | fossil_errorlog("panic: %s", z); |
| 1091 | rc = fossil_print_error(rc, z); |
| 1092 | exit(rc); |
| 1093 | } |
| 1094 | NORETURN void fossil_fatal(const char *zFormat, ...){ |
| 1095 | char *z; |
| 1096 | int rc = 1; |
| 1097 |
| --- src/printf.c | |
| +++ src/printf.c | |
| @@ -1085,12 +1085,16 @@ | |
| 1085 | mainInFatalError = 1; |
| 1086 | db_force_rollback(); |
| 1087 | va_start(ap, zFormat); |
| 1088 | sqlite3_vsnprintf(sizeof(z),z,zFormat, ap); |
| 1089 | va_end(ap); |
| 1090 | if( g.fAnyTrace ){ |
| 1091 | fprintf(stderr, "/***** panic on %d *****/\n", getpid()); |
| 1092 | } |
| 1093 | fossil_errorlog("panic: %s", z); |
| 1094 | rc = fossil_print_error(rc, z); |
| 1095 | abort(); |
| 1096 | exit(rc); |
| 1097 | } |
| 1098 | NORETURN void fossil_fatal(const char *zFormat, ...){ |
| 1099 | char *z; |
| 1100 | int rc = 1; |
| 1101 |