plan9port

fork of plan9port with libvec, libstr and libsdb
Log | Files | Refs | README | LICENSE

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 }