mirror of
https://github.com/prirun/p50em.git
synced 2026-01-13 15:17:32 +00:00
Add "off" trace option: initially disabled, ctrl-t to toggle it
This commit is contained in:
parent
f69f9e9696
commit
26b86c84e9
17
em.c
17
em.c
@ -538,10 +538,11 @@ typedef struct {
|
||||
FILE *tracefile; /* trace.log file */
|
||||
int traceflags; /* each bit is a trace flag */
|
||||
int savetraceflags;
|
||||
int traceuser; /* OWNERL to trace */
|
||||
int traceseg; /* RPH segment # to trace */
|
||||
int numtraceprocs; /* # of procedures we're tracing */
|
||||
short traceuser; /* OWNERL to trace */
|
||||
short traceseg; /* RPH segment # to trace */
|
||||
short numtraceprocs; /* # of procedures we're tracing */
|
||||
unsigned long traceinstcount; /* only trace if instcount > this */
|
||||
short tracetriggered; /* Ctrl-T toggles tracing */
|
||||
#endif
|
||||
|
||||
} gv_t;
|
||||
@ -4384,6 +4385,7 @@ main (int argc, char **argv) {
|
||||
gvp->traceseg = 0;
|
||||
gvp->numtraceprocs = 0;
|
||||
gvp->traceinstcount = 0;
|
||||
gvp->tracetriggered = 1;
|
||||
#endif
|
||||
invalidate_brp();
|
||||
eap = &gvp->brp[0];
|
||||
@ -4587,6 +4589,8 @@ main (int argc, char **argv) {
|
||||
gvp->traceflags |= T_TERM;
|
||||
else if (strcmp(argv[i],"rio") == 0)
|
||||
gvp->traceflags |= T_RIO;
|
||||
else if (strcmp(argv[i],"off") == 0)
|
||||
gvp->tracetriggered = 0;
|
||||
else if (strcmp(argv[i],"lm") == 0)
|
||||
gvp->traceflags |= T_LM;
|
||||
else if (strcmp(argv[i],"put") == 0)
|
||||
@ -4645,7 +4649,7 @@ main (int argc, char **argv) {
|
||||
/* finish setting up tracing after all options are read, ie, maps */
|
||||
|
||||
#ifndef NOTRACE
|
||||
TRACEA("Trace flags = 04x%x\n", gvp->traceflags);
|
||||
TRACEA("Trace flags = 0x%x\n", gvp->traceflags);
|
||||
gvp->savetraceflags = gvp->traceflags;
|
||||
gvp->traceflags = 0;
|
||||
if (gvp->traceuser != 0)
|
||||
@ -4889,7 +4893,8 @@ fetch:
|
||||
|
||||
#ifndef NOTRACE
|
||||
gvp->traceflags = 0;
|
||||
if ((gvp->instcount >= gvp->traceinstcount) &&
|
||||
if (gvp->tracetriggered &&
|
||||
(gvp->instcount >= gvp->traceinstcount) &&
|
||||
(TRACEUSER && ((gvp->traceseg == 0) || (gvp->traceseg == (RPH & 0xFFF))))
|
||||
)
|
||||
gvp->traceflags = gvp->savetraceflags;
|
||||
@ -5162,7 +5167,7 @@ xec:
|
||||
x=1, opcode='15 03 -> jsx (RV) (aka '35 03)
|
||||
*/
|
||||
|
||||
TRACE(T_EAR|T_EAV, " opcode=%#05o, i=%o, x=%o\n", ((inst & 036000) != 032000) ? ((inst & 036000) >> 4) : ((inst & 076000) >> 4), inst & 0100000, ((inst & 036000) != 032000) ? (inst & 040000) : 0);
|
||||
TRACE(T_EAR|T_EAV, " op=%#05o, i=%o, x=%o, mode=%d\n", ((inst & 036000) != 032000) ? ((inst & 036000) >> 4) : ((inst & 076000) >> 4), inst & 0100000, ((inst & 036000) != 032000) ? (inst & 040000) : 0, (crs[KEYS] & 016000) >> 10);
|
||||
|
||||
if ((crs[KEYS] & 016000) == 014000) { /* 64V mode */
|
||||
ea = ea64v(inst, earp);
|
||||
|
||||
9
emdev.h
9
emdev.h
@ -482,16 +482,11 @@ readasr:
|
||||
}
|
||||
#ifndef NOTRACE
|
||||
if (ch == '') {
|
||||
printf("Trace owner = %o/%o\n", crs[OWNER], crs[OWNERL]);
|
||||
if (gvp->savetraceflags == 0) {
|
||||
gvp->tracetriggered = !gvp->tracetriggered;
|
||||
if (gvp->tracetriggered) {
|
||||
TRACEA("\nTRACE ENABLED:\n\n");
|
||||
gvp->savetraceflags = ~T_MAP;
|
||||
gvp->savetraceflags = T_GET;
|
||||
gvp->savetraceflags = ~0;
|
||||
gvp->savetraceflags = T_FLOW|T_FAULT;
|
||||
} else {
|
||||
TRACEA("\nTRACE DISABLED:\n\n");
|
||||
gvp->savetraceflags = 0;
|
||||
}
|
||||
fflush(gvp->tracefile);
|
||||
goto readasr;
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user