]> git.sur5r.net Git - cc65/commitdiff
Adapt to changed object file format.
authoruz <uz@b7a2c559-68d2-44c3-8de9-860c34a00d81>
Thu, 27 Jan 2011 16:47:45 +0000 (16:47 +0000)
committeruz <uz@b7a2c559-68d2-44c3-8de9-860c34a00d81>
Thu, 27 Jan 2011 16:47:45 +0000 (16:47 +0000)
git-svn-id: svn://svn.cc65.org/cc65/trunk@4930 b7a2c559-68d2-44c3-8de9-860c34a00d81

src/od65/dump.c
src/od65/main.c

index 26b0c38e998161bcc2cd3aaea3c5201bbd03cfca..d812358c4f94eded8ddf60319796888824c67af7 100644 (file)
@@ -6,7 +6,7 @@
 /*                                                                           */
 /*                                                                           */
 /*                                                                           */
-/* (C) 2002-2010, Ullrich von Bassewitz                                      */
+/* (C) 2002-2011, Ullrich von Bassewitz                                      */
 /*                Roemerstrasse 52                                           */
 /*                D-70794 Filderstadt                                        */
 /* EMail:         uz@cc65.org                                                */
@@ -111,7 +111,7 @@ static char* TimeToStr (unsigned long Time)
     /* Remove the trailing newline */
     unsigned Len = strlen (S);
     if (Len > 0 && S[Len-1] == '\n') {
-       S[Len-1 ] = '\0';
+       S[Len-1 ] = '\0';
     }
 
     /* Return the time string */
@@ -120,6 +120,20 @@ static char* TimeToStr (unsigned long Time)
 
 
 
+static void SkipLineInfoList (FILE* F)
+/* Skip a line info list from the given file */
+{
+    /* Count preceeds the list */
+    unsigned long Count = ReadVar (F);
+
+    /* Skip indices */
+    while (Count--) {
+        (void) ReadVar (F);
+    }
+}
+
+
+
 static void SkipExpr (FILE* F)
 /* Skip an expression from the given file */
 {
@@ -145,7 +159,7 @@ static void SkipExpr (FILE* F)
            case EXPR_SECTION:
                /* Read the segment number */
                (void) Read8 (F);
-               break;
+               break;
 
            default:
                Error ("Invalid expression op: %02X", Op);
@@ -180,7 +194,7 @@ static const char* GetExportFlags (unsigned Flags, const unsigned char* ConDes)
     }
 
     /* Symbol usage */
-    switch (Flags & SYM_MASK_LABEL) {       
+    switch (Flags & SYM_MASK_LABEL) {
                case SYM_EQUATE: strcat (TypeDesc, ",SYM_EQUATE"); break;
                case SYM_LABEL:  strcat (TypeDesc, ",SYM_LABEL");  break;
     }
@@ -388,7 +402,7 @@ void DumpObjFiles (FILE* F, unsigned long Offset)
        /* Read the data for one file */
                const char*   Name  = GetString (&StrPool, ReadVar (F));
        unsigned long MTime = Read32 (F);
-       unsigned long Size  = Read32 (F);
+       unsigned long Size  = ReadVar (F);
        unsigned      Len   = strlen (Name);
 
        /* Print the header */
@@ -473,7 +487,6 @@ void DumpObjImports (FILE* F, unsigned long Offset)
     Collection StrPool = AUTO_COLLECTION_INITIALIZER;
     unsigned   Count;
     unsigned   I;
-    FilePos    Pos;
 
     /* Seek to the header position and read the header */
     FileSetPos (F, Offset);
@@ -500,7 +513,9 @@ void DumpObjImports (FILE* F, unsigned long Offset)
                unsigned char AddrSize = Read8 (F);
                const char*   Name     = GetString (&StrPool, ReadVar (F));
        unsigned      Len      = strlen (Name);
-       ReadFilePos (F, &Pos);
+
+        /* Skip the line infos */
+        SkipLineInfoList (F);
 
        /* Print the header */
        printf ("    Index:%27u\n", I);
@@ -524,7 +539,6 @@ void DumpObjExports (FILE* F, unsigned long Offset)
     Collection  StrPool = AUTO_COLLECTION_INITIALIZER;
     unsigned           Count;
     unsigned           I;
-    FilePos            Pos;
 
     /* Seek to the header position and read the header */
     FileSetPos (F, Offset);
@@ -567,7 +581,9 @@ void DumpObjExports (FILE* F, unsigned long Offset)
            Value = Read32 (F);
            HaveValue = 1;
        }
-       ReadFilePos (F, &Pos);
+
+        /* Skip the line infos */
+        SkipLineInfoList (F);
 
        /* Print the header */
        printf ("    Index:%27u\n", I);
@@ -595,7 +611,6 @@ void DumpObjDbgSyms (FILE* F, unsigned long Offset)
     Collection  StrPool = AUTO_COLLECTION_INITIALIZER;
     unsigned    Count;
     unsigned    I;
-    FilePos     Pos;
 
     /* Seek to the header position and read the header */
     FileSetPos (F, Offset);
@@ -640,7 +655,9 @@ void DumpObjDbgSyms (FILE* F, unsigned long Offset)
            Value = Read32 (F);
            HaveValue = 1;
        }
-       ReadFilePos (F, &Pos);
+
+        /* Skip the line infos */
+        SkipLineInfoList (F);
 
        /* Print the header */
        printf ("    Index:%27u\n", I);
@@ -697,9 +714,8 @@ void DumpObjLineInfo (FILE* F, unsigned long Offset)
     /* Read and print all line infos */
     for (I = 0; I < Count; ++I) {
 
-       FilePos   Pos;
-
                /* Read one line info */
+       FilePos   Pos;
        ReadFilePos (F, &Pos);
 
        /* Print the header */
index e8bea3cbadf6002c5b2129aa4c268708a586e2f1..aa046634f0a16117346acf3e9c0aa54a70ba907c 100644 (file)
@@ -6,7 +6,7 @@
 /*                                                                           */
 /*                                                                           */
 /*                                                                           */
-/* (C) 2000-2009, Ullrich von Bassewitz                                      */
+/* (C) 2000-2011, Ullrich von Bassewitz                                      */
 /*                Roemerstrasse 52                                           */
 /*                D-70794 Filderstadt                                        */
 /* EMail:         uz@cc65.org                                                */
@@ -201,7 +201,7 @@ static void OptVersion (const char* Opt attribute ((unused)),
 /* Print the assembler version */
 {
     fprintf (stderr,
-                    "%s V%s - (C) Copyright 2000-2009, Ullrich von Bassewitz\n",
+                    "%s V%s - (C) Copyright 2000-2011, Ullrich von Bassewitz\n",
                     ProgName, GetVersionAsString ());
 }