00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027 #include <iostream>
00028 #include <stdio.h>
00029 #include <elf.h>
00030 #include <stdlib.h>
00031 #include "elf_reader.h"
00032 #include "elf_reader64.h"
00033 #include <string.h>
00034 #include <vector>
00035 #include "messg.h"
00036 #include "rta.h"
00037 #include "wn_reader.h"
00038 #include "rta_reader.h"
00039
00040 using namespace std;
00041
00042 typedef struct {
00043 char* name;
00044
00045 } Infile;
00046
00047 FILE* dump_file = 0;
00048
00049
00050
00051 int main(int argc, char **argv)
00052 {
00053 INT i = 0;
00054 std::vector<Infile> infile;
00055 FILE* fdo;
00056
00057 if (argc < 2) {
00058 std::cout << "Usage: rtadump [[-m] infile1 infile2 ... ]\n";
00059 exit(1);
00060 }
00061
00062 while (++i != argc) {
00063 Infile ibin;
00064 if (strcmp(argv[i], "-m") == 0) {
00065 i++;
00066 if (i >= argc) {
00067 std::cout << "missing file name after -m\n";
00068 exit(1);
00069 }
00070 ibin.name = argv[i];
00071 infile.push_back(ibin);
00072 }
00073 }
00074
00075 try {
00076 for (INT i=0; i<infile.size(); i++) {
00077 ELFBin annot_obj;
00078 char* s = infile[i].name;
00079 annot_obj.createELFObj(s);
00080 annot_obj.dumpBin(stdout);
00081 }
00082 }
00083
00084 catch (STRING s) {
00085 fprintf(stderr, "Elf file %s read error\n",argv[1]);
00086 exit(1);
00087 }
00088 exit(0);
00089 }