summaryrefslogtreecommitdiff
path: root/usr.sbin/dbsym/dbtest.c
diff options
context:
space:
mode:
Diffstat (limited to 'usr.sbin/dbsym/dbtest.c')
-rw-r--r--usr.sbin/dbsym/dbtest.c58
1 files changed, 0 insertions, 58 deletions
diff --git a/usr.sbin/dbsym/dbtest.c b/usr.sbin/dbsym/dbtest.c
deleted file mode 100644
index 3db6c667c77..00000000000
--- a/usr.sbin/dbsym/dbtest.c
+++ /dev/null
@@ -1,58 +0,0 @@
-
-#include <stdio.h>
-#include <a.out.h>
-
-#define SYMTAB_SPACE 0x8000
-int db_symtabsize = SYMTAB_SPACE;
-char db_symtab[SYMTAB_SPACE] = { 0,0,0,0,1 };
-/*
- * The actual format of the above is:
- * int symtab_length = NSYMS;
- * struct nlist[NSYMS];
- * int strtab_length;
- * char strtab[];
- */
-
-/* Print out our symbol table. */
-main()
-{
- struct nlist *nl;
- int symtab_len, strtab_len;
- char *strtab;
- char *p;
- int *ip;
- int st, sc, x;
-
- /* symbol table */
- ip = (int*) db_symtab;
- symtab_len = *ip++;
- if (symtab_len < 4) {
- printf("no symbol table\n");
- exit(1);
- }
- nl = (struct nlist *) ip;
-
- /* string table pointer and length */
- ip = (int*) ((char*)ip + symtab_len);
- strtab = (char*)ip;
- strtab_len = *ip;
-
- if (strtab_len > (SYMTAB_SPACE - symtab_len))
- strtab_len = (SYMTAB_SPACE - symtab_len);
-
- /* print symbol table */
- while ((x=nl->n_un.n_strx) != 0) {
- if (x < 0 || x >= strtab_len) p = "?";
- else p = strtab + x;
- st = nl->n_type & 0x1F;
- sc = "uatdbxxxxcxxxxxxx"[st>1];
- if (st & 1) sc &= ~0x20; /* to upper */
- printf("%08X %c %s\n", nl->n_value, sc, p);
- nl++;
- if ((char*)nl >= strtab) {
- printf("symbol table missing null terminator\n");
- break;
- }
- }
- exit(0);
-}