=================================================================== RCS file: /cvsrepo/anoncvs/cvs/src/usr.bin/pmdb/Attic/symbol.c,v retrieving revision 1.3 retrieving revision 1.4 diff -c -r1.3 -r1.4 *** src/usr.bin/pmdb/Attic/symbol.c 2002/03/15 17:49:51 1.3 --- src/usr.bin/pmdb/Attic/symbol.c 2002/03/15 18:04:41 1.4 *************** *** 1,4 **** ! /* $OpenBSD: symbol.c,v 1.3 2002/03/15 17:49:51 art Exp $ */ /* * Copyright (c) 2002 Artur Grabowski * All rights reserved. --- 1,4 ---- ! /* $OpenBSD: symbol.c,v 1.4 2002/03/15 18:04:41 art Exp $ */ /* * Copyright (c) 2002 Artur Grabowski * All rights reserved. *************** *** 28,33 **** --- 28,34 ---- #include #include #include + #include #include "pmdb.h" #include "symbol.h" *************** *** 149,155 **** return (st); } ! warnx("Loading symbols from %s", name); if ((st = (*ps->ps_sops->sop_open)(name)) != NULL) { TAILQ_INSERT_TAIL(&ps->ps_syms, st, st_list); --- 150,156 ---- return (st); } ! warnx("Loading symbols from %s at 0x%lx", name, offs); if ((st = (*ps->ps_sops->sop_open)(name)) != NULL) { TAILQ_INSERT_TAIL(&ps->ps_syms, st, st_list); *************** *** 161,163 **** --- 162,188 ---- return (st); } + /* + * Load a symbol table from file argv[1] at offset argv[2]. + */ + int + cmd_sym_load(int argc, char **argv, void *arg) + { + struct pstate *ps = arg; + char *fname, *ep; + reg offs; + + fname = argv[1]; + errno = 0; + offs = strtol(argv[2], &ep, 0); + if (argv[2][0] == '\0' || *ep != '\0' || errno == ERANGE) { + fprintf(stderr, "%s is not a valid offset\n", argv[2]); + return (0); + } + + if (st_open(ps, fname, offs) == NULL) { + warnx("symbol loading failed"); + } + + return (0); + }