Do not insert STRTAB sections explicitly
[centaur.git] / src / model / dump.c
index 882ba0af7d3d36bb27c061b8dd1c9d20c7b3aaea..27556f9ebc80d57bf0e1dc36e83617d969e6e5a6 100644 (file)
@@ -184,6 +184,19 @@ void elfu_mDumpEhdr(ElfuElf *me)
 }
 
 
+
+static void* subScnDump(ElfuElf *me, ElfuScn *ms, void *aux1, void *aux2)
+{
+  (void) aux1;
+  (void) aux2;
+
+  printf(" [%4d] ", elfu_mScnIndex(me, ms));
+  elfu_mDumpScn(me, ms);
+
+  return NULL;
+}
+
+
 void elfu_mDumpElf(ElfuElf *me)
 {
   ElfuPhdr *mp;
@@ -209,14 +222,18 @@ void elfu_mDumpElf(ElfuElf *me)
   ELFU_INFO("\n");
 
 
+  ELFU_INFO("Orphaned sections:\n");
+  CIRCLEQ_FOREACH(ms, &me->orphanScnList, elemChildScn) {
+    ELFU_INFO("        * %-17s @ %8jx\n",
+              elfu_mScnName(me, ms),
+              ms->shdr.sh_addr);
+  }
+  ELFU_INFO("\n");
+
+
   ELFU_INFO("Sections:\n");
   ELFU_INFO("     #  Name              sh_type          sh_addr sh_offset  sh_size ES Fl Al sh_link           sh_info          \n");
   ELFU_INFO("       |                 |               |        |         |        |  |  |  |                 |                 \n");
-  i = 1;
-  CIRCLEQ_FOREACH(ms, &me->scnList, elem) {
-    printf(" [%4d] ", i);
-    elfu_mDumpScn(me, ms);
-    i++;
-  }
+  elfu_mScnForall(me, subScnDump, &i, NULL);
   ELFU_INFO("\n");
 }