#include #include #include #include #include "dat.h" void usage(void) { fprint(2, "usage: acidtypes [-p prefix] executable...\n"); exits("usage"); } void main(int argc, char **argv) { int i; Fhdr *fp; Biobuf b; char err[ERRMAX]; quotefmtinstall(); ARGBEGIN{ case 'p': prefix = EARGF(usage()); break; default: usage(); }ARGEND if(argc < 1) usage(); Binit(&b, 1, OWRITE); for(i=0; idwarf){ if(dwarf2acid(fp->dwarf, &b) < 0){ rerrstr(err, sizeof err); Bprint(&b, "// dwarf2acid %s: %s\n\n", argv[i], err); fprint(2, "dwarf2acid %s: %s\n", argv[i], err); } }else if(fp->stabs.stabbase){ if(stabs2acid(&fp->stabs, &b) < 0){ rerrstr(err, sizeof err); Bprint(&b, "// dwarf2acid %s: %s\n\n", argv[i], err); fprint(2, "dwarf2acid %s: %s\n", argv[i], err); } }else{ Bprint(&b, "// no debugging symbols in %s\n\n", argv[i]); // fprint(2, "no debugging symbols in %s\n", argv[i]); } uncrackhdr(fp); } Bflush(&b); Bterm(&b); exits(0); }