commit - 9c635587071dcd7db349ec24ece1b397d24ac486
commit + f9aa99c72e86fa546a504d34ade4b3ca3164d9da
blob - 712831c01ecd14b4db2f8a5ee7379516120f285f
blob + 0d1909ceba9cd0e3415bd7bb426af44f83a7ffa7
--- src/cmd/acid/main.c
+++ src/cmd/acid/main.c
{
fprint(2, "usage: acid [-c core] [-l module] [-m machine] [-qrw] [-k] [pid] [file]\n");
exits("usage");
+}
+
+Map*
+dumbmap(int fd)
+{
+ Map *dumb;
+ Seg s;
+
+ dumb = allocmap();
+ memset(&s, 0, sizeof s);
+ s.fd = fd;
+ s.base = 0;
+ s.offset = 0;
+ s.size = 0xFFFFFFFF;
+ s.name = "data";
+ s.file = "<dumb>";
+ if(addseg(dumb, s) < 0){
+ freemap(dumb);
+ return nil;
+ }
+ if(mach == nil)
+ mach = machcpu;
+ return dumb;
}
void
static int
attachfiles(int argc, char **argv)
{
- int pid;
+ int fd, pid;
char *s;
int i, omode;
Fhdr *hdr;
}
if((hdr = crackhdr(argv[i], omode)) == nil){
fprint(2, "crackhdr %s: %r\n", argv[i]);
+ if(argc == 1 && (fd = open(argv[i], omode)) > 0){
+ fprint(2, "loading %s direct mapped\n", argv[i]);
+ symmap = dumbmap(fd);
+ cormap = dumbmap(fd);
+ symfil = argv[i];
+ corfil = argv[i];
+ goto Run;
+ }
continue;
}
fprint(2, "%s: %s %s %s\n", argv[i], hdr->aname, hdr->mname, hdr->fname);
mapfile(symhdr, 0, cormap, nil);
}
+Run:
l = mkvar("objtype");
v = l->v;
v->store.fmt = 's';