elfnm.c (537B)
1 #include <u.h> 2 #include <libc.h> 3 #include <mach.h> 4 #include <elf.h> 5 6 void 7 usage(void) 8 { 9 fprint(2, "usage: elfnm file...\n"); 10 exits("usage"); 11 } 12 13 void 14 main(int argc, char **argv) 15 { 16 ElfSym esym; 17 Fhdr *fp; 18 int i, j; 19 20 ARGBEGIN{ 21 default: 22 usage(); 23 }ARGEND 24 25 if(argc == 0) 26 usage(); 27 28 for(i=0; i<argc; i++){ 29 if((fp = crackhdr(argv[i], OREAD)) == nil){ 30 fprint(2, "%s: %r\n", argv[i]); 31 continue; 32 } 33 for(j=0; elfsym(fp->elf, j, &esym)>=0; j++) 34 print("%s 0x%lux\n", esym.name, esym.value); 35 uncrackhdr(fp); 36 } 37 exits(0); 38 }