aboutsummaryrefslogtreecommitdiff
path: root/gdb
diff options
context:
space:
mode:
authorPeter Schauer <Peter.Schauer@mytum.de>1994-08-07 13:33:45 +0000
committerPeter Schauer <Peter.Schauer@mytum.de>1994-08-07 13:33:45 +0000
commit0d98155c9484f354c4e65e7c39faa3d751ce2599 (patch)
treeaaca8b9e8002211cca048e062714d99792cd83d5 /gdb
parentf20860cdbc5488e3e481c0bf12c9f78d92e6db29 (diff)
downloadgdb-0d98155c9484f354c4e65e7c39faa3d751ce2599.zip
gdb-0d98155c9484f354c4e65e7c39faa3d751ce2599.tar.gz
gdb-0d98155c9484f354c4e65e7c39faa3d751ce2599.tar.bz2
* 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.
Diffstat (limited to 'gdb')
-rw-r--r--gdb/ChangeLog13
-rw-r--r--gdb/irix5-nat.c61
-rw-r--r--gdb/regex.c12
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;