FreeCalypso > hg > freecalypso-reveng
diff objgrep/main.c @ 167:c25367bb7656
objgrep: written, compiles
author | Michael Spacefalcon <msokolov@ivan.Harhan.ORG> |
---|---|
date | Fri, 04 Jul 2014 00:54:33 +0000 |
parents | leo-obj/tool/main.c@25d3ead621f8 |
children | 466b3926019c |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/objgrep/main.c Fri Jul 04 00:54:33 2014 +0000 @@ -0,0 +1,48 @@ +/* + * objgrep main() function + */ + +#include <sys/types.h> +#include <stdio.h> +#include <stdlib.h> +#include <string.h> +#include <strings.h> +#include "globals.h" +#include "intstruct.h" + +main(argc, argv) + char **argv; +{ + unsigned n; + + if (argc != 4) { + fprintf(stderr, "usage: %s <objfile> <section> <binfile>\n", + argv[0]); + exit(2); + } + objfilename = argv[1]; + mmap_objfile(); + initial_parse_hdr(); + get_int_section_table(); + for (n = 0; n < nsections; n++) + if (!strcmp(sections[n].name, argv[2])) { + grep_section = sections + n; + break; + } + if (!grep_section) { + fprintf(stderr, "no section named \"%s\" found in %s\n", + argv[2], objfilename); + exit(2); + } + get_int_symbol_table(); + prepare_pattern(); + binfilename = argv[3]; + mmap_binfile(); + if (!do_grep()) { + printf("no match\n"); + exit(1); + } + printf("%s:%s found in %s at 0x%x\n", objfilename, grep_section->name, + binfilename, match_offset); + exit(0); +}