projects
/
sbcl.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
1.0.25.21: handling of potential corruptions
[sbcl.git]
/
src
/
runtime
/
runtime.c
diff --git
a/src/runtime/runtime.c
b/src/runtime/runtime.c
index
09e92c8
..
23c323f
100644
(file)
--- a/
src/runtime/runtime.c
+++ b/
src/runtime/runtime.c
@@
-229,6
+229,7
@@
main(int argc, char *argv[], char *envp[])
/* other command line options */
boolean noinform = 0;
boolean end_runtime_options = 0;
/* other command line options */
boolean noinform = 0;
boolean end_runtime_options = 0;
+ boolean disable_lossage_handler_p = 0;
lispobj initial_function;
const char *sbcl_home = getenv("SBCL_HOME");
lispobj initial_function;
const char *sbcl_home = getenv("SBCL_HOME");
@@
-275,6
+276,8
@@
main(int argc, char *argv[], char *envp[])
* TOPLEVEL-INIT sees the option. */
noinform = 1;
end_runtime_options = 1;
* TOPLEVEL-INIT sees the option. */
noinform = 1;
end_runtime_options = 1;
+ disable_lossage_handler_p = 1;
+ lose_on_corruption_p = 1;
break;
} else if (0 == strcmp(arg, "--noinform")) {
noinform = 1;
break;
} else if (0 == strcmp(arg, "--noinform")) {
noinform = 1;
@@
-309,8
+312,10
@@
main(int argc, char *argv[], char *envp[])
if (errno)
lose("argument to --dynamic-space-size is not a number");
# ifdef MAX_DYNAMIC_SPACE_END
if (errno)
lose("argument to --dynamic-space-size is not a number");
# ifdef MAX_DYNAMIC_SPACE_END
- if (!((DYNAMIC_SPACE_START < DYNAMIC_SPACE_START+dynamic_space_size) &&
- (DYNAMIC_SPACE_START+dynamic_space_size <= MAX_DYNAMIC_SPACE_END)))
+ if (!((DYNAMIC_SPACE_START <
+ DYNAMIC_SPACE_START+dynamic_space_size) &&
+ (DYNAMIC_SPACE_START+dynamic_space_size <=
+ MAX_DYNAMIC_SPACE_END)))
lose("specified --dynamic-space-size too large");
# endif
} else if (0 == strcmp(arg, "--control-stack-size")) {
lose("specified --dynamic-space-size too large");
# endif
} else if (0 == strcmp(arg, "--control-stack-size")) {
@@
-335,6
+340,12
@@
main(int argc, char *argv[], char *envp[])
++n;
}
++argi;
++n;
}
++argi;
+ } else if (0 == strcmp(arg, "--disable-ldb")) {
+ disable_lossage_handler_p = 1;
+ ++argi;
+ } else if (0 == strcmp(arg, "--lose-on-corruption")) {
+ lose_on_corruption_p = 1;
+ ++argi;
} else if (0 == strcmp(arg, "--end-runtime-options")) {
end_runtime_options = 1;
++argi;
} else if (0 == strcmp(arg, "--end-runtime-options")) {
end_runtime_options = 1;
++argi;
@@
-424,7
+435,8
@@
main(int argc, char *argv[], char *envp[])
define_var("nil", NIL, 1);
define_var("t", T, 1);
define_var("nil", NIL, 1);
define_var("t", T, 1);
- enable_lossage_handler();
+ if (!disable_lossage_handler_p)
+ enable_lossage_handler();
globals_init();
globals_init();
@@
-433,8
+445,8
@@
main(int argc, char *argv[], char *envp[])
lose("couldn't find initial function\n");
}
#ifdef LISP_FEATURE_HPUX
lose("couldn't find initial function\n");
}
#ifdef LISP_FEATURE_HPUX
- /* -1 = CLOSURE_FUN_OFFSET, 23 = SIMPLE_FUN_CODE_OFFSET, we are not in LANGUAGE_ASSEMBLY
- so we cant reach them. */
+ /* -1 = CLOSURE_FUN_OFFSET, 23 = SIMPLE_FUN_CODE_OFFSET, we are
+ * not in LANGUAGE_ASSEMBLY so we cant reach them. */
return_from_lisp_stub = (void *) ((char *)*((unsigned long *)
((char *)initial_function + -1)) + 23);
#endif
return_from_lisp_stub = (void *) ((char *)*((unsigned long *)
((char *)initial_function + -1)) + 23);
#endif