/* Read NLM (NetWare Loadable Module) format executable files for GDB.
- Copyright 1993, 1994, 1998 Free Software Foundation, Inc.
+ Copyright 1993, 1994, 1995, 1996, 1998, 1999, 2000
+ Free Software Foundation, Inc.
Written by Fred Fish at Cygnus Support (fnf@cygnus.com).
This file is part of GDB.
Boston, MA 02111-1307, USA. */
#include "defs.h"
-#include "gdb_string.h"
#include "bfd.h"
#include "symtab.h"
#include "symfile.h"
#include "objfiles.h"
-#include "gdb-stabs.h"
#include "buildsym.h"
#include "stabsread.h"
+#include "block.h"
-extern void _initialize_nlmread PARAMS ((void));
+extern void _initialize_nlmread (void);
-static void
-nlm_new_init PARAMS ((struct objfile *));
+static void nlm_new_init (struct objfile *);
-static void
-nlm_symfile_init PARAMS ((struct objfile *));
+static void nlm_symfile_init (struct objfile *);
-static void
-nlm_symfile_read PARAMS ((struct objfile *, int));
+static void nlm_symfile_read (struct objfile *, int);
-static void
-nlm_symfile_finish PARAMS ((struct objfile *));
+static void nlm_symfile_finish (struct objfile *);
-static void
-nlm_symtab_read PARAMS ((bfd *, CORE_ADDR, struct objfile *));
+static void nlm_symtab_read (bfd *, CORE_ADDR, struct objfile *);
/* Initialize anything that needs initializing when a completely new symbol
file is specified (not just adding some symbols from another file, e.g. a
file at some point in the near future. */
static void
-nlm_new_init (ignore)
- struct objfile *ignore;
+nlm_new_init (struct objfile *ignore)
{
stabsread_new_init ();
buildsym_new_init ();
just a stub. */
static void
-nlm_symfile_init (ignore)
- struct objfile *ignore;
+nlm_symfile_init (struct objfile *ignore)
{
}
*/
static void
-nlm_symtab_read (abfd, addr, objfile)
- bfd *abfd;
- CORE_ADDR addr;
- struct objfile *objfile;
+nlm_symtab_read (bfd *abfd, CORE_ADDR addr, struct objfile *objfile)
{
long storage_needed;
asymbol *sym;
if (storage_needed > 0)
{
symbol_table = (asymbol **) xmalloc (storage_needed);
- back_to = make_cleanup (free, symbol_table);
+ back_to = make_cleanup (xfree, symbol_table);
number_of_symbols = bfd_canonicalize_symtab (abfd, symbol_table);
if (number_of_symbols < 0)
error ("Can't read symbols from %s: %s", bfd_get_filename (abfd),
is not currently used. */
static void
-nlm_symfile_read (objfile, mainline)
- struct objfile *objfile;
- int mainline;
+nlm_symfile_read (struct objfile *objfile, int mainline)
{
bfd *abfd = objfile->obfd;
struct cleanup *back_to;
nlm_symtab_read (abfd, offset, objfile);
+ /* Install any minimal symbols that have been collected as the current
+ minimal symbols for this objfile. */
+
+ install_minimal_symbols (objfile);
+ do_cleanups (back_to);
+
stabsect_build_psymtabs (objfile, mainline, ".stab",
".stabstr", ".text");
- mainsym = lookup_symbol ("main", NULL, VAR_NAMESPACE, NULL, NULL);
+ mainsym = lookup_symbol (main_name (), NULL, VAR_NAMESPACE, NULL, NULL);
if (mainsym
&& SYMBOL_CLASS (mainsym) == LOC_BLOCK)
/* 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. */
-
- install_minimal_symbols (objfile);
-
- do_cleanups (back_to);
}
objfile struct from the global list of known objfiles. */
static void
-nlm_symfile_finish (objfile)
- struct objfile *objfile;
+nlm_symfile_finish (struct objfile *objfile)
{
if (objfile->sym_private != NULL)
{
- mfree (objfile->md, objfile->sym_private);
+ xmfree (objfile->md, objfile->sym_private);
}
}
};
void
-_initialize_nlmread ()
+_initialize_nlmread (void)
{
add_symtab_fns (&nlm_sym_fns);
}