* core.c (core_files_info): Shorten output.
authorJohn Gilmore <gnu@cygnus>
Sat, 28 Sep 1991 01:31:23 +0000 (01:31 +0000)
committerJohn Gilmore <gnu@cygnus>
Sat, 28 Sep 1991 01:31:23 +0000 (01:31 +0000)
* exec.c (exec_files_info):  Ditto.
(build_section_table):  Ignore zero-length sections.

gdb/core.c
gdb/exec.c

index b4f812a7173f35e4c6a341d835bf2496ee7205a2..c56281b289b6b9264a1f8fdf88577e9314ca2b38 100644 (file)
@@ -282,13 +282,11 @@ core_files_info (t)
   printf ("\tCore file `%s'.\n", bfd_get_filename(core_bfd));
 
   for (p = t->sections; p < t->sections_end; p++) {
-    printf(p->bfd == core_bfd? "\tcore file  ": "\tshared lib ");
-    printf("from %s", local_hex_string_custom (p->addr, "08"));
-    printf(" to %s", local_hex_string_custom (p->endaddr, "08"));
+    printf("\t%s", local_hex_string_custom (p->addr, "08"));
+    printf(" - %s is %s", local_hex_string_custom (p->endaddr, "08"),
+          bfd_section_name (p->bfd, p->sec_ptr));
     if (p->bfd != core_bfd) {
-      printf(" is %s in %s",
-            bfd_section_name (p->bfd, p->sec_ptr),
-            bfd_get_filename (p->bfd));
+      printf(" in %s", bfd_get_filename (p->bfd));
     }
     printf ("\n");
   }
index 5f8f398d83f7ea533ebdcfae19508790eb1ed312..0c645f226a35516d0ed130070350d50c4de2ad3b 100644 (file)
@@ -52,7 +52,7 @@ int write_files = 0;
 
 /* Text start and end addresses (KLUDGE) if needed */
 
-#if NEED_TEXT_START_END
+#ifdef NEED_TEXT_START_END
 CORE_ADDR text_start = 0;
 CORE_ADDR text_end   = 0;
 #endif
@@ -144,15 +144,18 @@ exec_file_command (filename, from_tty)
        error ("Can't find the file sections in `%s': %s", 
                exec_bfd->filename, bfd_errmsg (bfd_error));
 
-#if NEED_TEXT_START_END
+#ifdef NEED_TEXT_START_END
       /* This is a KLUDGE (FIXME) because a few places in a few ports
         (29K springs to mind) need this info for now.  */
       {
        struct section_table *p;
        for (p = exec_ops.sections; p < exec_ops.sections_end; p++)
-         if (!strcmp (".text", bfd_section_name (p->bfd, p->sec_ptr))
-           text_start = p->addr;
-           text_end   = p->endaddr;
+         if (!strcmp (".text", bfd_section_name (p->bfd, p->sec_ptr)))
+           {
+             text_start = p->addr;
+             text_end   = p->endaddr;
+             break;
+           }
       }
 #endif
 
@@ -201,6 +204,8 @@ add_to_section_table (abfd, asect, table_pp_char)
   /* FIXME, we need to handle BSS segment here...it alloc's but doesn't load */
   if (!(aflag & SEC_LOAD))
     return;
+  if (0 == bfd_section_size (abfd, asect))
+    return;
   (*table_pp)->bfd = abfd;
   (*table_pp)->sec_ptr = asect;
   (*table_pp)->addr = bfd_section_vma (abfd, asect);
@@ -320,10 +325,11 @@ exec_files_info ()
 
   printf ("\tExecutable file `%s'.\n", bfd_get_filename(exec_bfd));
 
-  for (p = exec_ops.sections; p < exec_ops.sections_end; p++)
-    printf("\texecutable from 0x%08x to 0x%08x is %s\n",
-       p->addr, p->endaddr,
+  for (p = exec_ops.sections; p < exec_ops.sections_end; p++) {
+    printf("\t%s", local_hex_string_custom (p->addr, "08"));
+    printf(" - %s is %s\n", local_hex_string_custom (p->endaddr, "08"),
        bfd_section_name (exec_bfd, p->sec_ptr));
+  }
 }
 
 static void