diff --git a/CMakeLists.txt b/CMakeLists.txt index 0d5bafc..f18d587 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -262,3 +262,9 @@ if(TARGET scc-sysc) INCLUDES DESTINATION ${CMAKE_INSTALL_INCLUDEDIR} # headers ) endif() + +project(elfio-test) +find_package(Boost COMPONENTS program_options thread REQUIRED) + +add_executable(${PROJECT_NAME} src/elfio.cpp) +target_link_libraries(${PROJECT_NAME} PUBLIC elfio::elfio) diff --git a/src/elfio.cpp b/src/elfio.cpp new file mode 100644 index 0000000..9c9bd3d --- /dev/null +++ b/src/elfio.cpp @@ -0,0 +1,36 @@ +#ifdef _MSC_VER +#define _SCL_SECURE_NO_WARNINGS +#define ELFIO_NO_INTTYPES +#endif + +#include +#include + +using namespace ELFIO; + +int main( int argc, char** argv ) +{ + if ( argc != 2 ) { + printf( "Usage: elfdump \n" ); + return 1; + } + + elfio reader; + + if ( !reader.load( argv[1] ) ) { + printf( "File %s is not found or it is not an ELF file\n", argv[1] ); + return 1; + } + + dump::header( std::cout, reader ); + dump::section_headers( std::cout, reader ); + dump::segment_headers( std::cout, reader ); + dump::symbol_tables( std::cout, reader ); + dump::notes( std::cout, reader ); + dump::modinfo( std::cout, reader ); + dump::dynamic_tags( std::cout, reader ); + dump::section_datas( std::cout, reader ); + dump::segment_datas( std::cout, reader ); + + return 0; +} \ No newline at end of file