Improved 'stop in' mechanism, and prevent core dump ir currlang is not set

This commit is contained in:
ceriel 1993-06-09 14:18:43 +00:00
parent 298fd07712
commit 042d7b2275
3 changed files with 11 additions and 4 deletions

View file

@ -837,12 +837,14 @@ DbRead(f)
if (sc) CurrentScope = sc;
}
if (! saw_code && !CurrentScope->sc_bp_opp) {
CurrentScope->sc_bp_opp = n->on_valu;
if (! CurrentScope->sc_start) {
else if (! saw_code) {
CurrentScope->sc_start = n->on_valu;
add_scope_addr(CurrentScope);
}
}
if (!CurrentScope->sc_bp_opp
|| CurrentScope->sc_bp_lineno > n->on_desc) {
CurrentScope->sc_bp_opp = n->on_valu;
CurrentScope->sc_bp_lineno = n->on_desc;
}
saw_code = 1;
add_position_addr(line_file->on_mptr, n);

View file

@ -11,6 +11,7 @@
#include "scope.h"
#include "Lpars.h"
#include "type.h"
#include "langdep.h"
static char *usage = "Usage: %s [<ack.out>] [<a.out>]";
char *progname;
@ -95,6 +96,9 @@ main(argc, argv)
reserve(tkidf);
reserve(shorts);
init_run();
if (! currlang) {
fatal("could not determine source language. Recompile with -g?");
}
prompt();
Commands();
signal_child(SIGKILL);

View file

@ -8,6 +8,7 @@ typedef struct scope {
struct symbol *sc_definedby; /* symbol defining this scope */
long sc_start; /* start address of code of this scope */
long sc_bp_opp; /* first breakpoint opportunity */
int sc_bp_lineno; /* linenumber belonging to this bp. */
short sc_proclevel; /* proc level of this scope */
char sc_has_activation_record;
} t_scope, *p_scope;