Blame


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