| #include <u.h> | |
| #include <libc.h> | |
| #include <mach.h> | |
| #include <elf.h> | |
| void | |
| usage(void) | |
| { | |
| fprint(2, "usage: elfnm file...\n"); | |
| exits("usage"); | |
| } | |
| void | |
| main(int argc, char **argv) | |
| { | |
| ElfSym esym; | |
| Fhdr *fp; | |
| int i, j; | |
| ARGBEGIN{ | |
| default: | |
| usage(); | |
| }ARGEND | |
| if(argc == 0) | |
| usage(); | |
| for(i=0; i<argc; i++){ | |
| if((fp = crackhdr(argv[i], OREAD)) == nil){ | |
| fprint(2, "%s: %r\n", argv[i]); | |
| continue; | |
| } | |
| for(j=0; elfsym(fp->elf, j, &esym)>=0; j++) | |
| print("%s 0x%lux\n", esym.name, esym.value); | |
| uncrackhdr(fp); | |
| } | |
| exits(0); | |
| } |