summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authornorly <ny-git@enpas.org>2013-05-28 18:22:31 +0100
committernorly <ny-git@enpas.org>2013-05-28 18:22:31 +0100
commit11bf2836351cdb0703506d9d24ebd72bb420d1df (patch)
treea5104d0480090eeb90b96f565ff4b54686205c4c /src
parentd4d9322d7cf4d157602293e20a67961339224b6d (diff)
Remove old and ugly printing functions
Diffstat (limited to 'src')
-rw-r--r--src/main.c17
-rw-r--r--src/options.c10
-rw-r--r--src/printing/header.c62
-rw-r--r--src/printing/sections.c63
-rw-r--r--src/printing/segments.c80
5 files changed, 6 insertions, 226 deletions
diff --git a/src/main.c b/src/main.c
index 1672ab4..0eb6e00 100644
--- a/src/main.c
+++ b/src/main.c
@@ -38,22 +38,7 @@ int main(int argc, char **argv)
}
- /* Now that we have a (hopefully) sane environment, execute commands.
- * Printing will have to be reimplemented based on the memory model.
- */
- if (opts.printHeader) {
- printHeader(hIn.e);
- }
-
- if (opts.printSegments) {
- printSegments(hIn.e);
- }
-
- if (opts.printSections) {
- printSections(hIn.e);
- }
-
-
+ /* Now that we have a (hopefully) sane environment, execute commands. */
me = elfu_mFromElf(hIn.e);
if (me) {
closeElf(&hIn);
diff --git a/src/options.c b/src/options.c
index 928d080..198f01b 100644
--- a/src/options.c
+++ b/src/options.c
@@ -14,11 +14,11 @@ static void printUsage(char *progname)
" -h, --help Print this help message\n"
" -o, --output Where to write the modified ELF file to\n"
"\n"
- "ELF dump:\n"
- " --print-header Print ELF header\n"
- " --print-segments Print program headers\n"
- " --print-sections Print sections\n"
- "\n"
+// "ELF dump:\n"
+// " --print-header Print ELF header\n"
+// " --print-segments Print program headers\n"
+// " --print-sections Print sections\n"
+// "\n"
"Space insertion:\n"
" off: File offset, not within any structure (headers or sections).\n"
" sz: A multiple of the maximum alignment of all PHDRs.\n"
diff --git a/src/printing/header.c b/src/printing/header.c
deleted file mode 100644
index 0be2536..0000000
--- a/src/printing/header.c
+++ /dev/null
@@ -1,62 +0,0 @@
-#include <stdio.h>
-
-#include <libelf/libelf.h>
-#include <libelf/gelf.h>
-
-
-void printHeader(Elf *e)
-{
- GElf_Ehdr ehdr;
- int elfclass;
- size_t shdrnum, shdrstrndx, phdrnum;
-
-
- printf("ELF header:\n");
-
-
- elfclass = gelf_getclass(e);
- if (elfclass == ELFCLASSNONE) {
- fprintf(stderr, "getclass() failed: %s\n", elf_errmsg(-1));
- }
- printf(" * %d-bit ELF object\n", elfclass == ELFCLASS32 ? 32 : 64);
-
-
- if (!gelf_getehdr(e, &ehdr)) {
- fprintf(stderr, "getehdr() failed: %s.", elf_errmsg(-1));
- return;
- }
-
- printf(" * type machine version entry phoff shoff flags ehsize phentsize shentsize\n");
- printf(" %8jx %8jx %8jx %8jx %8jx %8jx %8jx %8jx %9jx %9jx\n",
- (uintmax_t) ehdr.e_type,
- (uintmax_t) ehdr.e_machine,
- (uintmax_t) ehdr.e_version,
- (uintmax_t) ehdr.e_entry,
- (uintmax_t) ehdr.e_phoff,
- (uintmax_t) ehdr.e_shoff,
- (uintmax_t) ehdr.e_flags,
- (uintmax_t) ehdr.e_ehsize,
- (uintmax_t) ehdr.e_phentsize,
- (uintmax_t) ehdr.e_shentsize);
-
-
- if (elf_getshdrnum(e, &shdrnum) != 0) {
- fprintf(stderr, "getshdrnum() failed: %s\n", elf_errmsg(-1));
- } else {
- printf(" * (shnum): %u\n", shdrnum);
- }
-
- if (elf_getshdrstrndx(e, &shdrstrndx) != 0) {
- fprintf(stderr, "getshdrstrndx() failed: %s\n", elf_errmsg(-1));
- } else {
- printf(" * (shstrndx): %u\n", shdrstrndx);
- }
-
- if (elf_getphdrnum(e, &phdrnum) != 0) {
- fprintf(stderr, "getphdrnum() failed: %s\n", elf_errmsg(-1));
- } else {
- printf(" * (phnum): %u\n", phdrnum);
- }
-
- printf("\n");
-}
diff --git a/src/printing/sections.c b/src/printing/sections.c
deleted file mode 100644
index ec0ff43..0000000
--- a/src/printing/sections.c
+++ /dev/null
@@ -1,63 +0,0 @@
-#include <stdio.h>
-
-#include <libelf/libelf.h>
-#include <libelf/gelf.h>
-
-#include <libelfu/libelfu.h>
-#include "printing.h"
-
-
-void printSegmentsWithSection(Elf *e, Elf_Scn *scn)
-{
- GElf_Phdr phdr;
- GElf_Shdr shdr;
- int i;
- size_t n;
-
-
- if (gelf_getshdr(scn, &shdr) != &shdr) {
- fprintf(stderr, "gelf_getshdr() failed: %s\n", elf_errmsg(-1));
- return;
- }
-
- if (elf_getphdrnum(e, &n)) {
- fprintf(stderr, "elf_getphdrnum() failed: %s\n", elf_errmsg(-1));
- return;
- }
-
- for (i = 0; i < n; i++) {
- if (gelf_getphdr(e, i, &phdr) != &phdr) {
- fprintf(stderr, "getphdr() failed for #%d: %s\n", i, elf_errmsg(-1));
- continue;
- }
-
- if (PHDR_CONTAINS_SCN_IN_MEMORY(&phdr, &shdr)) {
- printf(" %d %s\n", i, segmentTypeStr(phdr.p_type));
- }
- }
-}
-
-
-void printSection(Elf *e, Elf_Scn *scn)
-{
- printf(" %jd: %s\n",
- (uintmax_t) elf_ndxscn(scn),
- elfu_eScnName(e, scn));
-}
-
-
-void printSections(Elf *e)
-{
- Elf_Scn *scn;
-
- printf("Sections:\n");
-
- scn = elf_getscn(e, 0);
-
- while (scn) {
- printSection(e, scn);
- //printSegmentsWithSection(e, scn);
-
- scn = elf_nextscn(e, scn);
- }
-}
diff --git a/src/printing/segments.c b/src/printing/segments.c
deleted file mode 100644
index c7b5cb2..0000000
--- a/src/printing/segments.c
+++ /dev/null
@@ -1,80 +0,0 @@
-#include <stdio.h>
-
-#include <libelf/libelf.h>
-#include <libelf/gelf.h>
-
-#include <libelfu/libelfu.h>
-
-
-static char *ptstr[] = {"NULL", "LOAD", "DYNAMIC", "INTERP", "NOTE", "SHLIB", "PHDR", "TLS", "NUM"};
-
-
-char* segmentTypeStr(size_t pt)
-{
- if (pt >= 0 && pt <= PT_NUM) {
- return ptstr[pt];
- }
-
- return "-?-";
-}
-
-
-void printSectionsInSegment(Elf *e, GElf_Phdr *phdr)
-{
- Elf_Scn *scn;
-
- scn = elf_getscn(e, 0);
-
- while (scn) {
- GElf_Shdr shdr;
-
- if (gelf_getshdr(scn, &shdr) != &shdr) {
- fprintf(stderr, "gelf_getshdr() failed: %s\n", elf_errmsg(-1));
- continue;
- }
-
- if (PHDR_CONTAINS_SCN_IN_MEMORY(phdr, &shdr)) {
- printf(" %10u %s\n", elf_ndxscn(scn), elfu_eScnName(e, scn));
- }
-
- scn = elf_nextscn(e, scn);
- }
-}
-
-
-void printSegments(Elf *e)
-{
- size_t i, n;
-
- if (elf_getphdrnum(e, &n)) {
- fprintf(stderr, "elf_getphdrnum() failed: %s.", elf_errmsg(-1));
- }
-
- printf("Segments:\n");
- printf(" # typeStr type offset vaddr paddr filesz memsz flags align\n");
-
- for (i = 0; i < n; i++) {
- GElf_Phdr phdr;
-
- if (gelf_getphdr(e, i, &phdr) != &phdr) {
- fprintf(stderr, "getphdr() failed for #%d: %s.", i, elf_errmsg(-1));
- continue;
- }
-
- printf(" * %4d: %8s ", i, segmentTypeStr(phdr.p_type));
-
- printf("%8jx %8jx %8jx %8jx %8jx %8jx %8jx %8jx\n",
- (uintmax_t) phdr.p_type,
- (uintmax_t) phdr.p_offset,
- (uintmax_t) phdr.p_vaddr,
- (uintmax_t) phdr.p_paddr,
- (uintmax_t) phdr.p_filesz,
- (uintmax_t) phdr.p_memsz,
- (uintmax_t) phdr.p_flags,
- (uintmax_t) phdr.p_align);
-
- printSectionsInSegment(e, &phdr);
- }
-
- printf("\n");
-}