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-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;
|
|
|
|
}
|