* corelow.c, exec.c, inftarg.c, m3-nat.c, op50-rom.c, procfs.c,
[deliverable/binutils-gdb.git] / gdb / nlmread.c
index 3895053282f753eaee3a562b1de4e5ed3f51123b..7ba977a87cbb6850b729fc01d63c1309b8ebf3ae 100644 (file)
@@ -150,25 +150,18 @@ nlm_symtab_read (abfd, addr, objfile)
              symaddr = sym -> value + sym -> section -> vma;
              /* Relocate all non-absolute symbols by base address.  */
              if (sym -> section != &bfd_abs_section)
-               {
-                 symaddr += addr;
-               }
+               symaddr += addr;
 
              /* For non-absolute symbols, use the type of the section
-                they are relative to, to intuit text/data.  Bfd provides
+                they are relative to, to intuit text/data.  BFD provides
                 no way of figuring this out for absolute symbols. */
              if (sym -> section -> flags & SEC_CODE)
-               {
-                 ms_type = mst_text;
-               }
+               ms_type = mst_text;
              else if (sym -> section -> flags & SEC_DATA)
-               {
-                 ms_type = mst_data;
-               }
+               ms_type = mst_data;
              else
-               {
-                 ms_type = mst_unknown;
-               }
+               ms_type = mst_unknown;
+
              record_minimal_symbol ((char *) sym -> name, symaddr, ms_type,
                                     objfile);
            }
@@ -214,6 +207,7 @@ nlm_symfile_read (objfile, section_offsets, mainline)
   bfd *abfd = objfile -> obfd;
   struct cleanup *back_to;
   CORE_ADDR offset;
+  struct symbol *mainsym;
 
   init_minimal_symbol_collection ();
   back_to = make_cleanup (discard_minimal_symbols, 0);
@@ -228,18 +222,20 @@ nlm_symfile_read (objfile, section_offsets, mainline)
   nlm_symtab_read (abfd, offset, objfile);
 
   stabsect_build_psymtabs (objfile, section_offsets, mainline, ".stab",
-                          ".stabstr");
+                          ".stabstr", ".text");
 
-  /* FIXME:  We could locate and read the optional native debugging format
-     here and add the symbols to the minimal symbol table. */
+  mainsym = lookup_symbol ("main", NULL, VAR_NAMESPACE, NULL, NULL);
 
-  if (!have_partial_symbols ())
+  if (mainsym
+      && SYMBOL_CLASS(mainsym) == LOC_BLOCK)
     {
-      wrap_here ("");
-      printf_filtered ("(no debugging symbols found)...");
-      wrap_here ("");
+      objfile->ei.main_func_lowpc = BLOCK_START (SYMBOL_BLOCK_VALUE (mainsym));
+      objfile->ei.main_func_highpc = BLOCK_END (SYMBOL_BLOCK_VALUE (mainsym));
     }
 
+  /* FIXME:  We could locate and read the optional native debugging format
+     here and add the symbols to the minimal symbol table. */
+
   /* Install any minimal symbols that have been collected as the current
      minimal symbols for this objfile. */
 
This page took 0.024107 seconds and 4 git commands to generate.