instead of frame_read_register.
(i386_fetch_pointer_argument): Use get_frame_register_unsigned
instead of frame_read_register. Use I386_ESP_REGNUM instead of
SP_REGNUM.
(i386_frame_prev_register): Use frame_unwind_register_unsigned
instead of frame_unwind_unsigned_register. Use
I386_EFLAGS_REGISTER instead of PS_REGNUM.
(i386_get_longjmp_target): Use regcache_read_unsigned_register
instead of read_register. Use builtin_type_void_data_ptr instead
of builtin_type_void_func_ptr when extracting the address of the
jmp_buf.
(i386_extract_return_value, i386_store_return_value,
i386_pseudo_register_read, i386_pseudo_register_write): Use
register_size instead REGISTER_RAW_SIZE.
(i387_print_float_info): Use get_frame_register and
get_frame_register_unsigned instead of frame_register_read.
(child_resume): Make `eflags' an ULONGEST. Use
regcache_cooked_read_unsigned and regcache_cooked_write_unsigned
instead of register_read and register_write.
Fix GDB PR cli/926.
* cli/cli-decode.c (add_setshow_uinteger_cmd): New function.
* command.h (add_setshow_uinteger_cmd): Declare.
* frame.c (set_backtrace_cmd): New function.
(show_backtrace_cmd): New function.
* frame.c (_initialize_frame): Replace "set/show
backtrace-below-main" with "set/show backtrace past-main". Add
command "set/show backtrace limit".
(backtrace_past_main): Rename "backtrace_below_main".
(backtrace_limit): New variable.
(get_prev_frame): Update. Check the backtrace_limit.
2003-08-09 Andrew Cagney <cagney@redhat.com>
* gdb.texinfo (Backtrace): Replace "set/show backtrace-below-main"
with "set/show backtrace past-main" and "set/show backtrace
limit".
Index: doc/gdb.texinfo
===================================================================
RCS file: /cvs/src/src/gdb/doc/gdb.texinfo,v
retrieving revision 1.174
diff -u -r1.174 gdb.texinfo
--- doc/gdb.texinfo 8 Aug 2003 01:58:00 -0000 1.174
+++ doc/gdb.texinfo 9 Aug 2003 14:57:10 -0000
@@ -3922,27 +3922,40 @@
value, indicating that your program has stopped at the beginning of the
code for line @code{993} of @code{builtin.c}.
-@kindex set backtrace-below-main
-@kindex show backtrace-below-main
+@kindex set backtrace past-main
+@kindex show backtrace past-main
+@kindex set backtrace limit
+@kindex show backtrace limit
-Most programs have a standard entry point---a place where system libraries
-and startup code transition into user code. For C this is @code{main}.
-When @value{GDBN} finds the entry function in a backtrace it will terminate
-the backtrace, to avoid tracing into highly system-specific (and generally
-uninteresting) code. If you need to examine the startup code, then you can
-change this behavior.
+Most programs have a standard user entry point---a place where system
+libraries and startup code transition into user code. For C this is
+@code{main}. When @value{GDBN} finds the entry function in a backtrace
+it will terminate the backtrace, to avoid tracing into highly
+system-specific (and generally uninteresting) code.
+
+If you need to examine the startup code, or limit the number of levels
+in a backtrace, you can change this behavior:
@table @code
-@item set backtrace-below-main off
+@item set backtrace past-main
+@itemx set backtrace past-main on
+Backtraces will continue past the user entry point.
+
+@item set backtrace past-main off
Backtraces will stop when they encounter the user entry point. This is the
default.
-@item set backtrace-below-main
-@itemx set backtrace-below-main on
-Backtraces will continue past the user entry point to the top of the stack.
+@item show backtrace past-main
+Display the current user entry point backtrace policy.
+
+@item set backtrace limit @var{n}
+@itemx set backtrace limit 0
+@cindex backtrace limit
+Limit the backtrace to @var{n} levels. A value of zero means
+unlimited.
-@item show backtrace-below-main
-Display the current backtrace policy.
+@item show backtrace limit
+Display the current limit on backtrace levels.
@end table
@node Selection
* interps.c (interp_set): Check for a NULL "old_interp".
Index: mi/ChangeLog
2003-08-08 Andrew Cagney <cagney@redhat.com>
* mi-main.c (captured_mi_execute_command): Add "mi2" and "mi3" to
interpreters that hack around CLI.
* mi-interp.c (mi3_command_loop): New function.
(mi_interpreter_resume): Check for "mi3", default to "mi2".
2003-08-08 H.J. Lu <hongjiu.lu@intel.com>
* Makefile.in (FLAGS_TO_PASS): Add DESTDIR.
(install-only): Support DESTDIR.
(uninstall): Likewise.
(install-gdbtk): Likewise.
gdb/doc/
2003-08-08 H.J. Lu <hongjiu.lu@intel.com>
* Makefile.in (install-info): Support DESTDIR.
(install-html): Likewise.
gdb/gdbserver/
2003-08-08 H.J. Lu <hongjiu.lu@intel.com>
* Makefile.in (install-only): Create dest dir. Support DESTDIR.
(uninstall): Support DESTDIR.
mmalloc/
2003-08-08 H.J. Lu <hongjiu.lu@intel.com>
* Makefile.in (install-info): Create dest dir. Support DESTDIR.
(install): Likewise.
* inferior.h (AT_SYMBOL): Define.
* blockframe.c (inside_entry_file): Check for AT_SYMBOL.
* infcall.c (call_function_by_hand): Add code to handle AT_SYMBOL.
* mips-tdep.c (mips_call_dummy_address): Delete function.
(mips_gdbarch_init): Set call_dummy_location to AT_SYMBOL, do not
set call_dummy_address.
* NEWS: Mention that m32r is multi-arch.
From 2003-07-28 Kei Sakamoto <sakamoto.kei@renesas.com>:
* configure.tgt: Recognize m32r-*-*.
* config/m32r/tm-m32r.h: Delete file.
* config/m32r/m32r.mt: New file.
* m32r-rom.c (m32r_upload_command): Use hostent only when
gethostname succeeds, in order to avoid a compilation
warning.
* m32r-tdep.c (m32r_store_return_value): Add a cast to remove a
compiler warning.
* user-regs.c (struct user_reg): Add "next" link.
(struct user_regs): Replace "user" with "first" and "last" links.
(append_user_reg): Add pre-allocated "reg" parameter.
(builtin_user_regs): Provide initial value for "last".
(user_reg_add_builtin): XMALLOC memory for append_user_reg.
(user_regs_init): Allocate memory from the gdbarch obstack.
(user_reg_add): GDBARCH_OBSTACK_ZALLOC memory for append_user_reg.
(user_reg_map_name_to_regnum): Rewrite to search the user_reg
linked list.
(usernum_to_user_reg): New function.
(user_reg_map_regnum_to_name): Use usernum_to_user_reg.
(value_of_user_reg): Use usernum_to_user_reg.
(user_regs_free): Delete function.
(_initialize_user_regs): Update register_gdbarch_data call.
* structs.h (value_being_returned): Add a struct_addr argument.
* infcall.c (call_function_by_hand): Pass struct_addr to
value_being_returned.
* infcmd.c (print_return_value): Pass zero as struct_addr.
* values.c (value_being_returned): If struct_addr is passed,
use it instead of trying to recover it from the inferior.
the prologue analyzer won't need to attempt to extract the pc
value from the woefully incomplete dummy frame.
(mn10300_analyze_prologue): Avoid calls to get_frame_pc() when
possible. Disable code which modifies the frame.
* regcache.c (struct regcache_descr): Update comments on
nr_raw_registers.
(init_legacy_regcache_descr): Don't set nr_raw_registers or
sizeof_raw_register_valid_p.
(init_regcache_descr): Set nr_raw_registers and
sizeof_raw_register_valid_p before calling
init_legacy_regcache_descr.