From 0d98155c9484f354c4e65e7c39faa3d751ce2599 Mon Sep 17 00:00:00 2001 From: Peter Schauer Date: Sun, 7 Aug 1994 13:33:45 +0000 Subject: * config/mips/tm-irix5.h (IN_SIGTRAMP): Redefine for Irix 5, Irix 5 has a standard _sigtramp signal handler. * irix5-nat.c (solib_add): Get rid of sigtramp_address handling, it is not needed for a standard _sigtramp signal handler. Add shared library sections to the section table of the target before adding the symbols. * mips-tdep.c (mips_skip_prologue): Do not skip load immediate instructions that do not prepare a stack adjustment. * regex.c (SIGN_EXTEND_CHAR): Update to emacs-19.25 definition, which does the right thing on machines where `char' is unsigned. --- gdb/irix5-nat.c | 61 ++++++++++++++++++++++++++------------------------------- 1 file changed, 28 insertions(+), 33 deletions(-) (limited to 'gdb/irix5-nat.c') diff --git a/gdb/irix5-nat.c b/gdb/irix5-nat.c index 590427e..74004d41 100644 --- a/gdb/irix5-nat.c +++ b/gdb/irix5-nat.c @@ -217,8 +217,6 @@ static char *bkpt_names[] = { char shadow_contents[BREAKPOINT_MAX]; /* Stash old bkpt addr contents */ -extern CORE_ADDR sigtramp_address, sigtramp_end; - struct so_list { struct so_list *next; /* next structure in linked list */ struct obj_list ll; @@ -615,37 +613,10 @@ solib_add (arg_string, from_tty, target) error ("Invalid regexp: %s", re_err); } - /* Getting new symbols may change our opinion about what is - frameless. */ - reinit_frame_cache (); - /* Not to mention where _sigtramp is. */ - sigtramp_address = 0; - - while ((so = find_solib (so)) != NULL) - { - if (so -> lm.o_path[0] && re_exec (so -> lm.o_path)) - { - so -> from_tty = from_tty; - if (so -> symbols_loaded) - { - if (from_tty) - { - printf_unfiltered ("Symbols already loaded for %s\n", so -> lm.o_path); - } - } - else if (catch_errors - (symbol_add_stub, (char *) so, - "Error while reading shared library symbols:\n", - RETURN_MASK_ALL)) - { - so_last = so; - so -> symbols_loaded = 1; - } - } - } - - /* Now add the shared library sections to the section table of the - specified target, if any. */ + /* Add the shared library sections to the section table of the + specified target, if any. We have to do this before reading the + symbol files as symbol_file_add calls reinit_frame_cache and + creating a new frame might access memory in the shared library. */ if (target) { /* Count how many new section_table entries there are. */ @@ -691,6 +662,30 @@ solib_add (arg_string, from_tty, target) } } } + + /* Now add the symbol files. */ + while ((so = find_solib (so)) != NULL) + { + if (so -> lm.o_path[0] && re_exec (so -> lm.o_path)) + { + so -> from_tty = from_tty; + if (so -> symbols_loaded) + { + if (from_tty) + { + printf_unfiltered ("Symbols already loaded for %s\n", so -> lm.o_path); + } + } + else if (catch_errors + (symbol_add_stub, (char *) so, + "Error while reading shared library symbols:\n", + RETURN_MASK_ALL)) + { + so_last = so; + so -> symbols_loaded = 1; + } + } + } } /* -- cgit v1.1