SCP: Add prompt prior to fatal exit allowing error messages reading
As discussed in #594
This commit is contained in:
parent
9b95115a2a
commit
d593cdb98b
2 changed files with 13 additions and 2 deletions
10
scp.c
10
scp.c
|
@ -2416,17 +2416,23 @@ sim_is_running = FALSE;
|
||||||
sim_log = NULL;
|
sim_log = NULL;
|
||||||
if (sim_emax <= 0)
|
if (sim_emax <= 0)
|
||||||
sim_emax = 1;
|
sim_emax = 1;
|
||||||
sim_timer_init ();
|
if (sim_timer_init ()) {
|
||||||
|
fprintf (stderr, "Fatal timer initialization error\n");
|
||||||
|
read_line_p ("Hit Return to exit: ", cbuf, sizeof (cbuf) - 1, stdin);
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
sim_register_internal_device (&sim_expect_dev);
|
sim_register_internal_device (&sim_expect_dev);
|
||||||
sim_register_internal_device (&sim_step_dev);
|
sim_register_internal_device (&sim_step_dev);
|
||||||
|
|
||||||
if ((stat = sim_ttinit ()) != SCPE_OK) {
|
if ((stat = sim_ttinit ()) != SCPE_OK) {
|
||||||
fprintf (stderr, "Fatal terminal initialization error\n%s\n",
|
fprintf (stderr, "Fatal terminal initialization error\n%s\n",
|
||||||
sim_error_text (stat));
|
sim_error_text (stat));
|
||||||
|
read_line_p ("Hit Return to exit: ", cbuf, sizeof (cbuf) - 1, stdin);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
if ((sim_eval = (t_value *) calloc (sim_emax, sizeof (t_value))) == NULL) {
|
if ((sim_eval = (t_value *) calloc (sim_emax, sizeof (t_value))) == NULL) {
|
||||||
fprintf (stderr, "Unable to allocate examine buffer\n");
|
fprintf (stderr, "Unable to allocate examine buffer\n");
|
||||||
|
read_line_p ("Hit Return to exit: ", cbuf, sizeof (cbuf) - 1, stdin);
|
||||||
return 0;
|
return 0;
|
||||||
};
|
};
|
||||||
if (sim_dflt_dev == NULL) /* if no default */
|
if (sim_dflt_dev == NULL) /* if no default */
|
||||||
|
@ -2434,11 +2440,13 @@ if (sim_dflt_dev == NULL) /* if no default */
|
||||||
if ((stat = reset_all_p (0)) != SCPE_OK) {
|
if ((stat = reset_all_p (0)) != SCPE_OK) {
|
||||||
fprintf (stderr, "Fatal simulator initialization error\n%s\n",
|
fprintf (stderr, "Fatal simulator initialization error\n%s\n",
|
||||||
sim_error_text (stat));
|
sim_error_text (stat));
|
||||||
|
read_line_p ("Hit Return to exit: ", cbuf, sizeof (cbuf) - 1, stdin);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
if ((stat = sim_brk_init ()) != SCPE_OK) {
|
if ((stat = sim_brk_init ()) != SCPE_OK) {
|
||||||
fprintf (stderr, "Fatal breakpoint table initialization error\n%s\n",
|
fprintf (stderr, "Fatal breakpoint table initialization error\n%s\n",
|
||||||
sim_error_text (stat));
|
sim_error_text (stat));
|
||||||
|
read_line_p ("Hit Return to exit: ", cbuf, sizeof (cbuf) - 1, stdin);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
signal (SIGINT, int_handler);
|
signal (SIGINT, int_handler);
|
||||||
|
|
|
@ -257,7 +257,10 @@ else
|
||||||
if (stat == ETIMEDOUT)
|
if (stat == ETIMEDOUT)
|
||||||
timedout = TRUE;
|
timedout = TRUE;
|
||||||
else {
|
else {
|
||||||
fprintf (stderr, "sim_idle_ms_sleep(%u): pthread_cond_timedwait() return %d - %s\n", msec, stat, strerror (stat));
|
char ans[32];
|
||||||
|
|
||||||
|
fprintf (stderr, "sim_idle_ms_sleep(%u): pthread_cond_timedwait() return %d - %s\r\n", msec, stat, strerror (stat));
|
||||||
|
read_line_p ("Hit Return to exit: ", ans, sizeof (ans) - 1, stdin);
|
||||||
abort ();
|
abort ();
|
||||||
}
|
}
|
||||||
sim_idle_wait = FALSE;
|
sim_idle_wait = FALSE;
|
||||||
|
|
Loading…
Add table
Reference in a new issue