Minor bug fixes from BSD Net2 gdb:

* blockframe.c (get_prev_frame_info):  If FRAME_CHAIN_COMBINE
returns 0, there is no previous frame.
* breakpoint.c (commands_command):  If !from_tty, don't call
input_from_terminal_p().
* dbxread.c (record_misc_function):  Speed up slightly.
(compare_psymbols):  Ditto.
* infcmd.c (do_registers_info):  Take a second argument to
determine whether to print float registers.  "info registers"
does not do so anymore.  "info all-registers" does, now.
* mips-tdep.c, pyr-tdep.c (xxx_do_registers_info):  Take second
arg and ignore it.
* tm-mips.h, tm-pyr.h (DO_REGISTERS_INFO):  Pass second arg.
* inflow.c (initialize_inflow):  Set tflags_ours correctly.
This commit is contained in:
John Gilmore
1991-08-19 20:54:03 +00:00
parent 6724ff46c8
commit 361bf6eee5
4 changed files with 17 additions and 12 deletions

View File

@@ -8,19 +8,19 @@
This file is part of GDB. This file is part of GDB.
GDB is free software; you can redistribute it and/or modify This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 1, or (at your option) the Free Software Foundation; either version 2 of the License, or
any later version. (at your option) any later version.
GDB is distributed in the hope that it will be useful, This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details. GNU General Public License for more details.
You should have received a copy of the GNU General Public License You should have received a copy of the GNU General Public License
along with GDB; see the file COPYING. If not, write to along with this program; if not, write to the Free Software
the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */
/* FIXME: Can a MIPS porter/tester determine which of these include /* FIXME: Can a MIPS porter/tester determine which of these include
files we still need? -- gnu@cygnus.com */ files we still need? -- gnu@cygnus.com */
@@ -295,7 +295,8 @@ FRAME_ADDR mips_frame_chain(frame)
else else
{ /* This hack depends on the internals of __start. */ { /* This hack depends on the internals of __start. */
/* We also assume the breakpoints are *not* inserted */ /* We also assume the breakpoints are *not* inserted */
if (read_memory_integer (saved_pc + 8, 4) & 0xFC00003F == 0xD) if (saved_pc == 0
|| read_memory_integer (saved_pc + 8, 4) & 0xFC00003F == 0xD)
return 0; /* break */ return 0; /* break */
} }
proc_desc = find_proc_desc(saved_pc, frame); proc_desc = find_proc_desc(saved_pc, frame);
@@ -579,8 +580,10 @@ static mips_print_register(regnum, all)
} }
} }
mips_do_registers_info(regnum) /* Replacement for generic do_registers_info. fpregs is currently ignored. */
mips_do_registers_info (regnum, fpregs)
int regnum; int regnum;
int fpregs;
{ {
if (regnum != -1) { if (regnum != -1) {
mips_print_register (regnum, 0); mips_print_register (regnum, 0);

View File

@@ -46,10 +46,12 @@ pyr_print_registers(reg_buf, regnum)
"usp", usp); "usp", usp);
} }
/* Print the register regnum, or all registers if regnum is -1. */ /* Print the register regnum, or all registers if regnum is -1.
fpregs is currently ignored. */
pyr_do_registers_info (regnum) pyr_do_registers_info (regnum, fpregs)
int regnum; int regnum;
int fpregs;
{ {
/* On a pyr, we know a virtual register can always fit in an long. /* On a pyr, we know a virtual register can always fit in an long.
Here (and elsewhere) we take advantage of that. Yuk. */ Here (and elsewhere) we take advantage of that. Yuk. */

View File

@@ -134,7 +134,7 @@ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */
/* Define DO_REGISTERS_INFO() to do machine-specific formatting /* Define DO_REGISTERS_INFO() to do machine-specific formatting
of register dumps. */ of register dumps. */
#define DO_REGISTERS_INFO(_regnum) mips_do_registers_info(_regnum) #define DO_REGISTERS_INFO(_regnum, fp) mips_do_registers_info(_regnum, fp)
#define REGISTER_U_ADDR(addr, blockend, regno) \ #define REGISTER_U_ADDR(addr, blockend, regno) \
if (blockend == 0) { \ if (blockend == 0) { \

View File

@@ -181,7 +181,7 @@ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */
/* Define DO_REGISTERS_INFO() to do machine-specific formatting /* Define DO_REGISTERS_INFO() to do machine-specific formatting
of register dumps. */ of register dumps. */
#define DO_REGISTERS_INFO(_regnum) pyr_do_registers_info(_regnum) #define DO_REGISTERS_INFO(_regnum, fp) pyr_do_registers_info(_regnum, fp)
/* need this so we can find the global registers: they never get saved. */ /* need this so we can find the global registers: they never get saved. */
extern unsigned int global_reg_offset; extern unsigned int global_reg_offset;