projects
/
unix-history
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
tags
|
clone url
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
BSD 4 release
[unix-history]
/
usr
/
src
/
cmd
/
sdb
/
display.c
diff --git
a/usr/src/cmd/sdb/display.c
b/usr/src/cmd/sdb/display.c
index
aa3d678
..
57a500b
100644
(file)
--- a/
usr/src/cmd/sdb/display.c
+++ b/
usr/src/cmd/sdb/display.c
@@
-1,10
+1,18
@@
+static char sccsid[] = "@(#)display.c 4.1 10/9/80";
#include "head.h"
#include <a.out.h>
#include "head.h"
#include <a.out.h>
+#include <stab.h>
#include "cdefs.h"
struct user u;
BKPTR bkpthead;
#include "cdefs.h"
struct user u;
BKPTR bkpthead;
+#ifdef FLEXNAMES
+#define bread(a,b,c) stread(b,c)
+#define blseek(a,b,c) stseek(b,c)
+#endif
+
/* initialize frame pointers to top of call stack */
/* initialize frame pointers to top of call stack */
+/* MACHINE DEPENDENT */
struct proct *
initframe() {
argp = *(ADDR *) (((ADDR) &u) + AP);
struct proct *
initframe() {
argp = *(ADDR *) (((ADDR) &u) + AP);
@@
-12,7
+20,7
@@
initframe() {
callpc = *(ADDR *) (((ADDR) &u) + PC);
if ((frame == 0) || (frame & 0xf0000000 != 0x70000000))
return(badproc);
callpc = *(ADDR *) (((ADDR) &u) + PC);
if ((frame == 0) || (frame & 0xf0000000 != 0x70000000))
return(badproc);
- return(adrtoproc(callpc++)); /* ++ because UNIX backs up instrs */
+ return(adrtoproc
p
(callpc++)); /* ++ because UNIX backs up instrs */
}
}
@@
-28,10
+36,11
@@
nextframe() {
}
if ((frame == 0) || (frame & 0xf0000000 != 0x70000000))
return(badproc);
}
if ((frame == 0) || (frame & 0xf0000000 != 0x70000000))
return(badproc);
- return(adrtoproc(callpc-1));
+ return(adrtoproc
p
(callpc-1));
}
/* returns core image address for variable */
}
/* returns core image address for variable */
+/* MACHINE DEPENDENT */
ADDR
formaddr(class, addr)
register char class;
ADDR
formaddr(class, addr)
register char class;
@@
-136,6
+145,10
@@
char *proc, *var, *fmt; {
char *comblk;
register struct proct *procp;
char *comblk;
register struct proct *procp;
+ if (percentflag) { /* kludge for register names */
+ return(regout(var, prvar, fmt));
+ }
+
if (var[0] == '\0') {
error("Unexpected null variable name");
return(-1);
if (var[0] == '\0') {
error("Unexpected null variable name");
return(-1);
@@
-204,6
+217,11
@@
char *proc, *var, *fmt; {
}
}
}
}
+ if (addr == -1 && match == 0) {
+ addr = extoutvar(var, fmt, metaflag, prvar);
+ if (addr != -1)
+ return(addr);
+ }
if (match == 0) {
printf("%s not an active procedure\n", proc);
return(-1);
if (match == 0) {
printf("%s not an active procedure\n", proc);
return(-1);
@@
-212,7
+230,11
@@
char *proc, *var, *fmt; {
if (var[0] == '.')
var++;
if (proc[0])
if (var[0] == '.')
var++;
if (proc[0])
- printf("%.8s:%s not found\n", proc, var);
+#ifndef FLEXNAMES
+ printf("%.16s:%s not found\n", proc, var);
+#else
+ printf("%s:%s not found\n", proc, var);
+#endif
else
printf("%s not found\n", var);
return(-1);
else
printf("%s not found\n", var);
return(-1);
@@
-320,8
+342,7
@@
prbkpt() {
for (bkptr = bkpthead; bkptr; bkptr=bkptr->nxtbkpt)
if (bkptr->flag) {
cnt++;
for (bkptr = bkpthead; bkptr; bkptr=bkptr->nxtbkpt)
if (bkptr->flag) {
cnt++;
- printbkpt("", adrtoprocp(bkptr->loc)->pname,
- adrtolineno(bkptr->loc));
+ printbkpt("", adrtoprocp(bkptr->loc), bkptr->loc);
cmdp = bkptr->comm;
if (*cmdp != '\n') {
printf(" <");
cmdp = bkptr->comm;
if (*cmdp != '\n') {
printf(" <");
@@
-347,8
+368,7
@@
idbkpt() {
for (bkptr = bkpthead; bkptr; bkptr=bkptr->nxtbkpt)
if (bkptr->flag) {
for (bkptr = bkpthead; bkptr; bkptr=bkptr->nxtbkpt)
if (bkptr->flag) {
- printbkpt(" ? ", adrtoprocp(bkptr->loc)->pname,
- adrtolineno(bkptr->loc));
+ printbkpt(" ? ", adrtoprocp(bkptr->loc), bkptr->loc);
yesflg = 0;
cnt++;
do {
yesflg = 0;
cnt++;
do {
@@
-370,17
+390,19
@@
dabkpt() {
for (bkptr = bkpthead; bkptr; bkptr=bkptr->nxtbkpt)
bkptr->flag = 0;
}
for (bkptr = bkpthead; bkptr; bkptr=bkptr->nxtbkpt)
bkptr->flag = 0;
}
-printbkpt(s, name, lineno)
-char *s, *name; {
- if (name[0] == '_')
- printf("%.7s:", name+1);
- else
- printf("%.8s:", name);
-
- if (lineno != -1)
- printf("%d%s", lineno, s);
- else
- printf("%s", s);
+
+/*
+ * Print name of breakpoint for a, b, d commands:
+ */
+printbkpt(s, procp, dot)
+char *s; struct proct *procp; ADDR dot; {
+ adrtolineno(dot);
+ if (dot != lnfaddr)
+ printf("0x%x (", dot);
+ prlnoff(procp, dot);
+ if (dot != lnfaddr)
+ printf(")");
+ printf("%s", s);
}
/* print call frame */
}
/* print call frame */
@@
-405,10
+427,18
@@
prfrx(top) {
if (eqstr("__dbsubc", p)) return;
if (p[0] == '_') {
endflg = 1;
if (eqstr("__dbsubc", p)) return;
if (p[0] == '_') {
endflg = 1;
- printf("%.7s(", p+1);
+#ifndef FLEXNAMES
+ printf("%.15s(", p+1);
+#else
+ printf("%s(", p+1);
+#endif
}
else {
}
else {
- printf("%.8s(", p);
+#ifndef FLEXNAMES
+ printf("%.16s(", p);
+#else
+ printf("%s(", p);
+#endif
endflg = 0;
}
if (endflg == 0) {
endflg = 0;
}
if (endflg == 0) {
@@
-445,8
+475,13
@@
prfrx(top) {
argp += 4;
} else {
int length;
argp += 4;
} else {
int length;
- printf("%.8s=", stentry.n_name);
- dispx(argp, "", N_GSYM, stentry.n_desc, 0, 0);
+#ifndef FLEXNAMES
+ printf("%.16s=", stentry.n_name);
+#else
+ printf("%s=", stentry.n_un.n_name);
+#endif
+ dispx(argp, "", N_GSYM, stentry.n_desc,
+ 0, 0, DSP);
length = typetosize(stentry.n_desc, 0);
if (length > WORDSIZE)
argp += length;
length = typetosize(stentry.n_desc, 0);
if (length > WORDSIZE)
argp += length;
@@
-477,27
+512,14
@@
prfrx(top) {
} while (((procp = nextframe()) != badproc) && !top);
}
} while (((procp = nextframe()) != badproc) && !top);
}
-STRING signals[] = {
- "",
- "hangup",
- "interrupt",
- "quit",
- "illegal instruction",
- "trace/BPT",
- "IOT",
- "EMT",
- "floating exception",
- "killed",
- "bus error",
- "memory fault",
- "bad system call",
- "broken pipe",
- "alarm call",
- "terminated",
-};
INT signo;
INT signo;
+STRING signals[];
+extern nsig;
+sigprint()
+{
-sigprint() {
- printf("%s", signals[signo]);
+ if (signo < nsig)
+ printf("%s", signals[signo]);
+ else
+ printf("signal %d???", signals[signo]);
}
}
-