From 0d98155c9484f354c4e65e7c39faa3d751ce2599 Mon Sep 17 00:00:00 2001 From: Peter Schauer Date: Sun, 7 Aug 1994 13:33:45 +0000 Subject: [PATCH] * 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/ChangeLog | 13 ++++++++++++ gdb/irix5-nat.c | 61 ++++++++++++++++++++++++++------------------------------- gdb/regex.c | 12 ++++++++++-- 3 files changed, 51 insertions(+), 35 deletions(-) diff --git a/gdb/ChangeLog b/gdb/ChangeLog index 17841e8..3fd8305 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,16 @@ +Sat Aug 6 22:27:30 1994 Peter Schauer (pes@regent.e-technik.tu-muenchen.de) + + * 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. + Fri Aug 5 17:50:59 1994 Stu Grossman (grossman@cygnus.com) * remote.c (remote_open): Move setting of inferior_pid prior to 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; + } + } + } } /* diff --git a/gdb/regex.c b/gdb/regex.c index 9b6dc5b..3f30284 100644 --- a/gdb/regex.c +++ b/gdb/regex.c @@ -93,8 +93,16 @@ init_syntax_once () #define BYTEWIDTH 8 -#ifndef SIGN_EXTEND_CHAR -#define SIGN_EXTEND_CHAR(x) (x) +/* We remove any previous definition of `SIGN_EXTEND_CHAR', + since ours (we hope) works properly with all combinations of + machines, compilers, `char' and `unsigned char' argument types. + (Per Bothner suggested the basic approach.) */ +#undef SIGN_EXTEND_CHAR +#if __STDC__ +#define SIGN_EXTEND_CHAR(c) ((signed char) (c)) +#else /* not __STDC__ */ +/* As in Harbison and Steele. */ +#define SIGN_EXTEND_CHAR(c) ((((unsigned char) (c)) ^ 128) - 128) #endif static int obscure_syntax = 0; -- 2.7.4