dwarf-assembly/src/main.cpp

39 lines
816 B
C++
Raw Normal View History

2018-04-23 16:20:31 +02:00
/** Entry point */
#include <iostream>
2018-04-24 17:44:09 +02:00
#include <sstream>
2018-04-23 16:20:31 +02:00
#include <cstdlib>
#include "SimpleDwarf.hpp"
#include "DwarfReader.hpp"
2018-04-23 18:58:05 +02:00
#include "CodeGenerator.hpp"
2018-04-23 16:20:31 +02:00
using namespace std;
int main(int argc, char** argv) {
if(argc < 2) {
cerr << "Error: missing input file. Usage:" << endl
<< argv[0] << " path/to/binary.elf" << endl;
exit(1);
}
SimpleDwarf parsed_dwarf = DwarfReader(argv[1]).read();
2018-04-23 18:58:05 +02:00
cerr << parsed_dwarf;
cerr << "=====================" << endl << endl;
2018-04-24 17:44:09 +02:00
CodeGenerator code_gen(
parsed_dwarf,
cout,
[](const SimpleDwarf::Fde& fde) {
std::ostringstream ss;
ss << "_fde_" << fde.beg_ip;
return ss.str();
});
2018-04-23 18:58:05 +02:00
code_gen.generate();
2018-04-23 16:20:31 +02:00
return 0;
}