X-Git-Url: https://git.sur5r.net/?a=blobdiff_plain;ds=sidebyside;f=src%2Fod65%2Fmain.c;h=6e4c413bf98e09f0ccb8afb3ed12481ba096c64e;hb=4a667ead00c10797fb57298b3dd33c2efc6c8d3f;hp=9387e26406f43b3684abb731e2910da647b5d8fd;hpb=89dccd5a23e12f83bcb09da5968206522e2a2d92;p=cc65 diff --git a/src/od65/main.c b/src/od65/main.c index 9387e2640..6e4c413bf 100644 --- a/src/od65/main.c +++ b/src/od65/main.c @@ -6,10 +6,10 @@ /* */ /* */ /* */ -/* (C) 2000 Ullrich von Bassewitz */ +/* (C) 2000-2002 Ullrich von Bassewitz */ /* Wacholderweg 14 */ /* D-70597 Stuttgart */ -/* EMail: uz@musoftware.de */ +/* EMail: uz@cc65.org */ /* */ /* */ /* This software is provided 'as-is', without any expressed or implied */ @@ -74,17 +74,21 @@ static void Usage (void) "Usage: %s [options] file [options] [file]\n" "Short options:\n" " -h\t\t\tHelp (this text)\n" + " -H\t\t\tDump the object file header\n" + " -S\t\t\tDump segments sizes\n" " -V\t\t\tPrint the version number and exit\n" "\n" "Long options:\n" - " --dump-all\t\tDump all object file information\n" + " --dump-all\t\tDump all object file information\n" " --dump-dbgsyms\tDump debug symbols\n" " --dump-exports\tDump exported symbols\n" " --dump-files\t\tDump the source files\n" " --dump-header\t\tDump the object file header\n" " --dump-imports\tDump imported symbols\n" + " --dump-lineinfo\tDump line information\n" " --dump-options\tDump object file options\n" " --dump-segments\tDump the segments in the file\n" + " --dump-segsize\tDump segments sizes\n" " --help\t\tHelp (this text)\n" " --version\t\tPrint the version number and exit\n", ProgName); @@ -92,7 +96,8 @@ static void Usage (void) -static void OptDumpAll (const char* Opt, const char* Arg) +static void OptDumpAll (const char* Opt attribute ((unused)), + const char* Arg attribute ((unused))) /* Dump all object file information */ { What |= D_ALL; @@ -100,15 +105,17 @@ static void OptDumpAll (const char* Opt, const char* Arg) -static void OptDumpDbgSyms (const char* Opt, const char* Arg) +static void OptDumpDbgSyms (const char* Opt attribute ((unused)), + const char* Arg attribute ((unused))) /* Dump debug symbols contained in the object file */ { What |= D_DBGSYMS; -} +} -static void OptDumpExports (const char* Opt, const char* Arg) +static void OptDumpExports (const char* Opt attribute ((unused)), + const char* Arg attribute ((unused))) /* Dump the exported symbols */ { What |= D_EXPORTS; @@ -116,7 +123,8 @@ static void OptDumpExports (const char* Opt, const char* Arg) -static void OptDumpFiles (const char* Opt, const char* Arg) +static void OptDumpFiles (const char* Opt attribute ((unused)), + const char* Arg attribute ((unused))) /* Dump the source files */ { What |= D_FILES; @@ -124,7 +132,8 @@ static void OptDumpFiles (const char* Opt, const char* Arg) -static void OptDumpHeader (const char* Opt, const char* Arg) +static void OptDumpHeader (const char* Opt attribute ((unused)), + const char* Arg attribute ((unused))) /* Dump the object file header */ { What |= D_HEADER; @@ -132,7 +141,8 @@ static void OptDumpHeader (const char* Opt, const char* Arg) -static void OptDumpImports (const char* Opt, const char* Arg) +static void OptDumpImports (const char* Opt attribute ((unused)), + const char* Arg attribute ((unused))) /* Dump the imported symbols */ { What |= D_IMPORTS; @@ -140,7 +150,17 @@ static void OptDumpImports (const char* Opt, const char* Arg) -static void OptDumpOptions (const char* Opt, const char* Arg) +static void OptDumpLineInfo (const char* Opt attribute ((unused)), + const char* Arg attribute ((unused))) +/* Dump the line infos */ +{ + What |= D_LINEINFO; +} + + + +static void OptDumpOptions (const char* Opt attribute ((unused)), + const char* Arg attribute ((unused))) /* Dump the object file options */ { What |= D_OPTIONS; @@ -148,7 +168,8 @@ static void OptDumpOptions (const char* Opt, const char* Arg) -static void OptDumpSegments (const char* Opt, const char* Arg) +static void OptDumpSegments (const char* Opt attribute ((unused)), + const char* Arg attribute ((unused))) /* Dump the segments in the object file */ { What |= D_SEGMENTS; @@ -156,7 +177,17 @@ static void OptDumpSegments (const char* Opt, const char* Arg) -static void OptHelp (const char* Opt, const char* Arg) +static void OptDumpSegSize (const char* Opt attribute ((unused)), + const char* Arg attribute ((unused))) +/* Dump the segments in the object file */ +{ + What |= D_SEGSIZE; +} + + + +static void OptHelp (const char* Opt attribute ((unused)), + const char* Arg attribute ((unused))) /* Print usage information and exit */ { Usage (); @@ -165,11 +196,12 @@ static void OptHelp (const char* Opt, const char* Arg) -static void OptVersion (const char* Opt, const char* Arg) +static void OptVersion (const char* Opt attribute ((unused)), + const char* Arg attribute ((unused))) /* Print the assembler version */ { fprintf (stderr, - "%s V%u.%u.%u - (C) Copyright 2000 Ullrich von Bassewitz\n", + "%s V%u.%u.%u - (C) Copyright 2000-2002 Ullrich von Bassewitz\n", ProgName, VER_MAJOR, VER_MINOR, VER_PATCH); } @@ -183,7 +215,7 @@ static void DumpFile (const char* Name) /* Try to open the file */ FILE* F = fopen (Name, "rb"); if (F == 0) { - Warning ("Cannot open `%s': %s", Name, strerror (errno)); + Error ("Cannot open `%s': %s", Name, strerror (errno)); } /* Read the magic word */ @@ -227,6 +259,12 @@ static void DumpFile (const char* Name) if (What & D_DBGSYMS) { DumpObjDbgSyms (F, 0); } + if (What & D_LINEINFO) { + DumpObjLineInfo (F, 0); + } + if (What & D_SEGSIZE) { + DumpObjSegSize (F, 0); + } } /* Close the file */ @@ -246,23 +284,25 @@ int main (int argc, char* argv []) { "--dump-files", 0, OptDumpFiles }, { "--dump-header", 0, OptDumpHeader }, { "--dump-imports", 0, OptDumpImports }, + { "--dump-lineinfo", 0, OptDumpLineInfo }, { "--dump-options", 0, OptDumpOptions }, { "--dump-segments", 0, OptDumpSegments }, - { "--help", 0, OptHelp }, - { "--version", 0, OptVersion }, + { "--dump-segsize", 0, OptDumpSegSize }, + { "--help", 0, OptHelp }, + { "--version", 0, OptVersion }, }; - int I; + unsigned I; /* Initialize the cmdline module */ - InitCmdLine (argc, argv, "od65"); + InitCmdLine (&argc, &argv, "od65"); /* Check the parameters */ I = 1; - while (I < argc) { + while (I < ArgCount) { /* Get the argument */ - const char* Arg = argv [I]; + const char* Arg = ArgVec[I]; /* Check for an option */ if (Arg [0] == '-') { @@ -280,6 +320,10 @@ int main (int argc, char* argv []) OptDumpHeader (Arg, 0); break; + case 'S': + OptDumpSegSize (Arg, 0); + break; + case 'V': OptVersion (Arg, 0); break;