* tuiWin.c, tuiWin.h, tui.c, tui.h, tuiCommand.c: Add FSF copyright.
tuiCommand.h, tuiIO.c, tuiIO.h, tuiData.h, tuiData.c: Likewise.
tuiDataWin.c, tuiDataWin.h, tuiDisassem.c, tuiDisassem.h: Likewise.
tuiGeneralWin.c, tuiGeneralWin.h, tuiLayout.c, tuiLayout.h: Likewise.
tuiRegs.c, tuiRegs.h, tuiSource.c, tuiSource.h: Likewise.
tuiSouceWin.c, tuiSourceWin.h, tuiStack.c, tuiStack.h: Likewise.
2001-07-14 19:01:25 +00:00
|
|
|
/* TUI display registers in window.
|
2002-03-01 06:19:28 +00:00
|
|
|
|
2016-01-01 08:33:14 +04:00
|
|
|
Copyright (C) 1998-2016 Free Software Foundation, Inc.
|
2002-03-01 06:19:28 +00:00
|
|
|
|
* tuiWin.c, tuiWin.h, tui.c, tui.h, tuiCommand.c: Add FSF copyright.
tuiCommand.h, tuiIO.c, tuiIO.h, tuiData.h, tuiData.c: Likewise.
tuiDataWin.c, tuiDataWin.h, tuiDisassem.c, tuiDisassem.h: Likewise.
tuiGeneralWin.c, tuiGeneralWin.h, tuiLayout.c, tuiLayout.h: Likewise.
tuiRegs.c, tuiRegs.h, tuiSource.c, tuiSource.h: Likewise.
tuiSouceWin.c, tuiSourceWin.h, tuiStack.c, tuiStack.h: Likewise.
2001-07-14 19:01:25 +00:00
|
|
|
Contributed by Hewlett-Packard Company.
|
1999-04-16 01:35:26 +00:00
|
|
|
|
* tuiWin.c, tuiWin.h, tui.c, tui.h, tuiCommand.c: Add FSF copyright.
tuiCommand.h, tuiIO.c, tuiIO.h, tuiData.h, tuiData.c: Likewise.
tuiDataWin.c, tuiDataWin.h, tuiDisassem.c, tuiDisassem.h: Likewise.
tuiGeneralWin.c, tuiGeneralWin.h, tuiLayout.c, tuiLayout.h: Likewise.
tuiRegs.c, tuiRegs.h, tuiSource.c, tuiSource.h: Likewise.
tuiSouceWin.c, tuiSourceWin.h, tuiStack.c, tuiStack.h: Likewise.
2001-07-14 19:01:25 +00:00
|
|
|
This file is part of GDB.
|
1999-04-16 01:35:26 +00:00
|
|
|
|
* tuiWin.c, tuiWin.h, tui.c, tui.h, tuiCommand.c: Add FSF copyright.
tuiCommand.h, tuiIO.c, tuiIO.h, tuiData.h, tuiData.c: Likewise.
tuiDataWin.c, tuiDataWin.h, tuiDisassem.c, tuiDisassem.h: Likewise.
tuiGeneralWin.c, tuiGeneralWin.h, tuiLayout.c, tuiLayout.h: Likewise.
tuiRegs.c, tuiRegs.h, tuiSource.c, tuiSource.h: Likewise.
tuiSouceWin.c, tuiSourceWin.h, tuiStack.c, tuiStack.h: Likewise.
2001-07-14 19:01:25 +00:00
|
|
|
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
|
2007-08-23 18:08:50 +00:00
|
|
|
the Free Software Foundation; either version 3 of the License, or
|
* tuiWin.c, tuiWin.h, tui.c, tui.h, tuiCommand.c: Add FSF copyright.
tuiCommand.h, tuiIO.c, tuiIO.h, tuiData.h, tuiData.c: Likewise.
tuiDataWin.c, tuiDataWin.h, tuiDisassem.c, tuiDisassem.h: Likewise.
tuiGeneralWin.c, tuiGeneralWin.h, tuiLayout.c, tuiLayout.h: Likewise.
tuiRegs.c, tuiRegs.h, tuiSource.c, tuiSource.h: Likewise.
tuiSouceWin.c, tuiSourceWin.h, tuiStack.c, tuiStack.h: Likewise.
2001-07-14 19:01:25 +00:00
|
|
|
(at your option) any later version.
|
|
|
|
|
|
|
|
This program is distributed in the hope that it will be useful,
|
|
|
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
|
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
|
|
GNU General Public License for more details.
|
|
|
|
|
|
|
|
You should have received a copy of the GNU General Public License
|
2007-08-23 18:08:50 +00:00
|
|
|
along with this program. If not, see <http://www.gnu.org/licenses/>. */
|
1999-04-16 01:35:26 +00:00
|
|
|
|
|
|
|
#include "defs.h"
|
2009-07-02 17:02:35 +00:00
|
|
|
#include "arch-utils.h"
|
2004-01-19 04:31:53 +00:00
|
|
|
#include "tui/tui.h"
|
|
|
|
#include "tui/tui-data.h"
|
1999-04-16 01:35:26 +00:00
|
|
|
#include "symtab.h"
|
|
|
|
#include "gdbtypes.h"
|
|
|
|
#include "gdbcmd.h"
|
|
|
|
#include "frame.h"
|
2002-08-25 09:12:36 +00:00
|
|
|
#include "regcache.h"
|
1999-04-16 01:35:26 +00:00
|
|
|
#include "inferior.h"
|
|
|
|
#include "target.h"
|
2004-01-19 04:31:53 +00:00
|
|
|
#include "tui/tui-layout.h"
|
|
|
|
#include "tui/tui-win.h"
|
|
|
|
#include "tui/tui-windata.h"
|
|
|
|
#include "tui/tui-wingeneral.h"
|
|
|
|
#include "tui/tui-file.h"
|
2008-02-21 Pedro Alves <pedro@codesorcery.com>
Silence a few -Wmissing-prototypes warnings.
PR build/9877:
* amd64-nat.c: Include "amd64-nat.h".
* fork-child.c (_initialize_fork_child): Ditto.
* gcore.c (_initialize_gcore): Ditto.
* inf-ptrace.c: Include "inf-ptrace.h".
(inf_ptrace_store_registers): Make it static.
* linux-nat.c (linux_nat_terminal_ours): Make it static.
(_initialize_linux_nat): Declare before definition.
* linux-tdep.c: Include "linux-tdep.h".
* linux-thread-db.c (_initialize_thread_db): Declare before
definition.
* proc-service.c (_initialize_proc_service): Ditto.
* remote.c (remote_send_printf): Make it static.
* solib.c: Include "solib.h".
* symfile-mem.c (_initialize_symfile_mem): Declare before
definition.
* ada-lang.c (ada_la_decode, ada_match_name)
(ada_suppress_symbol_printing, ada_is_array_type)
(ada_value_ptr_subscript, ada_array_length)
(ada_to_static_fixed_value): Make them static.
(_initialize_ada_language): Declare before definition.
* ada-tasks.c (ada_get_task_number, ada_get_environment_task)
(ada_task_list_changed, ada_new_objfile_observer): Make them
static.
(_initialize_tasks): Declare before definition.
* addrmap.c (_initialize_addrmap): Declare before definition.
* auxv.c (default_auxv_parse): Make it static.
* bfd-target.c (target_bfd_xfer_partial, target_bfd_xclose): Make
them static.
* breakpoint.c (remove_sal): Add line break.
(expand_line_sal_maybe): Make it static.
* cp-name-parser.y: Include "cp-support.h".
* cp-valprint.c (cp_find_class_member): Make it static.
* eval.c (value_f90_subarray): Ditto.
* exceptions.c (print_any_exception): Ditto.
* findcmd.c (_initialize_mem_search): Declare before definition.
* frame.c (frame_observer_target_changed): Make it static.
* gnu-v3-abi.c (gnuv3_find_method_in): Make it static.
* inf-child.c: Include "inf-child.h".
* inferior.h (valid_inferior_id): Rename to ...
(valid_gdb_inferior_id): ... this.
* infrun.c (infrun_thread_stop_requested, siginfo_make_value):
Make them static.
* jv-lang.c (java_language_arch_info): Make it static.
* m2-typeprint.c (m2_get_discrete_bounds): Ditto.
* osdata.c (info_osdata_command): Make it static.
* regcache.c (regcache_observer_target_changed): Make it static.
* reverse.c (_initialize_reverse): Declare before definition.
* stabsread.c (cleanup_undefined_types_noname)
(cleanup_undefined_types_1): Make them static.
* symfile.c (place_section): Make it static.
* symtab.c (find_pc_sect_psymtab_closer): Make it static.
* target-descriptions.c (_initialize_target_descriptions): Declare
before definition.
* target.c (default_get_ada_task_ptid, find_default_can_async_p)
(find_default_is_async_p, find_default_supports_non_stop): Make
them static.
(target_supports_non_stop): Add prototype.
(dummy_pid_to_str): Make it static.
* utils.c (_initialize_utils): Declare before definition.
* ada-exp.y (_initialize_ada_exp): Declare before definition.
* solib-svr4.c (HAS_LM_DYNAMIC_FROM_LINK_MAP): Add a prototype.
* target.h (struct target_ops): Add a prototype to the
to_can_execute_reverse callback.
* macroscope.c (_initialize_macroscope): Declare before definition.
* cp-namespace.c (_initialize_cp_namespace): Declare before definition.
* python/python.c (_initialize_python): Declare before definition.
* tui/tui-command.c: Include "tui/tui-command.h".
* tui/tui-data.c (init_content_element, init_win_info): Make them
static.
* tui/tui-disasm.c: Include "tui/tui-disasm.h".
* tui/tui-interp.c (_initialize_tui_interp): Declare before
definition.
* tui/tui-layout.c: Include "tui/tui-layout.h".
(_initialize_tui_layout): Declare before definition.
* tui/tui-regs.c: Include "tui/tui-regs.h".
(tui_display_reg_element_at_line): Make it static.
(_initialize_tui_regs): Declare before definition.
* tui/tui-stack.c (_initialize_tui_stack): Declare before
definition.
* tui/tui-win.c: Include "tui/tui-win.h".
(_initialize_tui_win): Declare before definition.
(tui_sigwinch_handler): Make it static. Wrap in ifdef SIGWINCH.
* tui/tui-win.h (tui_sigwinch_handler): Delete declaration.
(tui_get_cmd_list): Add a prototype.
* tui/tui-windata.c: Include tui-windata.h.
* tui/tui-wingeneral.c (box_win): Make it static.
* cli/cli-logging.c (show_logging_command): Make it static.
(_initialize_cli_logging): Declare before definition.
* mi/mi-common.c (_initialize_gdb_mi_common): Declare before
definition.
2009-02-21 16:14:50 +00:00
|
|
|
#include "tui/tui-regs.h"
|
2015-01-31 10:47:14 +02:00
|
|
|
#include "tui/tui-io.h"
|
2004-03-13 14:14:01 +00:00
|
|
|
#include "reggroups.h"
|
gdb
* varobj.c (value_get_print_value): Include valprint.h.
(value_get_print_value): Use get_formatted_print_options.
* value.h (struct value_print_options): Declare.
(value_print, val_print, common_val_print, val_print_string):
Update.
* value.c: Include valprint.h.
(show_values): Use get_user_print_options.
(show_convenience): Likewise.
* valprint.h (prettyprint_arrays, prettyprint_structs): Don't
declare.
(struct value_print_options): New type.
(vtblprint, unionprint, addressprint, objectprint, print_max,
inspect_it, repeat_count_threshold, output_format,
stop_print_at_null): Don't declare.
(user_print_options, get_user_print_options,
get_raw_print_options, get_formatted_print_options): Declare.
(print_array_indexes_p): Don't declare.
(maybe_print_array_index, val_print_array_elements): Update.
* valprint.c (print_max): Remove.
(user_print_options): New global.
(get_user_print_options, get_raw_print_options,
get_formatted_print_options): New functions.
(print_array_indexes, repeat_count_threshold, stop_print_at_null,
prettyprint_structs, prettyprint_arrays, unionprint,
addressprint): Remove.
(val_print): Remove format, deref_ref, pretty arguments; add
options. Update.
(common_val_print): Likewise.
(print_array_indexes_p): Remove.
(maybe_print_array_index): Remove format, pretty arguments; add
options. Update.
(val_print_array_elements): Remove format, deref_ref, pretty
arguments; add options. Update.
(val_print_string): Add options argument. Update.
(_initialize_valprint): Use user_print_options.
(output_format): Remove.
(set_output_radix_1): Use user_print_options.
* typeprint.c: Include valprint.h.
(objectprint): Don't declare.
(whatis_exp): Use get_user_print_options.
* tui/tui-regs.c: Include valprint.h.
(tui_register_format): Use get_formatted_print_options.
* tracepoint.c: Include valprint.h.
(addressprint): Don't declare.
(trace_mention): Use get_user_print_options.
(tracepoints_info): Likewise.
* stack.c (print_frame_args): Use get_raw_print_options.
(print_frame_info): Use get_user_print_options.
(print_frame): Likewise.
* sh64-tdep.c: Include valprint.h
(sh64_do_register): Use get_formatted_print_options.
* scm-valprint.c (scm_inferior_print): Remove format, deref_ref,
pretty arguments; add options.
(scm_scmlist_print): Likewise. Update.
(scm_scmval_print): Likewise.
(scm_val_print): Likewise.
(scm_value_print): Remove format, pretty arguments; add options.
Update.
* scm-lang.h (scm_value_print, scm_val_print, scm_scmval_print):
Update.
* scm-lang.c (scm_printstr): Add options argument.
* python/python-value.c: Include valprint.h.
(valpy_str): Use get_user_print_options.
* printcmd.c: Include valprint.h.
(addressprint): Don't declare.
(inspect_it): Remove.
(print_formatted): Remove format option; add options. Update.
(print_scalar_formatted): Likewise.
(print_address_demangle): Use get_user_print_options.
(do_examine): Use get_formatted_print_options.
(print_command_1): Likewise.
(output_command): Use get_formatted_print_options.
(do_one_display): Likewise.
(print_variable_value): Use get_user_print_options.
* p-valprint.c (pascal_val_print): Remove format, deref_ref,
pretty arguments; add options. Update.
(pascal_value_print): Remove format, pretty arguments; add
options. Update.
(vtblprint, objectprint): Don't declare.
(pascal_static_field_print): Remove.
(pascal_object_print_value_fields): Remove format, pretty
arguments; add options. Update.
(pascal_object_print_static_field): Likewise.
(_initialize_pascal_valprint): Use user_print_options. Update.
* p-lang.h (pascal_val_print, pascal_value_print,
pascal_printstr, pascal_object_print_value_fields): Update.
(vtblprint, static_field_print): Don't declare.
* p-lang.c (pascal_printstr): Add options argument. Update.
* objc-lang.c (objc_printstr): Add options argument. Update.
* mt-tdep.c: Include valprint.h.
(mt_registers_info): Use get_raw_print_options.
* mips-tdep.c: Include valprint.h.
(mips_print_fp_register): Use get_formatted_print_options.
(mips_print_register): Likewise.
* mi/mi-main.c: Include valprint.h.
(get_register): Use get_user_print_options.
(mi_cmd_data_evaluate_expression): Likewise.
(mi_cmd_data_read_memory): Use get_formatted_print_options.
* mi/mi-cmd-stack.c: Include valprint.h.
(list_args_or_locals): Use get_raw_print_options.
* m2-valprint.c (print_function_pointer_address): Add addressprint
argument.
(m2_print_long_set): Remove format, pretty arguments.
(m2_print_unbounded_array): Remove format, deref_ref, pretty
arguments; add options. Update.
(print_unpacked_pointer): Remove format argument; add options.
Now static. Update.
(print_variable_at_address): Remove format, deref_ref, pretty
arguments; add options. Update.
(m2_print_array_contents): Likewise.
(m2_val_print): Likewise.
* m2-lang.h (m2_val_print): Update.
* m2-lang.c (m2_printstr): Add options argument. Update.
* language.h (struct value_print_options): Declare.
(struct language_defn) <la_printstr>: Add options argument.
<la_val_print>: Remove format, deref_ref, pretty argument; add
options.
<la_value_print>: Remove format, pretty arguments; add options.
<la_print_array_index>: Likewise.
(LA_VAL_PRINT, LA_VALUE_PRINT, LA_PRINT_STRING,
LA_PRINT_ARRAY_INDEX): Update.
(default_print_array_index): Update.
* language.c (default_print_array_index): Remove format, pretty
arguments; add options. Update.
(unk_lang_printstr): Add options argument.
(unk_lang_val_print): Remove format, deref_ref, pretty arguments;
add options.
(unk_lang_value_print): Remove format, pretty arguments; add
options.
* jv-valprint.c (java_value_print): Remove format, pretty
arguments; add options. Update.
(java_print_value_fields): Likewise.
(java_val_print): Remove format, deref_ref, pretty arguments; add
options. Update.
* jv-lang.h (java_val_print, java_value_print): Declare.
* infcmd.c: Include valprint.h.
(print_return_value): Use get_raw_print_options.
(default_print_registers_info): Use get_user_print_options,
get_formatted_print_options.
(registers_info): Use get_formatted_print_options.
* gdbtypes.h (struct value_print_options): Declare.
(print_scalar_formatted): Update.
* f-valprint.c (f77_print_array_1): Remove format, deref_ref,
pretty arguments; add options. Update.
(f77_print_array): Likewise.
(f_val_print): Likewise.
* f-lang.h (f_val_print): Update.
* f-lang.c (f_printstr): Add options argument. Update.
(c_value_print): Update declaration.
* expprint.c: Include valprint.h.
(print_subexp_standard): Use get_raw_print_options,
get_user_print_options.
* eval.c: Include valprint.h.
(objectprint): Don't declare.
(evaluate_subexp_standard): Use get_user_print_options.
* cp-valprint.c (vtblprint, objectprint, static_field_print):
Remove.
(cp_print_value_fields): Remove format, pretty arguments; add
options. Update.
(cp_print_value): Likewise.
(cp_print_static_field): Likewise.
(_initialize_cp_valprint): Use user_print_options. Update.
* c-valprint.c (print_function_pointer_address): Add addressprint
argument.
(c_val_print): Remove format, deref_ref, pretty arguments; add
options. Update.
(c_value_print): Add options argument. Update.
* c-lang.h (c_val_print, c_value_print, c_printstr): Update.
(vtblprint, static_field_print): Don't declare.
(cp_print_value_fields): Update.
* c-lang.c (c_printstr): Add options argument. Update.
* breakpoint.c: Include valprint.h.
(addressprint): Don't declare.
(watchpoint_value_print): Use get_user_print_options.
(print_one_breakpoint_location): Likewise.
(breakpoint_1, print_it_catch_fork, print_it_catch_vfork, mention,
print_exception_catchpoint): Likewise.
* auxv.c (fprint_target_auxv): Don't declare addressprint. Use
get_user_print_options.
* ada-valprint.c (struct ada_val_print_args): Remove format,
deref_ref, and pretty; add options.
(print_optional_low_bound): Add options argument.
(val_print_packed_array_elements): Remove format and pretty
arguments; add options. Update.
(printstr): Add options argument. Update.
(ada_printstr): Likewise.
(ada_val_print): Remove format, deref_ref, pretty arguments; add
options argument. Update.
(ada_val_print_stub): Update.
(ada_val_print_array): Remove format, deref_ref, pretty arguments;
add options. Update.
(ada_val_print_1): Likewise.
(print_variant_part): Likewise.
(ada_value_print): Remove format, pretty arguments; add options.
Update.
(print_record): Likewise.
(print_field_values): Likewise.
* ada-lang.h (ada_val_print, ada_value_print, ada_printstr):
Update.
* ada-lang.c (ada_print_array_index): Add options argument; remove
format and pretty arguments.
(print_one_exception): Use get_user_print_options.
gdb/testsuite
* gdb.base/exprs.exp (test_expr): Add enum formatting tests.
2008-10-28 17:19:58 +00:00
|
|
|
#include "valprint.h"
|
2015-05-26 23:23:23 +01:00
|
|
|
#include "completer.h"
|
1999-04-16 01:35:26 +00:00
|
|
|
|
2004-02-10 Andrew Cagney <cagney@redhat.com>
* defs.h: Do not include "tui.h".
* gdb_curses.h: New file.
* tui/tui-hooks.h: New file.
* tui/tui.h (tui_update_all_exec_infos): Delete declaration.
(tui_install_hooks, tui_remove_hooks): Delete declarations.
(tui_initialize_io): Delete declaration.
(tui_initialize_readline: Delete redundant declaration.
(struct tui_point): Delete definition.
* tui/tui-data.h (struct tui_point): Define.
* cli/cli-decode.c [TUI]: Include "tui/tui.h".
* utils.c: Include "tui/tui.h".
* tui/tui-data.h: Include "tui/tui.h" and "gdb_curses.h".
* printcmd.c [TUI]: Include "tui/tui.h".
* cli/cli-cmds.c [TUI]: Include "tui/tui.h".
* tui/tui-command.c: Include "gdb_curses.h".
* tui/tui.c, tui/tui-winsource.c, tui/tui-wingeneral.c: Ditto.
* tui/tui-windata.c, tui/tui-win.c, tui/tui-stack.c: Ditto.
* tui/tui-source.c, tui/tui-regs.c, tui/tui-layout.c: Ditto.
* tui/tui-io.c, tui/tui-disasm.c, tui/tui-data.c: : Ditto.
* tui/tui-hooks.c: Include "tui-hooks.h" and "gdb_curses.h".
* Makefile.in: Update all dependencies.
(tui_hooks_h, gdb_curses_h): Define.
(SUBDIR_TUI_CFLAGS): Remove -I${srcdir}/tui.
2004-02-10 19:08:19 +00:00
|
|
|
#include "gdb_curses.h"
|
2003-06-22 15:21:39 +00:00
|
|
|
|
1999-04-16 01:35:26 +00:00
|
|
|
|
|
|
|
/*****************************************
|
2004-03-13 14:14:01 +00:00
|
|
|
** STATIC LOCAL FUNCTIONS FORWARD DECLS **
|
1999-04-16 01:35:26 +00:00
|
|
|
******************************************/
|
2004-03-13 14:14:01 +00:00
|
|
|
static void
|
|
|
|
tui_display_register (struct tui_data_element *data,
|
|
|
|
struct tui_gen_win_info *win_info);
|
1999-04-16 01:35:26 +00:00
|
|
|
|
2009-06-17 18:36:44 +00:00
|
|
|
static enum tui_status tui_show_register_group (struct reggroup *group,
|
|
|
|
struct frame_info *frame,
|
|
|
|
int refresh_values_only);
|
|
|
|
|
|
|
|
static enum tui_status tui_get_register (struct frame_info *frame,
|
|
|
|
struct tui_data_element *data,
|
|
|
|
int regnum, int *changedp);
|
|
|
|
|
1999-04-16 01:35:26 +00:00
|
|
|
|
|
|
|
|
|
|
|
/*****************************************
|
|
|
|
** PUBLIC FUNCTIONS **
|
|
|
|
******************************************/
|
|
|
|
|
2004-01-19 16:06:04 +00:00
|
|
|
/* Answer the number of the last line in the regs display. If there
|
|
|
|
are no registers (-1) is returned. */
|
1999-04-16 01:35:26 +00:00
|
|
|
int
|
2004-01-19 16:06:04 +00:00
|
|
|
tui_last_regs_line_no (void)
|
1999-04-16 01:35:26 +00:00
|
|
|
{
|
2004-02-08 01:32:26 +00:00
|
|
|
int num_lines = (-1);
|
1999-04-16 01:35:26 +00:00
|
|
|
|
2004-02-07 Andrew Cagney <cagney@redhat.com>
* tui/tui.h: Do not include <stdarg.h>, <string.h>, and
"ansidecl.h". Do not undef "reg" and "chtype". Fix case of
fields and variables.
* tui/tui-wingeneral.h (m_beVisible): Delete macro.
(m_beInvisible): Delete macro.
* tui/tui-data.h: Fix case case fields and variables.
(m_genWinPtrIsNull): Delete macro.
(tui_win_list): Rename winList.
(TUI_SRC_WIN): Rename srcWin.
(TUI_DISASM_WIN): Rename disassemWin.
(TUI_DATA_WIN): Rename dataWin.
(TUI_CMD_WIN): Rename cmdWin.
(m_genWinPtrNotNull): Delete macro.
(m_winPtrIsNull): Delete macro.
(m_winPtrNotNull): Delete macro.
(tui_win_is_source_type): Replace m_winIsSourceType
(tui_win_is_auxillary): Replace m_winIsAuzillary.
(tui_win_has_locator): Replace m_hasLocator.
(tui_set_win_highlight): Replace m_setWinHighlightOn and
m_setWinHighlightOff.
* tui/tui-data.c: Update references.
(tui_win_is_source_type, tui_set_win_highlight): New functions.
(tui_win_has_locator, tui_win_is_auxillary): New functions.
* tui/tui-command.c, tui/tui-disasm.c: Update references.
* tui/tui-io.c, tui/tui-layout.c, tui/tui-regs.c: Ditto.
* tui/tui-regs.h, tui/tui-source.c, tui/tui-stack.c: Ditto.
* tui/tui-win.c, tui/tui-windata.c, tui/tui-wingeneral.c: Ditto.
* tui/tui-winsource.c, tui/tui.c: Ditto.
2004-02-07 20:57:02 +00:00
|
|
|
if (TUI_DATA_WIN->detail.data_display_info.regs_content_count > 0)
|
1999-04-16 01:35:26 +00:00
|
|
|
{
|
2004-02-08 00:05:16 +00:00
|
|
|
num_lines = (TUI_DATA_WIN->detail.data_display_info.regs_content_count /
|
2004-02-07 Andrew Cagney <cagney@redhat.com>
* tui/tui.h: Do not include <stdarg.h>, <string.h>, and
"ansidecl.h". Do not undef "reg" and "chtype". Fix case of
fields and variables.
* tui/tui-wingeneral.h (m_beVisible): Delete macro.
(m_beInvisible): Delete macro.
* tui/tui-data.h: Fix case case fields and variables.
(m_genWinPtrIsNull): Delete macro.
(tui_win_list): Rename winList.
(TUI_SRC_WIN): Rename srcWin.
(TUI_DISASM_WIN): Rename disassemWin.
(TUI_DATA_WIN): Rename dataWin.
(TUI_CMD_WIN): Rename cmdWin.
(m_genWinPtrNotNull): Delete macro.
(m_winPtrIsNull): Delete macro.
(m_winPtrNotNull): Delete macro.
(tui_win_is_source_type): Replace m_winIsSourceType
(tui_win_is_auxillary): Replace m_winIsAuzillary.
(tui_win_has_locator): Replace m_hasLocator.
(tui_set_win_highlight): Replace m_setWinHighlightOn and
m_setWinHighlightOff.
* tui/tui-data.c: Update references.
(tui_win_is_source_type, tui_set_win_highlight): New functions.
(tui_win_has_locator, tui_win_is_auxillary): New functions.
* tui/tui-command.c, tui/tui-disasm.c: Update references.
* tui/tui-io.c, tui/tui-layout.c, tui/tui-regs.c: Ditto.
* tui/tui-regs.h, tui/tui-source.c, tui/tui-stack.c: Ditto.
* tui/tui-win.c, tui/tui-windata.c, tui/tui-wingeneral.c: Ditto.
* tui/tui-winsource.c, tui/tui.c: Ditto.
2004-02-07 20:57:02 +00:00
|
|
|
TUI_DATA_WIN->detail.data_display_info.regs_column_count);
|
|
|
|
if (TUI_DATA_WIN->detail.data_display_info.regs_content_count %
|
|
|
|
TUI_DATA_WIN->detail.data_display_info.regs_column_count)
|
2004-02-08 00:05:16 +00:00
|
|
|
num_lines++;
|
1999-04-16 01:35:26 +00:00
|
|
|
}
|
2004-02-08 00:05:16 +00:00
|
|
|
return num_lines;
|
2004-01-19 16:06:04 +00:00
|
|
|
}
|
1999-04-16 01:35:26 +00:00
|
|
|
|
|
|
|
|
2004-02-08 00:05:16 +00:00
|
|
|
/* Answer the line number that the register element at element_no is
|
|
|
|
on. If element_no is greater than the number of register elements
|
2004-01-19 16:06:04 +00:00
|
|
|
there are, -1 is returned. */
|
1999-04-16 01:35:26 +00:00
|
|
|
int
|
2004-02-08 00:05:16 +00:00
|
|
|
tui_line_from_reg_element_no (int element_no)
|
1999-04-16 01:35:26 +00:00
|
|
|
{
|
2004-02-08 00:05:16 +00:00
|
|
|
if (element_no < TUI_DATA_WIN->detail.data_display_info.regs_content_count)
|
1999-04-16 01:35:26 +00:00
|
|
|
{
|
|
|
|
int i, line = (-1);
|
|
|
|
|
|
|
|
i = 1;
|
|
|
|
while (line == (-1))
|
|
|
|
{
|
2004-02-08 00:05:16 +00:00
|
|
|
if (element_no <
|
2004-02-07 Andrew Cagney <cagney@redhat.com>
* tui/tui.h: Do not include <stdarg.h>, <string.h>, and
"ansidecl.h". Do not undef "reg" and "chtype". Fix case of
fields and variables.
* tui/tui-wingeneral.h (m_beVisible): Delete macro.
(m_beInvisible): Delete macro.
* tui/tui-data.h: Fix case case fields and variables.
(m_genWinPtrIsNull): Delete macro.
(tui_win_list): Rename winList.
(TUI_SRC_WIN): Rename srcWin.
(TUI_DISASM_WIN): Rename disassemWin.
(TUI_DATA_WIN): Rename dataWin.
(TUI_CMD_WIN): Rename cmdWin.
(m_genWinPtrNotNull): Delete macro.
(m_winPtrIsNull): Delete macro.
(m_winPtrNotNull): Delete macro.
(tui_win_is_source_type): Replace m_winIsSourceType
(tui_win_is_auxillary): Replace m_winIsAuzillary.
(tui_win_has_locator): Replace m_hasLocator.
(tui_set_win_highlight): Replace m_setWinHighlightOn and
m_setWinHighlightOff.
* tui/tui-data.c: Update references.
(tui_win_is_source_type, tui_set_win_highlight): New functions.
(tui_win_has_locator, tui_win_is_auxillary): New functions.
* tui/tui-command.c, tui/tui-disasm.c: Update references.
* tui/tui-io.c, tui/tui-layout.c, tui/tui-regs.c: Ditto.
* tui/tui-regs.h, tui/tui-source.c, tui/tui-stack.c: Ditto.
* tui/tui-win.c, tui/tui-windata.c, tui/tui-wingeneral.c: Ditto.
* tui/tui-winsource.c, tui/tui.c: Ditto.
2004-02-07 20:57:02 +00:00
|
|
|
(TUI_DATA_WIN->detail.data_display_info.regs_column_count * i))
|
1999-04-16 01:35:26 +00:00
|
|
|
line = i - 1;
|
|
|
|
else
|
|
|
|
i++;
|
|
|
|
}
|
|
|
|
|
|
|
|
return line;
|
|
|
|
}
|
|
|
|
else
|
|
|
|
return (-1);
|
2004-01-19 16:06:04 +00:00
|
|
|
}
|
1999-04-16 01:35:26 +00:00
|
|
|
|
|
|
|
|
2007-08-14 Michael Snyder <msnyder@access-company.com>
* tui-command.c, tui-data.c, tui-data.h, tui-disasm.c, tui-file.c,
tui-hooks.c, tui-interp.c, tui-io.c, tui-layout.c, tui-out.c,
tui-regs.c, tui-regs.h, tui-source.c, tui-stack.c, tui-win.c,
tui-windata.c, tui-wingeneral.c, tui-winsource.c, tui-winsource.h,
tui.c, tui.h: Comment reformatting to coding standard (capitals,
spaces after periods, etc).
2007-08-14 21:20:09 +00:00
|
|
|
/* Answer the index of the first element in line_no. If line_no is
|
|
|
|
past the register area (-1) is returned. */
|
1999-04-16 01:35:26 +00:00
|
|
|
int
|
2004-02-08 00:05:16 +00:00
|
|
|
tui_first_reg_element_no_inline (int line_no)
|
1999-04-16 01:35:26 +00:00
|
|
|
{
|
2004-02-08 00:05:16 +00:00
|
|
|
if ((line_no * TUI_DATA_WIN->detail.data_display_info.regs_column_count)
|
2004-02-07 Andrew Cagney <cagney@redhat.com>
* tui/tui.h: Do not include <stdarg.h>, <string.h>, and
"ansidecl.h". Do not undef "reg" and "chtype". Fix case of
fields and variables.
* tui/tui-wingeneral.h (m_beVisible): Delete macro.
(m_beInvisible): Delete macro.
* tui/tui-data.h: Fix case case fields and variables.
(m_genWinPtrIsNull): Delete macro.
(tui_win_list): Rename winList.
(TUI_SRC_WIN): Rename srcWin.
(TUI_DISASM_WIN): Rename disassemWin.
(TUI_DATA_WIN): Rename dataWin.
(TUI_CMD_WIN): Rename cmdWin.
(m_genWinPtrNotNull): Delete macro.
(m_winPtrIsNull): Delete macro.
(m_winPtrNotNull): Delete macro.
(tui_win_is_source_type): Replace m_winIsSourceType
(tui_win_is_auxillary): Replace m_winIsAuzillary.
(tui_win_has_locator): Replace m_hasLocator.
(tui_set_win_highlight): Replace m_setWinHighlightOn and
m_setWinHighlightOff.
* tui/tui-data.c: Update references.
(tui_win_is_source_type, tui_set_win_highlight): New functions.
(tui_win_has_locator, tui_win_is_auxillary): New functions.
* tui/tui-command.c, tui/tui-disasm.c: Update references.
* tui/tui-io.c, tui/tui-layout.c, tui/tui-regs.c: Ditto.
* tui/tui-regs.h, tui/tui-source.c, tui/tui-stack.c: Ditto.
* tui/tui-win.c, tui/tui-windata.c, tui/tui-wingeneral.c: Ditto.
* tui/tui-winsource.c, tui/tui.c: Ditto.
2004-02-07 20:57:02 +00:00
|
|
|
<= TUI_DATA_WIN->detail.data_display_info.regs_content_count)
|
2004-02-08 00:05:16 +00:00
|
|
|
return ((line_no + 1) *
|
2004-02-07 Andrew Cagney <cagney@redhat.com>
* tui/tui.h: Do not include <stdarg.h>, <string.h>, and
"ansidecl.h". Do not undef "reg" and "chtype". Fix case of
fields and variables.
* tui/tui-wingeneral.h (m_beVisible): Delete macro.
(m_beInvisible): Delete macro.
* tui/tui-data.h: Fix case case fields and variables.
(m_genWinPtrIsNull): Delete macro.
(tui_win_list): Rename winList.
(TUI_SRC_WIN): Rename srcWin.
(TUI_DISASM_WIN): Rename disassemWin.
(TUI_DATA_WIN): Rename dataWin.
(TUI_CMD_WIN): Rename cmdWin.
(m_genWinPtrNotNull): Delete macro.
(m_winPtrIsNull): Delete macro.
(m_winPtrNotNull): Delete macro.
(tui_win_is_source_type): Replace m_winIsSourceType
(tui_win_is_auxillary): Replace m_winIsAuzillary.
(tui_win_has_locator): Replace m_hasLocator.
(tui_set_win_highlight): Replace m_setWinHighlightOn and
m_setWinHighlightOff.
* tui/tui-data.c: Update references.
(tui_win_is_source_type, tui_set_win_highlight): New functions.
(tui_win_has_locator, tui_win_is_auxillary): New functions.
* tui/tui-command.c, tui/tui-disasm.c: Update references.
* tui/tui-io.c, tui/tui-layout.c, tui/tui-regs.c: Ditto.
* tui/tui-regs.h, tui/tui-source.c, tui/tui-stack.c: Ditto.
* tui/tui-win.c, tui/tui-windata.c, tui/tui-wingeneral.c: Ditto.
* tui/tui-winsource.c, tui/tui.c: Ditto.
2004-02-07 20:57:02 +00:00
|
|
|
TUI_DATA_WIN->detail.data_display_info.regs_column_count) -
|
|
|
|
TUI_DATA_WIN->detail.data_display_info.regs_column_count;
|
1999-04-16 01:35:26 +00:00
|
|
|
else
|
|
|
|
return (-1);
|
2004-01-19 16:06:04 +00:00
|
|
|
}
|
1999-04-16 01:35:26 +00:00
|
|
|
|
|
|
|
|
2004-03-13 14:14:01 +00:00
|
|
|
/* Show the registers of the given group in the data window
|
|
|
|
and refresh the window. */
|
1999-04-16 01:35:26 +00:00
|
|
|
void
|
2004-03-13 14:14:01 +00:00
|
|
|
tui_show_registers (struct reggroup *group)
|
1999-04-16 01:35:26 +00:00
|
|
|
{
|
2004-02-07 Andrew Cagney <cagney@redhat.com>
* tui/tui.h (Opaque, OpaquePtr OpaqueList): Delete definition.
(TuiPoint, TuiPointPtr): Ditto.
(TuiStatus, TuiStatusPtr): Ditto.
(TuiWinType, TuiWinTypePtr): Ditto.
(struct tui_point): Rename _TuiPoint.
(tui_get_low_disassembly_address): Rename
tuiGetLowDisassemblyAddress.
(tui_update_all_exec_infos): Rename tuiUpdateAllExecInfos.
(tuiFree): Delete declaration.
(OpaqueFuncPtr, TuiOpaqueFuncPtr): Delete definitions.
(TuiVoidFuncPtr, TuiIntFuncPtr): Delete definitions.
* tui/tui.c (tuiFree): Delete function.
* cli/cli-cmds.c (disassemble_command): Update references.
* tui/tui-data.c, tui/tui-data.h, tui/tui-disasm.c: Ditto.
* tui/tui-layout.c, tui/tui-regs.c, tui/tui-source.c: Ditto.
* tui/tui-stack.c, tui/tui-win.c, tui/tui-wingeneral.c: Ditto.
* tui/tui-winsource.c: Ditto.
2004-02-07 17:46:14 +00:00
|
|
|
enum tui_status ret = TUI_FAILURE;
|
2004-03-28 10:18:07 +00:00
|
|
|
struct tui_data_info *display_info;
|
1999-04-16 01:35:26 +00:00
|
|
|
|
2004-03-28 10:18:07 +00:00
|
|
|
/* Make sure the curses mode is enabled. */
|
|
|
|
tui_enable ();
|
|
|
|
|
|
|
|
/* Make sure the register window is visible. If not, select an
|
|
|
|
appropriate layout. */
|
|
|
|
if (TUI_DATA_WIN == NULL || !TUI_DATA_WIN->generic.is_visible)
|
gdb: Remove register class specific layout names.
The layout command supports the layout names $FREGS, $GREGS, $SREGS,
and $REGS. The intention of these layout names was to display the tui
register window with a specific set of registers.
First, these layout names no longer work, and haven't for a while, using
any of them will just result in switching to the general register view.
Second there is already the command 'tui reg GROUP' command to set the
displayed register set to GROUP, so making the layout command also
control the register set feels like unnecessary overloading of the
layout command.
This commit removes all code relating to supporting the register set
specific names from the layout command. Afterwards the user can select
an available layout using the layout command, and control the choice of
register set using the 'tui reg GROUP' command.
gdb/ChangeLog:
* tui/tui-layout.c (tui_set_layout): Remove
tui_register_display_type parameter. Remove all checking of this
parameter, and reindent function. Update header comment.
(tui_set_layout_for_display_command): Rename to...
(tui_set_layout_by_name): ...this, and don't check for different
register class types, don't pass a tui_register_display_type to
tui_set_layout. Update header comment.
(layout_names): Remove register set specific names.
* tui/tui-layout.h (tui_set_layout): Remove
tui_register_display_type parameter.
* tui/tui.c (tui_rl_change_windows): Don't pass a
tui_register_display_type to tui_set_layout.
(tui_rl_delete_other_windows): Likewise.
(tui_enable): Likewise.
* tui/tui-data.h (TUI_FLOAT_REGS_NAME): Remove.
(TUI_FLOAT_REGS_NAME_LOWER): Remove.
(TUI_GENERAL_REGS_NAME): Remove.
(TUI_GENERAL_REGS_NAME_LOWER): Remove.
(TUI_SPECIAL_REGS_NAME): Remove.
(TUI_SPECIAL_REGS_NAME_LOWER): Remove.
(TUI_GENERAL_SPECIAL_REGS_NAME): Remove.
(TUI_GENERAL_SPECIAL_REGS_NAME_LOWER): Remove.
(enum tui_register_display_type): Remove.
(struct tui_layout_def): Remove regs_display_type and
float_regs_display_type fields.
(struct tui_data_info): Remove regs_display_type field.
(tui_layout_command): Use new name for
tui_set_layout_for_display_command.
* tui/tui-data.c (layout_def): Don't initialise removed fields.
(tui_clear_win_detail): Don't initialise removed fields of
win_info.
* tui/tui-regs.c (tui_show_registers): Use new name for
tui_set_layout_for_display_command.
* tui/tui.h (tui_set_layout_for_display_command): Rename
declaration to...
(tui_set_layout_by_name): ...this.
* printcmd.c (display_command): Remove tui related layout call,
and reindent.
2015-05-20 23:35:07 +02:00
|
|
|
tui_set_layout_by_name (DATA_NAME);
|
2004-03-28 10:18:07 +00:00
|
|
|
|
|
|
|
display_info = &TUI_DATA_WIN->detail.data_display_info;
|
2004-03-13 14:14:01 +00:00
|
|
|
if (group == 0)
|
|
|
|
group = general_reggroup;
|
1999-04-16 01:35:26 +00:00
|
|
|
|
2007-08-14 Michael Snyder <msnyder@access-company.com>
* tui-command.c, tui-data.c, tui-data.h, tui-disasm.c, tui-file.c,
tui-hooks.c, tui-interp.c, tui-io.c, tui-layout.c, tui-out.c,
tui-regs.c, tui-regs.h, tui-source.c, tui-stack.c, tui-win.c,
tui-windata.c, tui-wingeneral.c, tui-winsource.c, tui-winsource.h,
tui.c, tui.h: Comment reformatting to coding standard (capitals,
spaces after periods, etc).
2007-08-14 21:20:09 +00:00
|
|
|
/* Say that registers should be displayed, even if there is a
|
|
|
|
problem. */
|
2004-03-13 14:14:01 +00:00
|
|
|
display_info->display_regs = TRUE;
|
|
|
|
|
|
|
|
if (target_has_registers && target_has_stack && target_has_memory)
|
1999-04-16 01:35:26 +00:00
|
|
|
{
|
2013-09-05 11:20:16 +00:00
|
|
|
ret = tui_show_register_group (group, get_selected_frame (NULL),
|
2004-03-13 14:14:01 +00:00
|
|
|
group == display_info->current_group);
|
1999-04-16 01:35:26 +00:00
|
|
|
}
|
|
|
|
if (ret == TUI_FAILURE)
|
|
|
|
{
|
2004-03-13 14:14:01 +00:00
|
|
|
display_info->current_group = 0;
|
2004-02-07 00:23:56 +00:00
|
|
|
tui_erase_data_content (NO_REGS_STRING);
|
1999-04-16 01:35:26 +00:00
|
|
|
}
|
|
|
|
else
|
|
|
|
{
|
|
|
|
int i;
|
|
|
|
|
2007-08-14 Michael Snyder <msnyder@access-company.com>
* tui-command.c, tui-data.c, tui-data.h, tui-disasm.c, tui-file.c,
tui-hooks.c, tui-interp.c, tui-io.c, tui-layout.c, tui-out.c,
tui-regs.c, tui-regs.h, tui-source.c, tui-stack.c, tui-win.c,
tui-windata.c, tui-wingeneral.c, tui-winsource.c, tui-winsource.h,
tui.c, tui.h: Comment reformatting to coding standard (capitals,
spaces after periods, etc).
2007-08-14 21:20:09 +00:00
|
|
|
/* Clear all notation of changed values. */
|
2004-03-13 14:14:01 +00:00
|
|
|
for (i = 0; i < display_info->regs_content_count; i++)
|
1999-04-16 01:35:26 +00:00
|
|
|
{
|
2004-03-13 14:14:01 +00:00
|
|
|
struct tui_gen_win_info *data_item_win;
|
|
|
|
struct tui_win_element *win;
|
1999-04-16 01:35:26 +00:00
|
|
|
|
2004-03-13 14:14:01 +00:00
|
|
|
data_item_win = &display_info->regs_content[i]
|
|
|
|
->which_element.data_window;
|
2015-04-24 08:26:50 -04:00
|
|
|
win = data_item_win->content[0];
|
2004-03-13 14:14:01 +00:00
|
|
|
win->which_element.data.highlight = FALSE;
|
1999-04-16 01:35:26 +00:00
|
|
|
}
|
2004-03-13 14:14:01 +00:00
|
|
|
display_info->current_group = group;
|
2004-02-07 00:23:56 +00:00
|
|
|
tui_display_all_data ();
|
1999-04-16 01:35:26 +00:00
|
|
|
}
|
2004-01-19 16:06:04 +00:00
|
|
|
}
|
1999-04-16 01:35:26 +00:00
|
|
|
|
|
|
|
|
2004-03-13 14:14:01 +00:00
|
|
|
/* Set the data window to display the registers of the register group
|
2007-08-14 Michael Snyder <msnyder@access-company.com>
* tui-command.c, tui-data.c, tui-data.h, tui-disasm.c, tui-file.c,
tui-hooks.c, tui-interp.c, tui-io.c, tui-layout.c, tui-out.c,
tui-regs.c, tui-regs.h, tui-source.c, tui-stack.c, tui-win.c,
tui-windata.c, tui-wingeneral.c, tui-winsource.c, tui-winsource.h,
tui.c, tui.h: Comment reformatting to coding standard (capitals,
spaces after periods, etc).
2007-08-14 21:20:09 +00:00
|
|
|
using the given frame. Values are refreshed only when
|
|
|
|
refresh_values_only is TRUE. */
|
2004-03-13 14:14:01 +00:00
|
|
|
|
|
|
|
static enum tui_status
|
2009-06-17 18:36:44 +00:00
|
|
|
tui_show_register_group (struct reggroup *group,
|
2007-08-14 Michael Snyder <msnyder@access-company.com>
* tui-data.c, tui-data.h, tui-disasm.c, tui-disasm.h, tui-hooks.c,
tui-io.c, tui-layout.c, tui-layout.h, tui-out.c, tui-regs.c,
tui-source.c, tui-source.h, tui-stack.c, tui-win.c, tui-win.h,
tui-windata.c, tui-windata.h, tui-wingeneral.c, tui-winsource.c,
tui-winsource.h, tui.c, tui.h: Function declarations and
definitions, wrap long lines.
2007-08-14 23:50:39 +00:00
|
|
|
struct frame_info *frame,
|
|
|
|
int refresh_values_only)
|
2004-03-13 14:14:01 +00:00
|
|
|
{
|
2009-06-17 18:36:44 +00:00
|
|
|
struct gdbarch *gdbarch = get_frame_arch (frame);
|
2004-03-13 14:14:01 +00:00
|
|
|
enum tui_status ret = TUI_FAILURE;
|
|
|
|
int nr_regs;
|
|
|
|
int allocated_here = FALSE;
|
|
|
|
int regnum, pos;
|
|
|
|
char title[80];
|
|
|
|
struct tui_data_info *display_info = &TUI_DATA_WIN->detail.data_display_info;
|
|
|
|
|
|
|
|
/* Make a new title showing which group we display. */
|
|
|
|
snprintf (title, sizeof (title) - 1, "Register group: %s",
|
|
|
|
reggroup_name (group));
|
|
|
|
xfree (TUI_DATA_WIN->generic.title);
|
|
|
|
TUI_DATA_WIN->generic.title = xstrdup (title);
|
|
|
|
|
|
|
|
/* See how many registers must be displayed. */
|
|
|
|
nr_regs = 0;
|
2007-05-31 Markus Deuling <deuling@de.ibm.com>
* gdbarch.sh (NUM_REGS): Replace by gdbarch_num_regs.
* i386-tdep.c (i386_dbx_reg_to_regnum)
(i386_svr4_reg_to_regnum): Likewise.
* inf-ptrace.c (inf_ptrace_fetch_registers)
(inf_ptrace_store_registers): Likewise.
* corelow.c (get_core_registers): Likewise.
* i386-linux-nat.c (supply_gregset, fill_gregset)
(i386_linux_fetch_inferior_registers)
(i386_linux_store_inferior_registers): Likewise.
* remote.c (init_remote_state,packet_reg_from_regnum)
(packet_reg_from_pnum,process_g_packet,remote_fetch_registers)
(remote_prepare_to_store,store_registers_using_G)
(remote_store_registers,remote_arch_state): Likewise.
* tracepoint.c (encode_actions): Likewise.
* mi/mi-main.c (mi_cmd_data_list_register_names)
(mi_cmd_data_list_changed_registers,mi_cmd_data_list_register_values)
(mi_cmd_data_write_register_values): Likewise.
* tui/tui-regs.c (tui_show_register_group)
(tui_show_register_group): Likewise.
* xtensa-tdep.h (FP_ALIAS): Likewise.
* xtensa-tdep.c (xtensa_register_name,xtensa_register_type)
(xtensa_reg_to_regnum,xtensa_pseudo_register_read)
(xtensa_pseudo_register_write,xtensa_register_reggroup_p): Likewise.
* win32-nat.c (do_win32_fetch_inferior_registers)
(do_win32_store_inferior_registers,fetch_elf_core_registers
* user-regs.h: Likewise (comment).
* user-regs.c (user_reg, user_reg_map_name_to_regnum): Likewise.
* trad-frame.c (trad_frame_alloc_saved_regs): Likewise.
* target-descriptions.h: Likewise (comment).
* target-descriptions.c (tdesc_use_registers): Likewise (comment).
* target.c (debug_print_register): Likewise.
* stack.c (frame_info): Likewise.
* stabsread.c (define_symbol): Likewise.
* sh64-tdep.c (sh64_do_pseudo_register,sh64_print_register)
(sh64_media_print_registers_info)
(sh64_compact_print_registers_info): Likewise.
* rs6000-tdep.c (rs6000_register_sim_regno): Likewise.
* rs6000-nat.c (fetch_register,store_register): Likewise.
* remote-sim.c (one2one_register_sim_regno,gdbsim_fetch_register)
(gdbsim_fetch_register,gdbsim_store_register): Likewise.
* remote-mips.c (mips_fetch_registers,mips_store_registers): Likewise.
* remote-m32r-sdi.c (m32r_fetch_registers)
(m32r_store_registers): Likewise.
* reggroups.c (default_register_reggroup_p): Likewise.
* regcache.c (init_regcache_descr,register_size,regcache,regcache_save)
(regcache_restore,regcache_dump): Likewise.
* monitor.c (monitor_fetch_registers,monitor_store_registers): Likewise.
* mips-tdep.c (mips_xfer_register,mips_register_name)
(mips_register_reggroup_p,mips_pseudo_register_read)
(mips_pseudo_register_write,mips_convert_register_p,mips_register_type)
(mips_unwind_pc,mips_unwind_sp,mips_unwind_dummy_id,set_reg_offset)
(mips16_scan_prologue,mips_insn16_frame_cache,reset_saved_regs)
(mips32_scan_prologue,mips_insn32_frame_cache,read_next_frame_reg)
(mips_n32n64_return_value,mips_o32_return_value,mips_o64_return_value)
(print_gp_register_row,mips_print_registers_info)
(mips_stab_reg_to_regnum,mips_dwarf_dwarf2_ecoff_reg_to_regnum)
(mips_register_sim_regno): Likewise.
* mips-linux-tdep.c (mips_linux_o32_sigframe_init)
(mips_linux_n32n64_sigframe_init): Likewise.
* mips-linux-nat.c (mips_linux_register_addr)
(mips64_linux_register_addr): Likewise.
* findvar.c (value_of_register): Likewise.
* infcmd.c (default_print_registers_info,registers_info)
(print_vector_info,print_float_info): Likewise.
* mips64obsd-tdep.c (mips64obsd_sigframe_init): Likewise.
* inf-child.c (inf_child_fetch_inferior_registers): Likewise.
* m68k-tdep.c (m68k_dwarf_reg_to_regnum): Likewise.
* m68hc11-tdep.c (m68hc11_frame_unwind_cache(: Likewise.
* m32r-tdep.c (m32r_frame_unwind_cache): Likewise.
* ia64-linux-nat.c (ia64_register_addr,ia64_cannot_fetch_register)
(ia64_cannot_store_register,ia64_linux_fetch_registers)
(ia64_linux_store_registers): Likewise.
* hpux-thread.c (hpux_thread_fetch_registers)
(hpux_thread_store_registers): Likewise.
* h8300-tdep.c (E_PSEUDO_CCR_REGNUM,E_PSEUDO_EXR_REGNUM)
(h8300_init_frame_cache,h8300_frame_cache,h8300_frame_prev_register)
(h8300_register_type): Likewise.
* dwarf2-frame.c (dwarf2_frame_cache)
(dwarf2_frame_state_alloc_regs): Likewise.
* cris-tdep.c (cris_register_size,cris_cannot_fetch_register)
(cris_cannot_store_register,crisv32_cannot_fetch_register)
(crisv32_cannot_store_register,cris_register_name): Likewise.
* avr-tdep.c (avr_frame_unwind_cache): Likewise.
* arch-utils.c (legacy_register_sim_regno)
(legacy_virtual_frame_pointer): Likewise.
* arm-tdep.c (arm_make_prologue_cache,arm_register_sim_regno):Likewise.
* arm-tdep.h: Likewise (comment).
* frv-tdep.c (frv_register_sim_regno): Likewise.
* m68klinux-nat.c (old_fetch_inferior_registers)
(old_store_inferior_registers): Likewise.
* m32c-tdep.c (m32c_virtual_frame_pointer): Likewise.
* irix5-nat.c (fetch_core_registers): Likewise.
* hppa-tdep.c (hppa_frame_cache): Likewise.
* hppa-linux-nat.c (hppa_linux_register_addr)
(hppa_linux_fetch_inferior_registers)
(hppa_linux_store_inferior_registers): Likewise.
* hppa-hpux-nat.c (hppa_hpux_fetch_inferior_registers)
(hppa_hpux_store_inferior_registers): Likewise.
* amd64-nat.c (amd64_native_gregset_reg_offset)
(amd64_supply_native_gregset,amd64_collect_native_gregset): Likewise.
* dbug-rom.c (dbug_regname): Likewise.
* m68hc11-tdep.c (m68hc11_frame_unwind_cache)
(HARD_PAGE_REGNUM (comment)): Likewise.
* gdbarch.sh (NUM_PSEUDO_REGS): Replace by gdbarch_num_pseudo_regs.
* i386-tdep.c (i386_dbx_reg_to_regnum)
(i386_svr4_reg_to_regnum): Likewise.
* mi/mi-main.c (mi_cmd_data_list_register_names)
(mi_cmd_data_list_changed_registers,mi_cmd_data_list_register_values)
(mi_cmd_data_write_register_values): Likewise.
* gdbarch.c, gdbarch.h: Regenerate.
* tui/tui-regs.c (tui_show_register_group): Likewise.
* xtensa-tdep.h (FP_ALIAS): Likewise.
* user-regs.h: Likewise (comment).
* user-regs.c (user_reg, user_reg_map_name_to_regnum): Likewise.
* trad-frame.c (trad_frame_alloc_saved_regs): Likewise.
* target-descriptions.h: Likewise (comment).
* target.c (debug_print_register): Likewise.
* stack.c (frame_info): Likewise.
* stabsread.c (define_symbol): Likewise.
* sh64-tdep.c (sh64_print_register,sh64_media_print_registers_info)
(sh64_compact_print_registers_info): Likewise.
* rs6000-tdep.c (rs6000_register_sim_regno): Likewise.
* regcache.c (init_regcache_descr,register_size,regcache,regcache_save
(regcache_restore,regcache_dump): Likewise.
* mips-tdep.c (print_gp_register_row,mips_print_registers_info)
(mips_dwarf_dwarf2_ecoff_reg_to_regnum)
(mips_stab_reg_to_regnum): Likewise.
* findvar.c (value_of_register): Likewise.
* infcmd.c (default_print_registers_info,registers_info)
(print_vector_info,print_float_info): Likewise.
* m68k-tdep.c (m68k_dwarf_reg_to_regnum): Likewise.
* h8300-tdep.c (h8300_register_type): Likewise.
* dwarf2-frame.c (dwarf2_frame_cache): Likewise.
* frame.h (SIZEOF_FRAME_SAVED_REGS): Likewise.
* xtensa-tdep.c (xtensa_register_type,xtensa_reg_to_regnum)
(xtensa_pseudo_register_read,xtensa_pseudo_register_write): Likewise.
* parse.c: Remove comment.
* gdbarch.c, gdbarch.h: Regenerate
2007-05-31 17:32:22 +00:00
|
|
|
for (regnum = 0;
|
2009-06-17 18:36:44 +00:00
|
|
|
regnum < gdbarch_num_regs (gdbarch)
|
|
|
|
+ gdbarch_num_pseudo_regs (gdbarch);
|
2007-05-31 Markus Deuling <deuling@de.ibm.com>
* gdbarch.sh (NUM_REGS): Replace by gdbarch_num_regs.
* i386-tdep.c (i386_dbx_reg_to_regnum)
(i386_svr4_reg_to_regnum): Likewise.
* inf-ptrace.c (inf_ptrace_fetch_registers)
(inf_ptrace_store_registers): Likewise.
* corelow.c (get_core_registers): Likewise.
* i386-linux-nat.c (supply_gregset, fill_gregset)
(i386_linux_fetch_inferior_registers)
(i386_linux_store_inferior_registers): Likewise.
* remote.c (init_remote_state,packet_reg_from_regnum)
(packet_reg_from_pnum,process_g_packet,remote_fetch_registers)
(remote_prepare_to_store,store_registers_using_G)
(remote_store_registers,remote_arch_state): Likewise.
* tracepoint.c (encode_actions): Likewise.
* mi/mi-main.c (mi_cmd_data_list_register_names)
(mi_cmd_data_list_changed_registers,mi_cmd_data_list_register_values)
(mi_cmd_data_write_register_values): Likewise.
* tui/tui-regs.c (tui_show_register_group)
(tui_show_register_group): Likewise.
* xtensa-tdep.h (FP_ALIAS): Likewise.
* xtensa-tdep.c (xtensa_register_name,xtensa_register_type)
(xtensa_reg_to_regnum,xtensa_pseudo_register_read)
(xtensa_pseudo_register_write,xtensa_register_reggroup_p): Likewise.
* win32-nat.c (do_win32_fetch_inferior_registers)
(do_win32_store_inferior_registers,fetch_elf_core_registers
* user-regs.h: Likewise (comment).
* user-regs.c (user_reg, user_reg_map_name_to_regnum): Likewise.
* trad-frame.c (trad_frame_alloc_saved_regs): Likewise.
* target-descriptions.h: Likewise (comment).
* target-descriptions.c (tdesc_use_registers): Likewise (comment).
* target.c (debug_print_register): Likewise.
* stack.c (frame_info): Likewise.
* stabsread.c (define_symbol): Likewise.
* sh64-tdep.c (sh64_do_pseudo_register,sh64_print_register)
(sh64_media_print_registers_info)
(sh64_compact_print_registers_info): Likewise.
* rs6000-tdep.c (rs6000_register_sim_regno): Likewise.
* rs6000-nat.c (fetch_register,store_register): Likewise.
* remote-sim.c (one2one_register_sim_regno,gdbsim_fetch_register)
(gdbsim_fetch_register,gdbsim_store_register): Likewise.
* remote-mips.c (mips_fetch_registers,mips_store_registers): Likewise.
* remote-m32r-sdi.c (m32r_fetch_registers)
(m32r_store_registers): Likewise.
* reggroups.c (default_register_reggroup_p): Likewise.
* regcache.c (init_regcache_descr,register_size,regcache,regcache_save)
(regcache_restore,regcache_dump): Likewise.
* monitor.c (monitor_fetch_registers,monitor_store_registers): Likewise.
* mips-tdep.c (mips_xfer_register,mips_register_name)
(mips_register_reggroup_p,mips_pseudo_register_read)
(mips_pseudo_register_write,mips_convert_register_p,mips_register_type)
(mips_unwind_pc,mips_unwind_sp,mips_unwind_dummy_id,set_reg_offset)
(mips16_scan_prologue,mips_insn16_frame_cache,reset_saved_regs)
(mips32_scan_prologue,mips_insn32_frame_cache,read_next_frame_reg)
(mips_n32n64_return_value,mips_o32_return_value,mips_o64_return_value)
(print_gp_register_row,mips_print_registers_info)
(mips_stab_reg_to_regnum,mips_dwarf_dwarf2_ecoff_reg_to_regnum)
(mips_register_sim_regno): Likewise.
* mips-linux-tdep.c (mips_linux_o32_sigframe_init)
(mips_linux_n32n64_sigframe_init): Likewise.
* mips-linux-nat.c (mips_linux_register_addr)
(mips64_linux_register_addr): Likewise.
* findvar.c (value_of_register): Likewise.
* infcmd.c (default_print_registers_info,registers_info)
(print_vector_info,print_float_info): Likewise.
* mips64obsd-tdep.c (mips64obsd_sigframe_init): Likewise.
* inf-child.c (inf_child_fetch_inferior_registers): Likewise.
* m68k-tdep.c (m68k_dwarf_reg_to_regnum): Likewise.
* m68hc11-tdep.c (m68hc11_frame_unwind_cache(: Likewise.
* m32r-tdep.c (m32r_frame_unwind_cache): Likewise.
* ia64-linux-nat.c (ia64_register_addr,ia64_cannot_fetch_register)
(ia64_cannot_store_register,ia64_linux_fetch_registers)
(ia64_linux_store_registers): Likewise.
* hpux-thread.c (hpux_thread_fetch_registers)
(hpux_thread_store_registers): Likewise.
* h8300-tdep.c (E_PSEUDO_CCR_REGNUM,E_PSEUDO_EXR_REGNUM)
(h8300_init_frame_cache,h8300_frame_cache,h8300_frame_prev_register)
(h8300_register_type): Likewise.
* dwarf2-frame.c (dwarf2_frame_cache)
(dwarf2_frame_state_alloc_regs): Likewise.
* cris-tdep.c (cris_register_size,cris_cannot_fetch_register)
(cris_cannot_store_register,crisv32_cannot_fetch_register)
(crisv32_cannot_store_register,cris_register_name): Likewise.
* avr-tdep.c (avr_frame_unwind_cache): Likewise.
* arch-utils.c (legacy_register_sim_regno)
(legacy_virtual_frame_pointer): Likewise.
* arm-tdep.c (arm_make_prologue_cache,arm_register_sim_regno):Likewise.
* arm-tdep.h: Likewise (comment).
* frv-tdep.c (frv_register_sim_regno): Likewise.
* m68klinux-nat.c (old_fetch_inferior_registers)
(old_store_inferior_registers): Likewise.
* m32c-tdep.c (m32c_virtual_frame_pointer): Likewise.
* irix5-nat.c (fetch_core_registers): Likewise.
* hppa-tdep.c (hppa_frame_cache): Likewise.
* hppa-linux-nat.c (hppa_linux_register_addr)
(hppa_linux_fetch_inferior_registers)
(hppa_linux_store_inferior_registers): Likewise.
* hppa-hpux-nat.c (hppa_hpux_fetch_inferior_registers)
(hppa_hpux_store_inferior_registers): Likewise.
* amd64-nat.c (amd64_native_gregset_reg_offset)
(amd64_supply_native_gregset,amd64_collect_native_gregset): Likewise.
* dbug-rom.c (dbug_regname): Likewise.
* m68hc11-tdep.c (m68hc11_frame_unwind_cache)
(HARD_PAGE_REGNUM (comment)): Likewise.
* gdbarch.sh (NUM_PSEUDO_REGS): Replace by gdbarch_num_pseudo_regs.
* i386-tdep.c (i386_dbx_reg_to_regnum)
(i386_svr4_reg_to_regnum): Likewise.
* mi/mi-main.c (mi_cmd_data_list_register_names)
(mi_cmd_data_list_changed_registers,mi_cmd_data_list_register_values)
(mi_cmd_data_write_register_values): Likewise.
* gdbarch.c, gdbarch.h: Regenerate.
* tui/tui-regs.c (tui_show_register_group): Likewise.
* xtensa-tdep.h (FP_ALIAS): Likewise.
* user-regs.h: Likewise (comment).
* user-regs.c (user_reg, user_reg_map_name_to_regnum): Likewise.
* trad-frame.c (trad_frame_alloc_saved_regs): Likewise.
* target-descriptions.h: Likewise (comment).
* target.c (debug_print_register): Likewise.
* stack.c (frame_info): Likewise.
* stabsread.c (define_symbol): Likewise.
* sh64-tdep.c (sh64_print_register,sh64_media_print_registers_info)
(sh64_compact_print_registers_info): Likewise.
* rs6000-tdep.c (rs6000_register_sim_regno): Likewise.
* regcache.c (init_regcache_descr,register_size,regcache,regcache_save
(regcache_restore,regcache_dump): Likewise.
* mips-tdep.c (print_gp_register_row,mips_print_registers_info)
(mips_dwarf_dwarf2_ecoff_reg_to_regnum)
(mips_stab_reg_to_regnum): Likewise.
* findvar.c (value_of_register): Likewise.
* infcmd.c (default_print_registers_info,registers_info)
(print_vector_info,print_float_info): Likewise.
* m68k-tdep.c (m68k_dwarf_reg_to_regnum): Likewise.
* h8300-tdep.c (h8300_register_type): Likewise.
* dwarf2-frame.c (dwarf2_frame_cache): Likewise.
* frame.h (SIZEOF_FRAME_SAVED_REGS): Likewise.
* xtensa-tdep.c (xtensa_register_type,xtensa_reg_to_regnum)
(xtensa_pseudo_register_read,xtensa_pseudo_register_write): Likewise.
* parse.c: Remove comment.
* gdbarch.c, gdbarch.h: Regenerate
2007-05-31 17:32:22 +00:00
|
|
|
regnum++)
|
2004-03-13 14:14:01 +00:00
|
|
|
{
|
2011-08-12 17:04:32 +00:00
|
|
|
const char *name;
|
|
|
|
|
|
|
|
/* Must be in the group. */
|
|
|
|
if (!gdbarch_register_reggroup_p (gdbarch, regnum, group))
|
|
|
|
continue;
|
|
|
|
|
|
|
|
/* If the register name is empty, it is undefined for this
|
|
|
|
processor, so don't display anything. */
|
|
|
|
name = gdbarch_register_name (gdbarch, regnum);
|
|
|
|
if (name == 0 || *name == '\0')
|
|
|
|
continue;
|
|
|
|
|
|
|
|
nr_regs++;
|
2004-03-13 14:14:01 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
if (display_info->regs_content_count > 0 && !refresh_values_only)
|
|
|
|
{
|
|
|
|
tui_free_data_content (display_info->regs_content,
|
|
|
|
display_info->regs_content_count);
|
|
|
|
display_info->regs_content_count = 0;
|
|
|
|
}
|
|
|
|
|
|
|
|
if (display_info->regs_content_count <= 0)
|
|
|
|
{
|
|
|
|
display_info->regs_content = tui_alloc_content (nr_regs, DATA_WIN);
|
|
|
|
allocated_here = TRUE;
|
|
|
|
refresh_values_only = FALSE;
|
|
|
|
}
|
|
|
|
|
|
|
|
if (display_info->regs_content != (tui_win_content) NULL)
|
|
|
|
{
|
|
|
|
if (!refresh_values_only || allocated_here)
|
|
|
|
{
|
2015-08-31 21:32:11 +01:00
|
|
|
TUI_DATA_WIN->generic.content = NULL;
|
2004-03-13 14:14:01 +00:00
|
|
|
TUI_DATA_WIN->generic.content_size = 0;
|
|
|
|
tui_add_content_elements (&TUI_DATA_WIN->generic, nr_regs);
|
|
|
|
display_info->regs_content
|
|
|
|
= (tui_win_content) TUI_DATA_WIN->generic.content;
|
|
|
|
display_info->regs_content_count = nr_regs;
|
|
|
|
}
|
|
|
|
|
2007-08-14 Michael Snyder <msnyder@access-company.com>
* tui-command.c, tui-data.c, tui-data.h, tui-disasm.c, tui-file.c,
tui-hooks.c, tui-interp.c, tui-io.c, tui-layout.c, tui-out.c,
tui-regs.c, tui-regs.h, tui-source.c, tui-stack.c, tui-win.c,
tui-windata.c, tui-wingeneral.c, tui-winsource.c, tui-winsource.h,
tui.c, tui.h: Comment reformatting to coding standard (capitals,
spaces after periods, etc).
2007-08-14 21:20:09 +00:00
|
|
|
/* Now set the register names and values. */
|
2004-03-13 14:14:01 +00:00
|
|
|
pos = 0;
|
2007-05-31 Markus Deuling <deuling@de.ibm.com>
* gdbarch.sh (NUM_REGS): Replace by gdbarch_num_regs.
* i386-tdep.c (i386_dbx_reg_to_regnum)
(i386_svr4_reg_to_regnum): Likewise.
* inf-ptrace.c (inf_ptrace_fetch_registers)
(inf_ptrace_store_registers): Likewise.
* corelow.c (get_core_registers): Likewise.
* i386-linux-nat.c (supply_gregset, fill_gregset)
(i386_linux_fetch_inferior_registers)
(i386_linux_store_inferior_registers): Likewise.
* remote.c (init_remote_state,packet_reg_from_regnum)
(packet_reg_from_pnum,process_g_packet,remote_fetch_registers)
(remote_prepare_to_store,store_registers_using_G)
(remote_store_registers,remote_arch_state): Likewise.
* tracepoint.c (encode_actions): Likewise.
* mi/mi-main.c (mi_cmd_data_list_register_names)
(mi_cmd_data_list_changed_registers,mi_cmd_data_list_register_values)
(mi_cmd_data_write_register_values): Likewise.
* tui/tui-regs.c (tui_show_register_group)
(tui_show_register_group): Likewise.
* xtensa-tdep.h (FP_ALIAS): Likewise.
* xtensa-tdep.c (xtensa_register_name,xtensa_register_type)
(xtensa_reg_to_regnum,xtensa_pseudo_register_read)
(xtensa_pseudo_register_write,xtensa_register_reggroup_p): Likewise.
* win32-nat.c (do_win32_fetch_inferior_registers)
(do_win32_store_inferior_registers,fetch_elf_core_registers
* user-regs.h: Likewise (comment).
* user-regs.c (user_reg, user_reg_map_name_to_regnum): Likewise.
* trad-frame.c (trad_frame_alloc_saved_regs): Likewise.
* target-descriptions.h: Likewise (comment).
* target-descriptions.c (tdesc_use_registers): Likewise (comment).
* target.c (debug_print_register): Likewise.
* stack.c (frame_info): Likewise.
* stabsread.c (define_symbol): Likewise.
* sh64-tdep.c (sh64_do_pseudo_register,sh64_print_register)
(sh64_media_print_registers_info)
(sh64_compact_print_registers_info): Likewise.
* rs6000-tdep.c (rs6000_register_sim_regno): Likewise.
* rs6000-nat.c (fetch_register,store_register): Likewise.
* remote-sim.c (one2one_register_sim_regno,gdbsim_fetch_register)
(gdbsim_fetch_register,gdbsim_store_register): Likewise.
* remote-mips.c (mips_fetch_registers,mips_store_registers): Likewise.
* remote-m32r-sdi.c (m32r_fetch_registers)
(m32r_store_registers): Likewise.
* reggroups.c (default_register_reggroup_p): Likewise.
* regcache.c (init_regcache_descr,register_size,regcache,regcache_save)
(regcache_restore,regcache_dump): Likewise.
* monitor.c (monitor_fetch_registers,monitor_store_registers): Likewise.
* mips-tdep.c (mips_xfer_register,mips_register_name)
(mips_register_reggroup_p,mips_pseudo_register_read)
(mips_pseudo_register_write,mips_convert_register_p,mips_register_type)
(mips_unwind_pc,mips_unwind_sp,mips_unwind_dummy_id,set_reg_offset)
(mips16_scan_prologue,mips_insn16_frame_cache,reset_saved_regs)
(mips32_scan_prologue,mips_insn32_frame_cache,read_next_frame_reg)
(mips_n32n64_return_value,mips_o32_return_value,mips_o64_return_value)
(print_gp_register_row,mips_print_registers_info)
(mips_stab_reg_to_regnum,mips_dwarf_dwarf2_ecoff_reg_to_regnum)
(mips_register_sim_regno): Likewise.
* mips-linux-tdep.c (mips_linux_o32_sigframe_init)
(mips_linux_n32n64_sigframe_init): Likewise.
* mips-linux-nat.c (mips_linux_register_addr)
(mips64_linux_register_addr): Likewise.
* findvar.c (value_of_register): Likewise.
* infcmd.c (default_print_registers_info,registers_info)
(print_vector_info,print_float_info): Likewise.
* mips64obsd-tdep.c (mips64obsd_sigframe_init): Likewise.
* inf-child.c (inf_child_fetch_inferior_registers): Likewise.
* m68k-tdep.c (m68k_dwarf_reg_to_regnum): Likewise.
* m68hc11-tdep.c (m68hc11_frame_unwind_cache(: Likewise.
* m32r-tdep.c (m32r_frame_unwind_cache): Likewise.
* ia64-linux-nat.c (ia64_register_addr,ia64_cannot_fetch_register)
(ia64_cannot_store_register,ia64_linux_fetch_registers)
(ia64_linux_store_registers): Likewise.
* hpux-thread.c (hpux_thread_fetch_registers)
(hpux_thread_store_registers): Likewise.
* h8300-tdep.c (E_PSEUDO_CCR_REGNUM,E_PSEUDO_EXR_REGNUM)
(h8300_init_frame_cache,h8300_frame_cache,h8300_frame_prev_register)
(h8300_register_type): Likewise.
* dwarf2-frame.c (dwarf2_frame_cache)
(dwarf2_frame_state_alloc_regs): Likewise.
* cris-tdep.c (cris_register_size,cris_cannot_fetch_register)
(cris_cannot_store_register,crisv32_cannot_fetch_register)
(crisv32_cannot_store_register,cris_register_name): Likewise.
* avr-tdep.c (avr_frame_unwind_cache): Likewise.
* arch-utils.c (legacy_register_sim_regno)
(legacy_virtual_frame_pointer): Likewise.
* arm-tdep.c (arm_make_prologue_cache,arm_register_sim_regno):Likewise.
* arm-tdep.h: Likewise (comment).
* frv-tdep.c (frv_register_sim_regno): Likewise.
* m68klinux-nat.c (old_fetch_inferior_registers)
(old_store_inferior_registers): Likewise.
* m32c-tdep.c (m32c_virtual_frame_pointer): Likewise.
* irix5-nat.c (fetch_core_registers): Likewise.
* hppa-tdep.c (hppa_frame_cache): Likewise.
* hppa-linux-nat.c (hppa_linux_register_addr)
(hppa_linux_fetch_inferior_registers)
(hppa_linux_store_inferior_registers): Likewise.
* hppa-hpux-nat.c (hppa_hpux_fetch_inferior_registers)
(hppa_hpux_store_inferior_registers): Likewise.
* amd64-nat.c (amd64_native_gregset_reg_offset)
(amd64_supply_native_gregset,amd64_collect_native_gregset): Likewise.
* dbug-rom.c (dbug_regname): Likewise.
* m68hc11-tdep.c (m68hc11_frame_unwind_cache)
(HARD_PAGE_REGNUM (comment)): Likewise.
* gdbarch.sh (NUM_PSEUDO_REGS): Replace by gdbarch_num_pseudo_regs.
* i386-tdep.c (i386_dbx_reg_to_regnum)
(i386_svr4_reg_to_regnum): Likewise.
* mi/mi-main.c (mi_cmd_data_list_register_names)
(mi_cmd_data_list_changed_registers,mi_cmd_data_list_register_values)
(mi_cmd_data_write_register_values): Likewise.
* gdbarch.c, gdbarch.h: Regenerate.
* tui/tui-regs.c (tui_show_register_group): Likewise.
* xtensa-tdep.h (FP_ALIAS): Likewise.
* user-regs.h: Likewise (comment).
* user-regs.c (user_reg, user_reg_map_name_to_regnum): Likewise.
* trad-frame.c (trad_frame_alloc_saved_regs): Likewise.
* target-descriptions.h: Likewise (comment).
* target.c (debug_print_register): Likewise.
* stack.c (frame_info): Likewise.
* stabsread.c (define_symbol): Likewise.
* sh64-tdep.c (sh64_print_register,sh64_media_print_registers_info)
(sh64_compact_print_registers_info): Likewise.
* rs6000-tdep.c (rs6000_register_sim_regno): Likewise.
* regcache.c (init_regcache_descr,register_size,regcache,regcache_save
(regcache_restore,regcache_dump): Likewise.
* mips-tdep.c (print_gp_register_row,mips_print_registers_info)
(mips_dwarf_dwarf2_ecoff_reg_to_regnum)
(mips_stab_reg_to_regnum): Likewise.
* findvar.c (value_of_register): Likewise.
* infcmd.c (default_print_registers_info,registers_info)
(print_vector_info,print_float_info): Likewise.
* m68k-tdep.c (m68k_dwarf_reg_to_regnum): Likewise.
* h8300-tdep.c (h8300_register_type): Likewise.
* dwarf2-frame.c (dwarf2_frame_cache): Likewise.
* frame.h (SIZEOF_FRAME_SAVED_REGS): Likewise.
* xtensa-tdep.c (xtensa_register_type,xtensa_reg_to_regnum)
(xtensa_pseudo_register_read,xtensa_pseudo_register_write): Likewise.
* parse.c: Remove comment.
* gdbarch.c, gdbarch.h: Regenerate
2007-05-31 17:32:22 +00:00
|
|
|
for (regnum = 0;
|
2009-06-17 18:36:44 +00:00
|
|
|
regnum < gdbarch_num_regs (gdbarch)
|
|
|
|
+ gdbarch_num_pseudo_regs (gdbarch);
|
2007-05-31 Markus Deuling <deuling@de.ibm.com>
* gdbarch.sh (NUM_REGS): Replace by gdbarch_num_regs.
* i386-tdep.c (i386_dbx_reg_to_regnum)
(i386_svr4_reg_to_regnum): Likewise.
* inf-ptrace.c (inf_ptrace_fetch_registers)
(inf_ptrace_store_registers): Likewise.
* corelow.c (get_core_registers): Likewise.
* i386-linux-nat.c (supply_gregset, fill_gregset)
(i386_linux_fetch_inferior_registers)
(i386_linux_store_inferior_registers): Likewise.
* remote.c (init_remote_state,packet_reg_from_regnum)
(packet_reg_from_pnum,process_g_packet,remote_fetch_registers)
(remote_prepare_to_store,store_registers_using_G)
(remote_store_registers,remote_arch_state): Likewise.
* tracepoint.c (encode_actions): Likewise.
* mi/mi-main.c (mi_cmd_data_list_register_names)
(mi_cmd_data_list_changed_registers,mi_cmd_data_list_register_values)
(mi_cmd_data_write_register_values): Likewise.
* tui/tui-regs.c (tui_show_register_group)
(tui_show_register_group): Likewise.
* xtensa-tdep.h (FP_ALIAS): Likewise.
* xtensa-tdep.c (xtensa_register_name,xtensa_register_type)
(xtensa_reg_to_regnum,xtensa_pseudo_register_read)
(xtensa_pseudo_register_write,xtensa_register_reggroup_p): Likewise.
* win32-nat.c (do_win32_fetch_inferior_registers)
(do_win32_store_inferior_registers,fetch_elf_core_registers
* user-regs.h: Likewise (comment).
* user-regs.c (user_reg, user_reg_map_name_to_regnum): Likewise.
* trad-frame.c (trad_frame_alloc_saved_regs): Likewise.
* target-descriptions.h: Likewise (comment).
* target-descriptions.c (tdesc_use_registers): Likewise (comment).
* target.c (debug_print_register): Likewise.
* stack.c (frame_info): Likewise.
* stabsread.c (define_symbol): Likewise.
* sh64-tdep.c (sh64_do_pseudo_register,sh64_print_register)
(sh64_media_print_registers_info)
(sh64_compact_print_registers_info): Likewise.
* rs6000-tdep.c (rs6000_register_sim_regno): Likewise.
* rs6000-nat.c (fetch_register,store_register): Likewise.
* remote-sim.c (one2one_register_sim_regno,gdbsim_fetch_register)
(gdbsim_fetch_register,gdbsim_store_register): Likewise.
* remote-mips.c (mips_fetch_registers,mips_store_registers): Likewise.
* remote-m32r-sdi.c (m32r_fetch_registers)
(m32r_store_registers): Likewise.
* reggroups.c (default_register_reggroup_p): Likewise.
* regcache.c (init_regcache_descr,register_size,regcache,regcache_save)
(regcache_restore,regcache_dump): Likewise.
* monitor.c (monitor_fetch_registers,monitor_store_registers): Likewise.
* mips-tdep.c (mips_xfer_register,mips_register_name)
(mips_register_reggroup_p,mips_pseudo_register_read)
(mips_pseudo_register_write,mips_convert_register_p,mips_register_type)
(mips_unwind_pc,mips_unwind_sp,mips_unwind_dummy_id,set_reg_offset)
(mips16_scan_prologue,mips_insn16_frame_cache,reset_saved_regs)
(mips32_scan_prologue,mips_insn32_frame_cache,read_next_frame_reg)
(mips_n32n64_return_value,mips_o32_return_value,mips_o64_return_value)
(print_gp_register_row,mips_print_registers_info)
(mips_stab_reg_to_regnum,mips_dwarf_dwarf2_ecoff_reg_to_regnum)
(mips_register_sim_regno): Likewise.
* mips-linux-tdep.c (mips_linux_o32_sigframe_init)
(mips_linux_n32n64_sigframe_init): Likewise.
* mips-linux-nat.c (mips_linux_register_addr)
(mips64_linux_register_addr): Likewise.
* findvar.c (value_of_register): Likewise.
* infcmd.c (default_print_registers_info,registers_info)
(print_vector_info,print_float_info): Likewise.
* mips64obsd-tdep.c (mips64obsd_sigframe_init): Likewise.
* inf-child.c (inf_child_fetch_inferior_registers): Likewise.
* m68k-tdep.c (m68k_dwarf_reg_to_regnum): Likewise.
* m68hc11-tdep.c (m68hc11_frame_unwind_cache(: Likewise.
* m32r-tdep.c (m32r_frame_unwind_cache): Likewise.
* ia64-linux-nat.c (ia64_register_addr,ia64_cannot_fetch_register)
(ia64_cannot_store_register,ia64_linux_fetch_registers)
(ia64_linux_store_registers): Likewise.
* hpux-thread.c (hpux_thread_fetch_registers)
(hpux_thread_store_registers): Likewise.
* h8300-tdep.c (E_PSEUDO_CCR_REGNUM,E_PSEUDO_EXR_REGNUM)
(h8300_init_frame_cache,h8300_frame_cache,h8300_frame_prev_register)
(h8300_register_type): Likewise.
* dwarf2-frame.c (dwarf2_frame_cache)
(dwarf2_frame_state_alloc_regs): Likewise.
* cris-tdep.c (cris_register_size,cris_cannot_fetch_register)
(cris_cannot_store_register,crisv32_cannot_fetch_register)
(crisv32_cannot_store_register,cris_register_name): Likewise.
* avr-tdep.c (avr_frame_unwind_cache): Likewise.
* arch-utils.c (legacy_register_sim_regno)
(legacy_virtual_frame_pointer): Likewise.
* arm-tdep.c (arm_make_prologue_cache,arm_register_sim_regno):Likewise.
* arm-tdep.h: Likewise (comment).
* frv-tdep.c (frv_register_sim_regno): Likewise.
* m68klinux-nat.c (old_fetch_inferior_registers)
(old_store_inferior_registers): Likewise.
* m32c-tdep.c (m32c_virtual_frame_pointer): Likewise.
* irix5-nat.c (fetch_core_registers): Likewise.
* hppa-tdep.c (hppa_frame_cache): Likewise.
* hppa-linux-nat.c (hppa_linux_register_addr)
(hppa_linux_fetch_inferior_registers)
(hppa_linux_store_inferior_registers): Likewise.
* hppa-hpux-nat.c (hppa_hpux_fetch_inferior_registers)
(hppa_hpux_store_inferior_registers): Likewise.
* amd64-nat.c (amd64_native_gregset_reg_offset)
(amd64_supply_native_gregset,amd64_collect_native_gregset): Likewise.
* dbug-rom.c (dbug_regname): Likewise.
* m68hc11-tdep.c (m68hc11_frame_unwind_cache)
(HARD_PAGE_REGNUM (comment)): Likewise.
* gdbarch.sh (NUM_PSEUDO_REGS): Replace by gdbarch_num_pseudo_regs.
* i386-tdep.c (i386_dbx_reg_to_regnum)
(i386_svr4_reg_to_regnum): Likewise.
* mi/mi-main.c (mi_cmd_data_list_register_names)
(mi_cmd_data_list_changed_registers,mi_cmd_data_list_register_values)
(mi_cmd_data_write_register_values): Likewise.
* gdbarch.c, gdbarch.h: Regenerate.
* tui/tui-regs.c (tui_show_register_group): Likewise.
* xtensa-tdep.h (FP_ALIAS): Likewise.
* user-regs.h: Likewise (comment).
* user-regs.c (user_reg, user_reg_map_name_to_regnum): Likewise.
* trad-frame.c (trad_frame_alloc_saved_regs): Likewise.
* target-descriptions.h: Likewise (comment).
* target.c (debug_print_register): Likewise.
* stack.c (frame_info): Likewise.
* stabsread.c (define_symbol): Likewise.
* sh64-tdep.c (sh64_print_register,sh64_media_print_registers_info)
(sh64_compact_print_registers_info): Likewise.
* rs6000-tdep.c (rs6000_register_sim_regno): Likewise.
* regcache.c (init_regcache_descr,register_size,regcache,regcache_save
(regcache_restore,regcache_dump): Likewise.
* mips-tdep.c (print_gp_register_row,mips_print_registers_info)
(mips_dwarf_dwarf2_ecoff_reg_to_regnum)
(mips_stab_reg_to_regnum): Likewise.
* findvar.c (value_of_register): Likewise.
* infcmd.c (default_print_registers_info,registers_info)
(print_vector_info,print_float_info): Likewise.
* m68k-tdep.c (m68k_dwarf_reg_to_regnum): Likewise.
* h8300-tdep.c (h8300_register_type): Likewise.
* dwarf2-frame.c (dwarf2_frame_cache): Likewise.
* frame.h (SIZEOF_FRAME_SAVED_REGS): Likewise.
* xtensa-tdep.c (xtensa_register_type,xtensa_reg_to_regnum)
(xtensa_pseudo_register_read,xtensa_pseudo_register_write): Likewise.
* parse.c: Remove comment.
* gdbarch.c, gdbarch.h: Regenerate
2007-05-31 17:32:22 +00:00
|
|
|
regnum++)
|
2004-03-13 14:14:01 +00:00
|
|
|
{
|
|
|
|
struct tui_gen_win_info *data_item_win;
|
|
|
|
struct tui_data_element *data;
|
|
|
|
const char *name;
|
|
|
|
|
2011-08-12 17:04:32 +00:00
|
|
|
/* Must be in the group. */
|
2004-03-13 14:14:01 +00:00
|
|
|
if (!gdbarch_register_reggroup_p (gdbarch, regnum, group))
|
|
|
|
continue;
|
|
|
|
|
2011-08-12 17:04:32 +00:00
|
|
|
/* If the register name is empty, it is undefined for this
|
|
|
|
processor, so don't display anything. */
|
|
|
|
name = gdbarch_register_name (gdbarch, regnum);
|
|
|
|
if (name == 0 || *name == '\0')
|
|
|
|
continue;
|
2004-03-13 14:14:01 +00:00
|
|
|
|
|
|
|
data_item_win =
|
|
|
|
&display_info->regs_content[pos]->which_element.data_window;
|
2015-04-24 08:26:50 -04:00
|
|
|
data = &data_item_win->content[0]->which_element.data;
|
2004-03-13 14:14:01 +00:00
|
|
|
if (data)
|
|
|
|
{
|
|
|
|
if (!refresh_values_only)
|
|
|
|
{
|
|
|
|
data->item_no = regnum;
|
|
|
|
data->name = name;
|
|
|
|
data->highlight = FALSE;
|
|
|
|
}
|
2009-06-17 18:36:44 +00:00
|
|
|
tui_get_register (frame, data, regnum, 0);
|
2004-03-13 14:14:01 +00:00
|
|
|
}
|
|
|
|
pos++;
|
|
|
|
}
|
|
|
|
|
|
|
|
TUI_DATA_WIN->generic.content_size =
|
|
|
|
display_info->regs_content_count + display_info->data_content_count;
|
|
|
|
ret = TUI_SUCCESS;
|
|
|
|
}
|
|
|
|
|
|
|
|
return ret;
|
|
|
|
}
|
|
|
|
|
2004-01-19 16:06:04 +00:00
|
|
|
/* Function to display the registers in the content from
|
2004-02-08 00:05:16 +00:00
|
|
|
'start_element_no' until the end of the register content or the end
|
2004-01-19 16:06:04 +00:00
|
|
|
of the display height. No checking for displaying past the end of
|
|
|
|
the registers is done here. */
|
1999-04-16 01:35:26 +00:00
|
|
|
void
|
2004-02-08 00:05:16 +00:00
|
|
|
tui_display_registers_from (int start_element_no)
|
1999-04-16 01:35:26 +00:00
|
|
|
{
|
2004-03-13 14:14:01 +00:00
|
|
|
struct tui_data_info *display_info = &TUI_DATA_WIN->detail.data_display_info;
|
|
|
|
|
2007-08-14 Michael Snyder <msnyder@access-company.com>
* tui-command.c, tui-data.c, tui-disasm.c, tui-file.c, tui-io.c,
tui-layout.c, tui-regs.c, tui-source.c, tui-win.c, tui-windata.c,
tui-wingeneral.c, tui-winsource.c: Coding standard, && and ||
go at beginning of new line.
2007-08-15 00:19:44 +00:00
|
|
|
if (display_info->regs_content != (tui_win_content) NULL
|
|
|
|
&& display_info->regs_content_count > 0)
|
1999-04-16 01:35:26 +00:00
|
|
|
{
|
2004-02-08 01:32:26 +00:00
|
|
|
int i = start_element_no;
|
2010-05-05 22:53:54 +00:00
|
|
|
int j, item_win_width, cur_y;
|
2004-03-13 14:14:01 +00:00
|
|
|
|
|
|
|
int max_len = 0;
|
|
|
|
for (i = 0; i < display_info->regs_content_count; i++)
|
|
|
|
{
|
|
|
|
struct tui_data_element *data;
|
|
|
|
struct tui_gen_win_info *data_item_win;
|
|
|
|
char *p;
|
|
|
|
int len;
|
|
|
|
|
2011-01-06 00:57:05 +00:00
|
|
|
data_item_win
|
|
|
|
= &display_info->regs_content[i]->which_element.data_window;
|
2015-04-24 08:26:50 -04:00
|
|
|
data = &data_item_win->content[0]->which_element.data;
|
2004-03-13 14:14:01 +00:00
|
|
|
len = 0;
|
|
|
|
p = data->content;
|
|
|
|
if (p != 0)
|
|
|
|
while (*p)
|
|
|
|
{
|
|
|
|
if (*p++ == '\t')
|
|
|
|
len = 8 * ((len / 8) + 1);
|
|
|
|
else
|
|
|
|
len++;
|
|
|
|
}
|
|
|
|
|
|
|
|
if (len > max_len)
|
|
|
|
max_len = len;
|
|
|
|
}
|
|
|
|
item_win_width = max_len + 1;
|
|
|
|
i = start_element_no;
|
|
|
|
|
|
|
|
display_info->regs_column_count =
|
|
|
|
(TUI_DATA_WIN->generic.width - 2) / item_win_width;
|
|
|
|
if (display_info->regs_column_count == 0)
|
|
|
|
display_info->regs_column_count = 1;
|
|
|
|
item_win_width =
|
|
|
|
(TUI_DATA_WIN->generic.width - 2) / display_info->regs_column_count;
|
|
|
|
|
2007-08-14 21:39:22 +00:00
|
|
|
/* Now create each data "sub" window, and write the display into
|
|
|
|
it. */
|
2004-02-08 00:05:16 +00:00
|
|
|
cur_y = 1;
|
2007-08-14 Michael Snyder <msnyder@access-company.com>
* tui-command.c, tui-data.c, tui-disasm.c, tui-file.c, tui-io.c,
tui-layout.c, tui-regs.c, tui-source.c, tui-win.c, tui-windata.c,
tui-wingeneral.c, tui-winsource.c: Coding standard, && and ||
go at beginning of new line.
2007-08-15 00:19:44 +00:00
|
|
|
while (i < display_info->regs_content_count
|
|
|
|
&& cur_y <= TUI_DATA_WIN->generic.viewport_height)
|
1999-04-16 01:35:26 +00:00
|
|
|
{
|
|
|
|
for (j = 0;
|
2007-08-14 Michael Snyder <msnyder@access-company.com>
* tui-command.c, tui-data.c, tui-disasm.c, tui-file.c, tui-io.c,
tui-layout.c, tui-regs.c, tui-source.c, tui-win.c, tui-windata.c,
tui-wingeneral.c, tui-winsource.c: Coding standard, && and ||
go at beginning of new line.
2007-08-15 00:19:44 +00:00
|
|
|
j < display_info->regs_column_count
|
|
|
|
&& i < display_info->regs_content_count;
|
|
|
|
j++)
|
1999-04-16 01:35:26 +00:00
|
|
|
{
|
2007-08-14 Michael Snyder <msnyder@access-company.com>
* tui-data.c, tui-data.h, tui-disasm.c, tui-hooks.c, tui-layout.c,
tui-regs.c, tui-source.c, tui-stack.c, tui-win.c, tui-windata.c,
tui-wingeneral.c, tui-wingeneral.h, tui-winsource.c, tui.c,
tui-winsource.h: Whitespace changes, fix pointer declarations
to be consistant.
2007-08-14 20:23:29 +00:00
|
|
|
struct tui_gen_win_info *data_item_win;
|
|
|
|
struct tui_data_element *data_element_ptr;
|
1999-04-16 01:35:26 +00:00
|
|
|
|
2007-08-14 Michael Snyder <msnyder@access-company.com>
* tui-command.c, tui-data.c, tui-data.h, tui-disasm.c, tui-file.c,
tui-hooks.c, tui-interp.c, tui-io.c, tui-layout.c, tui-out.c,
tui-regs.c, tui-regs.h, tui-source.c, tui-stack.c, tui-win.c,
tui-windata.c, tui-wingeneral.c, tui-winsource.c, tui-winsource.h,
tui.c, tui.h: Comment reformatting to coding standard (capitals,
spaces after periods, etc).
2007-08-14 21:20:09 +00:00
|
|
|
/* Create the window if necessary. */
|
2004-03-13 14:14:01 +00:00
|
|
|
data_item_win = &display_info->regs_content[i]
|
|
|
|
->which_element.data_window;
|
2015-04-24 08:26:50 -04:00
|
|
|
data_element_ptr = &data_item_win->content[0]->which_element.data;
|
2004-03-13 14:14:01 +00:00
|
|
|
if (data_item_win->handle != (WINDOW*) NULL
|
|
|
|
&& (data_item_win->height != 1
|
|
|
|
|| data_item_win->width != item_win_width
|
|
|
|
|| data_item_win->origin.x != (item_win_width * j) + 1
|
|
|
|
|| data_item_win->origin.y != cur_y))
|
|
|
|
{
|
|
|
|
tui_delete_win (data_item_win->handle);
|
|
|
|
data_item_win->handle = 0;
|
|
|
|
}
|
|
|
|
|
2004-02-08 00:05:16 +00:00
|
|
|
if (data_item_win->handle == (WINDOW *) NULL)
|
1999-04-16 01:35:26 +00:00
|
|
|
{
|
2004-02-08 00:05:16 +00:00
|
|
|
data_item_win->height = 1;
|
2004-03-13 14:14:01 +00:00
|
|
|
data_item_win->width = item_win_width;
|
2004-02-08 00:05:16 +00:00
|
|
|
data_item_win->origin.x = (item_win_width * j) + 1;
|
|
|
|
data_item_win->origin.y = cur_y;
|
|
|
|
tui_make_window (data_item_win, DONT_BOX_WINDOW);
|
|
|
|
scrollok (data_item_win->handle, FALSE);
|
1999-04-16 01:35:26 +00:00
|
|
|
}
|
2004-02-08 00:05:16 +00:00
|
|
|
touchwin (data_item_win->handle);
|
2001-07-21 19:46:59 +00:00
|
|
|
|
2004-03-13 14:14:01 +00:00
|
|
|
/* Get the printable representation of the register
|
|
|
|
and display it. */
|
|
|
|
tui_display_register (data_element_ptr, data_item_win);
|
2007-08-14 Michael Snyder <msnyder@access-company.com>
* tui-command.c, tui-data.c, tui-data.h, tui-disasm.c, tui-file.c,
tui-hooks.c, tui-interp.c, tui-io.c, tui-layout.c, tui-out.c,
tui-regs.c, tui-regs.h, tui-source.c, tui-stack.c, tui-win.c,
tui-windata.c, tui-wingeneral.c, tui-winsource.c, tui-winsource.h,
tui.c, tui.h: Comment reformatting to coding standard (capitals,
spaces after periods, etc).
2007-08-14 21:20:09 +00:00
|
|
|
i++; /* Next register. */
|
1999-04-16 01:35:26 +00:00
|
|
|
}
|
2007-08-14 Michael Snyder <msnyder@access-company.com>
* tui-command.c, tui-data.c, tui-data.h, tui-disasm.c, tui-file.c,
tui-hooks.c, tui-interp.c, tui-io.c, tui-layout.c, tui-out.c,
tui-regs.c, tui-regs.h, tui-source.c, tui-stack.c, tui-win.c,
tui-windata.c, tui-wingeneral.c, tui-winsource.c, tui-winsource.h,
tui.c, tui.h: Comment reformatting to coding standard (capitals,
spaces after periods, etc).
2007-08-14 21:20:09 +00:00
|
|
|
cur_y++; /* Next row. */
|
1999-04-16 01:35:26 +00:00
|
|
|
}
|
|
|
|
}
|
2004-01-19 16:06:04 +00:00
|
|
|
}
|
1999-04-16 01:35:26 +00:00
|
|
|
|
|
|
|
|
2004-02-08 00:05:16 +00:00
|
|
|
/* Function to display the registers in the content from
|
|
|
|
'start_element_no' on 'start_line_no' until the end of the register
|
|
|
|
content or the end of the display height. This function checks
|
|
|
|
that we won't display off the end of the register display. */
|
2008-02-21 Pedro Alves <pedro@codesorcery.com>
Silence a few -Wmissing-prototypes warnings.
PR build/9877:
* amd64-nat.c: Include "amd64-nat.h".
* fork-child.c (_initialize_fork_child): Ditto.
* gcore.c (_initialize_gcore): Ditto.
* inf-ptrace.c: Include "inf-ptrace.h".
(inf_ptrace_store_registers): Make it static.
* linux-nat.c (linux_nat_terminal_ours): Make it static.
(_initialize_linux_nat): Declare before definition.
* linux-tdep.c: Include "linux-tdep.h".
* linux-thread-db.c (_initialize_thread_db): Declare before
definition.
* proc-service.c (_initialize_proc_service): Ditto.
* remote.c (remote_send_printf): Make it static.
* solib.c: Include "solib.h".
* symfile-mem.c (_initialize_symfile_mem): Declare before
definition.
* ada-lang.c (ada_la_decode, ada_match_name)
(ada_suppress_symbol_printing, ada_is_array_type)
(ada_value_ptr_subscript, ada_array_length)
(ada_to_static_fixed_value): Make them static.
(_initialize_ada_language): Declare before definition.
* ada-tasks.c (ada_get_task_number, ada_get_environment_task)
(ada_task_list_changed, ada_new_objfile_observer): Make them
static.
(_initialize_tasks): Declare before definition.
* addrmap.c (_initialize_addrmap): Declare before definition.
* auxv.c (default_auxv_parse): Make it static.
* bfd-target.c (target_bfd_xfer_partial, target_bfd_xclose): Make
them static.
* breakpoint.c (remove_sal): Add line break.
(expand_line_sal_maybe): Make it static.
* cp-name-parser.y: Include "cp-support.h".
* cp-valprint.c (cp_find_class_member): Make it static.
* eval.c (value_f90_subarray): Ditto.
* exceptions.c (print_any_exception): Ditto.
* findcmd.c (_initialize_mem_search): Declare before definition.
* frame.c (frame_observer_target_changed): Make it static.
* gnu-v3-abi.c (gnuv3_find_method_in): Make it static.
* inf-child.c: Include "inf-child.h".
* inferior.h (valid_inferior_id): Rename to ...
(valid_gdb_inferior_id): ... this.
* infrun.c (infrun_thread_stop_requested, siginfo_make_value):
Make them static.
* jv-lang.c (java_language_arch_info): Make it static.
* m2-typeprint.c (m2_get_discrete_bounds): Ditto.
* osdata.c (info_osdata_command): Make it static.
* regcache.c (regcache_observer_target_changed): Make it static.
* reverse.c (_initialize_reverse): Declare before definition.
* stabsread.c (cleanup_undefined_types_noname)
(cleanup_undefined_types_1): Make them static.
* symfile.c (place_section): Make it static.
* symtab.c (find_pc_sect_psymtab_closer): Make it static.
* target-descriptions.c (_initialize_target_descriptions): Declare
before definition.
* target.c (default_get_ada_task_ptid, find_default_can_async_p)
(find_default_is_async_p, find_default_supports_non_stop): Make
them static.
(target_supports_non_stop): Add prototype.
(dummy_pid_to_str): Make it static.
* utils.c (_initialize_utils): Declare before definition.
* ada-exp.y (_initialize_ada_exp): Declare before definition.
* solib-svr4.c (HAS_LM_DYNAMIC_FROM_LINK_MAP): Add a prototype.
* target.h (struct target_ops): Add a prototype to the
to_can_execute_reverse callback.
* macroscope.c (_initialize_macroscope): Declare before definition.
* cp-namespace.c (_initialize_cp_namespace): Declare before definition.
* python/python.c (_initialize_python): Declare before definition.
* tui/tui-command.c: Include "tui/tui-command.h".
* tui/tui-data.c (init_content_element, init_win_info): Make them
static.
* tui/tui-disasm.c: Include "tui/tui-disasm.h".
* tui/tui-interp.c (_initialize_tui_interp): Declare before
definition.
* tui/tui-layout.c: Include "tui/tui-layout.h".
(_initialize_tui_layout): Declare before definition.
* tui/tui-regs.c: Include "tui/tui-regs.h".
(tui_display_reg_element_at_line): Make it static.
(_initialize_tui_regs): Declare before definition.
* tui/tui-stack.c (_initialize_tui_stack): Declare before
definition.
* tui/tui-win.c: Include "tui/tui-win.h".
(_initialize_tui_win): Declare before definition.
(tui_sigwinch_handler): Make it static. Wrap in ifdef SIGWINCH.
* tui/tui-win.h (tui_sigwinch_handler): Delete declaration.
(tui_get_cmd_list): Add a prototype.
* tui/tui-windata.c: Include tui-windata.h.
* tui/tui-wingeneral.c (box_win): Make it static.
* cli/cli-logging.c (show_logging_command): Make it static.
(_initialize_cli_logging): Declare before definition.
* mi/mi-common.c (_initialize_gdb_mi_common): Declare before
definition.
2009-02-21 16:14:50 +00:00
|
|
|
static void
|
2007-08-14 Michael Snyder <msnyder@access-company.com>
* tui-data.c, tui-data.h, tui-disasm.c, tui-disasm.h, tui-hooks.c,
tui-io.c, tui-layout.c, tui-layout.h, tui-out.c, tui-regs.c,
tui-source.c, tui-source.h, tui-stack.c, tui-win.c, tui-win.h,
tui-windata.c, tui-windata.h, tui-wingeneral.c, tui-winsource.c,
tui-winsource.h, tui.c, tui.h: Function declarations and
definitions, wrap long lines.
2007-08-14 23:50:39 +00:00
|
|
|
tui_display_reg_element_at_line (int start_element_no,
|
|
|
|
int start_line_no)
|
1999-04-16 01:35:26 +00:00
|
|
|
{
|
2011-01-06 00:57:05 +00:00
|
|
|
if (TUI_DATA_WIN->detail.data_display_info.regs_content
|
|
|
|
!= (tui_win_content) NULL
|
2007-08-14 Michael Snyder <msnyder@access-company.com>
* tui-command.c, tui-data.c, tui-disasm.c, tui-file.c, tui-io.c,
tui-layout.c, tui-regs.c, tui-source.c, tui-win.c, tui-windata.c,
tui-wingeneral.c, tui-winsource.c: Coding standard, && and ||
go at beginning of new line.
2007-08-15 00:19:44 +00:00
|
|
|
&& TUI_DATA_WIN->detail.data_display_info.regs_content_count > 0)
|
1999-04-16 01:35:26 +00:00
|
|
|
{
|
2004-02-08 01:32:26 +00:00
|
|
|
int element_no = start_element_no;
|
1999-04-16 01:35:26 +00:00
|
|
|
|
2004-02-08 00:05:16 +00:00
|
|
|
if (start_element_no != 0 && start_line_no != 0)
|
1999-04-16 01:35:26 +00:00
|
|
|
{
|
2004-02-08 01:32:26 +00:00
|
|
|
int last_line_no, first_line_on_last_page;
|
1999-04-16 01:35:26 +00:00
|
|
|
|
2004-02-08 00:05:16 +00:00
|
|
|
last_line_no = tui_last_regs_line_no ();
|
2011-01-06 00:57:05 +00:00
|
|
|
first_line_on_last_page
|
|
|
|
= last_line_no - (TUI_DATA_WIN->generic.height - 2);
|
2004-02-08 00:05:16 +00:00
|
|
|
if (first_line_on_last_page < 0)
|
|
|
|
first_line_on_last_page = 0;
|
2007-08-14 21:39:22 +00:00
|
|
|
|
|
|
|
/* If there is no other data displayed except registers, and
|
|
|
|
the element_no causes us to scroll past the end of the
|
|
|
|
registers, adjust what element to really start the
|
|
|
|
display at. */
|
2007-08-14 Michael Snyder <msnyder@access-company.com>
* tui-command.c, tui-data.c, tui-disasm.c, tui-file.c, tui-io.c,
tui-layout.c, tui-regs.c, tui-source.c, tui-win.c, tui-windata.c,
tui-wingeneral.c, tui-winsource.c: Coding standard, && and ||
go at beginning of new line.
2007-08-15 00:19:44 +00:00
|
|
|
if (TUI_DATA_WIN->detail.data_display_info.data_content_count <= 0
|
|
|
|
&& start_line_no > first_line_on_last_page)
|
2011-01-06 00:57:05 +00:00
|
|
|
element_no
|
|
|
|
= tui_first_reg_element_no_inline (first_line_on_last_page);
|
1999-04-16 01:35:26 +00:00
|
|
|
}
|
2004-02-08 00:05:16 +00:00
|
|
|
tui_display_registers_from (element_no);
|
1999-04-16 01:35:26 +00:00
|
|
|
}
|
2004-02-08 00:05:16 +00:00
|
|
|
}
|
1999-04-16 01:35:26 +00:00
|
|
|
|
|
|
|
|
|
|
|
|
2004-02-08 00:05:16 +00:00
|
|
|
/* Function to display the registers starting at line line_no in the
|
2004-01-19 16:06:04 +00:00
|
|
|
data window. Answers the line number that the display actually
|
|
|
|
started from. If nothing is displayed (-1) is returned. */
|
1999-04-16 01:35:26 +00:00
|
|
|
int
|
2007-08-14 Michael Snyder <msnyder@access-company.com>
* tui-data.c, tui-data.h, tui-disasm.c, tui-disasm.h, tui-hooks.c,
tui-io.c, tui-layout.c, tui-layout.h, tui-out.c, tui-regs.c,
tui-source.c, tui-source.h, tui-stack.c, tui-win.c, tui-win.h,
tui-windata.c, tui-windata.h, tui-wingeneral.c, tui-winsource.c,
tui-winsource.h, tui.c, tui.h: Function declarations and
definitions, wrap long lines.
2007-08-14 23:50:39 +00:00
|
|
|
tui_display_registers_from_line (int line_no,
|
|
|
|
int force_display)
|
1999-04-16 01:35:26 +00:00
|
|
|
{
|
2004-02-07 Andrew Cagney <cagney@redhat.com>
* tui/tui.h: Do not include <stdarg.h>, <string.h>, and
"ansidecl.h". Do not undef "reg" and "chtype". Fix case of
fields and variables.
* tui/tui-wingeneral.h (m_beVisible): Delete macro.
(m_beInvisible): Delete macro.
* tui/tui-data.h: Fix case case fields and variables.
(m_genWinPtrIsNull): Delete macro.
(tui_win_list): Rename winList.
(TUI_SRC_WIN): Rename srcWin.
(TUI_DISASM_WIN): Rename disassemWin.
(TUI_DATA_WIN): Rename dataWin.
(TUI_CMD_WIN): Rename cmdWin.
(m_genWinPtrNotNull): Delete macro.
(m_winPtrIsNull): Delete macro.
(m_winPtrNotNull): Delete macro.
(tui_win_is_source_type): Replace m_winIsSourceType
(tui_win_is_auxillary): Replace m_winIsAuzillary.
(tui_win_has_locator): Replace m_hasLocator.
(tui_set_win_highlight): Replace m_setWinHighlightOn and
m_setWinHighlightOff.
* tui/tui-data.c: Update references.
(tui_win_is_source_type, tui_set_win_highlight): New functions.
(tui_win_has_locator, tui_win_is_auxillary): New functions.
* tui/tui-command.c, tui/tui-disasm.c: Update references.
* tui/tui-io.c, tui/tui-layout.c, tui/tui-regs.c: Ditto.
* tui/tui-regs.h, tui/tui-source.c, tui/tui-stack.c: Ditto.
* tui/tui-win.c, tui/tui-windata.c, tui/tui-wingeneral.c: Ditto.
* tui/tui-winsource.c, tui/tui.c: Ditto.
2004-02-07 20:57:02 +00:00
|
|
|
if (TUI_DATA_WIN->detail.data_display_info.regs_content_count > 0)
|
1999-04-16 01:35:26 +00:00
|
|
|
{
|
2004-02-08 00:05:16 +00:00
|
|
|
int line, element_no;
|
1999-04-16 01:35:26 +00:00
|
|
|
|
2004-02-08 00:05:16 +00:00
|
|
|
if (line_no < 0)
|
1999-04-16 01:35:26 +00:00
|
|
|
line = 0;
|
2004-02-08 00:05:16 +00:00
|
|
|
else if (force_display)
|
2007-08-14 21:39:22 +00:00
|
|
|
{ /* If we must display regs (force_display is true), then
|
|
|
|
make sure that we don't display off the end of the
|
|
|
|
registers. */
|
2004-02-08 00:05:16 +00:00
|
|
|
if (line_no >= tui_last_regs_line_no ())
|
1999-04-16 01:35:26 +00:00
|
|
|
{
|
2004-01-19 16:06:04 +00:00
|
|
|
if ((line = tui_line_from_reg_element_no (
|
2004-02-07 Andrew Cagney <cagney@redhat.com>
* tui/tui.h: Do not include <stdarg.h>, <string.h>, and
"ansidecl.h". Do not undef "reg" and "chtype". Fix case of
fields and variables.
* tui/tui-wingeneral.h (m_beVisible): Delete macro.
(m_beInvisible): Delete macro.
* tui/tui-data.h: Fix case case fields and variables.
(m_genWinPtrIsNull): Delete macro.
(tui_win_list): Rename winList.
(TUI_SRC_WIN): Rename srcWin.
(TUI_DISASM_WIN): Rename disassemWin.
(TUI_DATA_WIN): Rename dataWin.
(TUI_CMD_WIN): Rename cmdWin.
(m_genWinPtrNotNull): Delete macro.
(m_winPtrIsNull): Delete macro.
(m_winPtrNotNull): Delete macro.
(tui_win_is_source_type): Replace m_winIsSourceType
(tui_win_is_auxillary): Replace m_winIsAuzillary.
(tui_win_has_locator): Replace m_hasLocator.
(tui_set_win_highlight): Replace m_setWinHighlightOn and
m_setWinHighlightOff.
* tui/tui-data.c: Update references.
(tui_win_is_source_type, tui_set_win_highlight): New functions.
(tui_win_has_locator, tui_win_is_auxillary): New functions.
* tui/tui-command.c, tui/tui-disasm.c: Update references.
* tui/tui-io.c, tui/tui-layout.c, tui/tui-regs.c: Ditto.
* tui/tui-regs.h, tui/tui-source.c, tui/tui-stack.c: Ditto.
* tui/tui-win.c, tui/tui-windata.c, tui/tui-wingeneral.c: Ditto.
* tui/tui-winsource.c, tui/tui.c: Ditto.
2004-02-07 20:57:02 +00:00
|
|
|
TUI_DATA_WIN->detail.data_display_info.regs_content_count - 1)) < 0)
|
1999-04-16 01:35:26 +00:00
|
|
|
line = 0;
|
|
|
|
}
|
|
|
|
else
|
2004-02-08 00:05:16 +00:00
|
|
|
line = line_no;
|
1999-04-16 01:35:26 +00:00
|
|
|
}
|
|
|
|
else
|
2004-02-08 00:05:16 +00:00
|
|
|
line = line_no;
|
1999-04-16 01:35:26 +00:00
|
|
|
|
2004-02-08 00:05:16 +00:00
|
|
|
element_no = tui_first_reg_element_no_inline (line);
|
2011-01-06 00:57:05 +00:00
|
|
|
if (element_no
|
|
|
|
< TUI_DATA_WIN->detail.data_display_info.regs_content_count)
|
2004-02-08 00:05:16 +00:00
|
|
|
tui_display_reg_element_at_line (element_no, line);
|
1999-04-16 01:35:26 +00:00
|
|
|
else
|
|
|
|
line = (-1);
|
|
|
|
|
|
|
|
return line;
|
|
|
|
}
|
|
|
|
|
2007-08-14 Michael Snyder <msnyder@access-company.com>
* tui-command.c, tui-data.c, tui-data.h, tui-disasm.c, tui-file.c,
tui-hooks.c, tui-interp.c, tui-io.c, tui-layout.c, tui-out.c,
tui-regs.c, tui-regs.h, tui-source.c, tui-stack.c, tui-win.c,
tui-windata.c, tui-wingeneral.c, tui-winsource.c, tui-winsource.h,
tui.c, tui.h: Comment reformatting to coding standard (capitals,
spaces after periods, etc).
2007-08-14 21:20:09 +00:00
|
|
|
return (-1); /* Nothing was displayed. */
|
2004-01-19 16:06:04 +00:00
|
|
|
}
|
1999-04-16 01:35:26 +00:00
|
|
|
|
|
|
|
|
2004-01-19 16:06:04 +00:00
|
|
|
/* This function check all displayed registers for changes in values,
|
|
|
|
given a particular frame. If the values have changed, they are
|
|
|
|
updated with the new value and highlighted. */
|
1999-04-16 01:35:26 +00:00
|
|
|
void
|
2004-01-19 16:06:04 +00:00
|
|
|
tui_check_register_values (struct frame_info *frame)
|
1999-04-16 01:35:26 +00:00
|
|
|
{
|
2007-08-14 Michael Snyder <msnyder@access-company.com>
* tui-command.c, tui-data.c, tui-disasm.c, tui-file.c, tui-io.c,
tui-layout.c, tui-regs.c, tui-source.c, tui-win.c, tui-windata.c,
tui-wingeneral.c, tui-winsource.c: Coding standard, && and ||
go at beginning of new line.
2007-08-15 00:19:44 +00:00
|
|
|
if (TUI_DATA_WIN != NULL
|
|
|
|
&& TUI_DATA_WIN->generic.is_visible)
|
1999-04-16 01:35:26 +00:00
|
|
|
{
|
2004-03-13 14:14:01 +00:00
|
|
|
struct tui_data_info *display_info
|
|
|
|
= &TUI_DATA_WIN->detail.data_display_info;
|
|
|
|
|
2007-08-14 Michael Snyder <msnyder@access-company.com>
* tui-command.c, tui-data.c, tui-disasm.c, tui-file.c, tui-io.c,
tui-layout.c, tui-regs.c, tui-source.c, tui-win.c, tui-windata.c,
tui-wingeneral.c, tui-winsource.c: Coding standard, && and ||
go at beginning of new line.
2007-08-15 00:19:44 +00:00
|
|
|
if (display_info->regs_content_count <= 0
|
|
|
|
&& display_info->display_regs)
|
2004-03-13 14:14:01 +00:00
|
|
|
tui_show_registers (display_info->current_group);
|
1999-04-16 01:35:26 +00:00
|
|
|
else
|
|
|
|
{
|
2010-05-05 22:53:54 +00:00
|
|
|
int i;
|
1999-04-16 01:35:26 +00:00
|
|
|
|
2004-03-13 14:14:01 +00:00
|
|
|
for (i = 0; (i < display_info->regs_content_count); i++)
|
1999-04-16 01:35:26 +00:00
|
|
|
{
|
2004-03-13 14:14:01 +00:00
|
|
|
struct tui_data_element *data;
|
|
|
|
struct tui_gen_win_info *data_item_win_ptr;
|
2004-02-08 00:05:16 +00:00
|
|
|
int was_hilighted;
|
1999-04-16 01:35:26 +00:00
|
|
|
|
2004-03-13 14:14:01 +00:00
|
|
|
data_item_win_ptr = &display_info->regs_content[i]->
|
|
|
|
which_element.data_window;
|
2015-04-24 08:26:50 -04:00
|
|
|
data = &data_item_win_ptr->content[0]->which_element.data;
|
2004-03-13 14:14:01 +00:00
|
|
|
was_hilighted = data->highlight;
|
|
|
|
|
2009-06-17 18:36:44 +00:00
|
|
|
tui_get_register (frame, data,
|
2004-03-13 14:14:01 +00:00
|
|
|
data->item_no, &data->highlight);
|
|
|
|
|
|
|
|
if (data->highlight || was_hilighted)
|
1999-04-16 01:35:26 +00:00
|
|
|
{
|
2004-03-13 14:14:01 +00:00
|
|
|
tui_display_register (data, data_item_win_ptr);
|
1999-04-16 01:35:26 +00:00
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
2004-01-19 16:06:04 +00:00
|
|
|
}
|
1999-04-16 01:35:26 +00:00
|
|
|
|
2007-08-14 Michael Snyder <msnyder@access-company.com>
* tui-command.c, tui-data.c, tui-data.h, tui-disasm.c, tui-file.c,
tui-hooks.c, tui-interp.c, tui-io.c, tui-layout.c, tui-out.c,
tui-regs.c, tui-regs.h, tui-source.c, tui-stack.c, tui-win.c,
tui-windata.c, tui-wingeneral.c, tui-winsource.c, tui-winsource.h,
tui.c, tui.h: Comment reformatting to coding standard (capitals,
spaces after periods, etc).
2007-08-14 21:20:09 +00:00
|
|
|
/* Display a register in a window. If hilite is TRUE, then the value
|
|
|
|
will be displayed in reverse video. */
|
2004-03-13 14:14:01 +00:00
|
|
|
static void
|
|
|
|
tui_display_register (struct tui_data_element *data,
|
|
|
|
struct tui_gen_win_info *win_info)
|
|
|
|
{
|
|
|
|
if (win_info->handle != (WINDOW *) NULL)
|
|
|
|
{
|
|
|
|
int i;
|
1999-04-16 01:35:26 +00:00
|
|
|
|
2004-03-13 14:14:01 +00:00
|
|
|
if (data->highlight)
|
2010-04-16 04:34:31 +00:00
|
|
|
/* We ignore the return value, casting it to void in order to avoid
|
|
|
|
a compiler warning. The warning itself was introduced by a patch
|
|
|
|
to ncurses 5.7 dated 2009-08-29, changing this macro to expand
|
|
|
|
to code that causes the compiler to generate an unused-value
|
|
|
|
warning. */
|
2010-04-13 12:11:10 +00:00
|
|
|
(void) wstandout (win_info->handle);
|
2004-03-13 14:14:01 +00:00
|
|
|
|
|
|
|
wmove (win_info->handle, 0, 0);
|
|
|
|
for (i = 1; i < win_info->width; i++)
|
|
|
|
waddch (win_info->handle, ' ');
|
|
|
|
wmove (win_info->handle, 0, 0);
|
|
|
|
if (data->content)
|
|
|
|
waddstr (win_info->handle, data->content);
|
|
|
|
|
|
|
|
if (data->highlight)
|
2010-04-16 04:34:31 +00:00
|
|
|
/* We ignore the return value, casting it to void in order to avoid
|
|
|
|
a compiler warning. The warning itself was introduced by a patch
|
|
|
|
to ncurses 5.7 dated 2009-08-29, changing this macro to expand
|
|
|
|
to code that causes the compiler to generate an unused-value
|
|
|
|
warning. */
|
2010-04-13 12:11:10 +00:00
|
|
|
(void) wstandend (win_info->handle);
|
2004-03-13 14:14:01 +00:00
|
|
|
tui_refresh_win (win_info);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2015-05-26 23:23:23 +01:00
|
|
|
/* Helper for "tui reg next", wraps a call to REGGROUP_NEXT, but adds wrap
|
|
|
|
around behaviour. Returns the next register group, or NULL if the
|
|
|
|
register window is not currently being displayed. */
|
|
|
|
|
|
|
|
static struct reggroup *
|
|
|
|
tui_reg_next (struct gdbarch *gdbarch)
|
1999-04-16 01:35:26 +00:00
|
|
|
{
|
2015-05-26 23:23:23 +01:00
|
|
|
struct reggroup *group = NULL;
|
2009-07-02 17:02:35 +00:00
|
|
|
|
2015-05-21 21:21:40 +02:00
|
|
|
if (TUI_DATA_WIN != NULL)
|
2004-03-13 14:14:01 +00:00
|
|
|
{
|
2015-05-26 23:23:23 +01:00
|
|
|
group = TUI_DATA_WIN->detail.data_display_info.current_group;
|
2009-07-02 17:02:35 +00:00
|
|
|
group = reggroup_next (gdbarch, group);
|
2015-05-21 21:21:40 +02:00
|
|
|
if (group == NULL)
|
|
|
|
group = reggroup_next (gdbarch, NULL);
|
2004-03-13 14:14:01 +00:00
|
|
|
}
|
2015-05-26 23:23:23 +01:00
|
|
|
return group;
|
2004-03-13 14:14:01 +00:00
|
|
|
}
|
|
|
|
|
2015-05-26 23:23:23 +01:00
|
|
|
/* Helper for "tui reg prev", wraps a call to REGGROUP_PREV, but adds wrap
|
|
|
|
around behaviour. Returns the previous register group, or NULL if the
|
|
|
|
register window is not currently being displayed. */
|
2015-05-21 21:51:53 +02:00
|
|
|
|
2015-05-26 23:23:23 +01:00
|
|
|
static struct reggroup *
|
|
|
|
tui_reg_prev (struct gdbarch *gdbarch)
|
2015-05-21 21:51:53 +02:00
|
|
|
{
|
2015-05-26 23:23:23 +01:00
|
|
|
struct reggroup *group = NULL;
|
2015-05-21 21:51:53 +02:00
|
|
|
|
|
|
|
if (TUI_DATA_WIN != NULL)
|
|
|
|
{
|
2015-05-26 23:23:23 +01:00
|
|
|
group = TUI_DATA_WIN->detail.data_display_info.current_group;
|
2015-05-21 21:51:53 +02:00
|
|
|
group = reggroup_prev (gdbarch, group);
|
|
|
|
if (group == NULL)
|
|
|
|
group = reggroup_prev (gdbarch, NULL);
|
|
|
|
}
|
2015-05-26 23:23:23 +01:00
|
|
|
return group;
|
2015-05-21 21:51:53 +02:00
|
|
|
}
|
|
|
|
|
2015-05-26 23:23:23 +01:00
|
|
|
/* Implement the 'tui reg' command. Changes the register group displayed
|
|
|
|
in the tui register window. Displays the tui register window if it is
|
|
|
|
not already on display. */
|
1999-04-16 01:35:26 +00:00
|
|
|
|
2004-03-13 14:14:01 +00:00
|
|
|
static void
|
2015-05-26 23:23:23 +01:00
|
|
|
tui_reg_command (char *args, int from_tty)
|
2004-03-13 14:14:01 +00:00
|
|
|
{
|
2015-05-26 23:23:23 +01:00
|
|
|
struct gdbarch *gdbarch = get_current_arch ();
|
1999-04-16 01:35:26 +00:00
|
|
|
|
2015-05-26 23:23:23 +01:00
|
|
|
if (args != NULL)
|
|
|
|
{
|
|
|
|
struct reggroup *group, *match = NULL;
|
|
|
|
size_t len = strlen (args);
|
|
|
|
|
|
|
|
/* Make sure the curses mode is enabled. */
|
|
|
|
tui_enable ();
|
|
|
|
|
|
|
|
/* Make sure the register window is visible. If not, select an
|
|
|
|
appropriate layout. We need to do this before trying to run the
|
|
|
|
'next' or 'prev' commands. */
|
|
|
|
if (TUI_DATA_WIN == NULL || !TUI_DATA_WIN->generic.is_visible)
|
|
|
|
tui_set_layout_by_name (DATA_NAME);
|
|
|
|
|
|
|
|
if (strncmp (args, "next", len) == 0)
|
|
|
|
match = tui_reg_next (gdbarch);
|
|
|
|
else if (strncmp (args, "prev", len) == 0)
|
|
|
|
match = tui_reg_prev (gdbarch);
|
|
|
|
|
|
|
|
/* This loop matches on the initial part of a register group
|
|
|
|
name. If this initial part in ARGS matches only one register
|
|
|
|
group then the switch is made. */
|
|
|
|
for (group = reggroup_next (gdbarch, NULL);
|
|
|
|
group != NULL;
|
|
|
|
group = reggroup_next (gdbarch, group))
|
|
|
|
{
|
|
|
|
if (strncmp (reggroup_name (group), args, len) == 0)
|
|
|
|
{
|
|
|
|
if (match != NULL)
|
|
|
|
error (_("ambiguous register group name '%s'"), args);
|
|
|
|
match = group;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
if (match == NULL)
|
|
|
|
error (_("unknown register group '%s'"), args);
|
|
|
|
|
|
|
|
tui_show_registers (match);
|
|
|
|
}
|
|
|
|
else
|
|
|
|
{
|
|
|
|
struct reggroup *group;
|
|
|
|
int first;
|
|
|
|
|
|
|
|
printf_unfiltered (_("\"tui reg\" must be followed by the name of "
|
|
|
|
"either a register group,\nor one of 'next' "
|
|
|
|
"or 'prev'. Known register groups are:\n"));
|
|
|
|
|
|
|
|
for (first = 1, group = reggroup_next (gdbarch, NULL);
|
|
|
|
group != NULL;
|
|
|
|
first = 0, group = reggroup_next (gdbarch, group))
|
|
|
|
{
|
|
|
|
if (!first)
|
|
|
|
printf_unfiltered (", ");
|
|
|
|
printf_unfiltered ("%s", reggroup_name (group));
|
|
|
|
}
|
|
|
|
|
|
|
|
printf_unfiltered ("\n");
|
|
|
|
}
|
2004-03-13 14:14:01 +00:00
|
|
|
}
|
|
|
|
|
2015-05-26 23:23:23 +01:00
|
|
|
/* Complete names of register groups, and add the special "prev" and "next"
|
|
|
|
names. */
|
1999-04-16 01:35:26 +00:00
|
|
|
|
2015-05-26 23:23:23 +01:00
|
|
|
static VEC (char_ptr) *
|
|
|
|
tui_reggroup_completer (struct cmd_list_element *ignore,
|
|
|
|
const char *text, const char *word)
|
2004-03-13 14:14:01 +00:00
|
|
|
{
|
2015-05-26 23:23:23 +01:00
|
|
|
VEC (char_ptr) *result = NULL;
|
|
|
|
static const char *extra[] = { "next", "prev", NULL };
|
|
|
|
size_t len = strlen (word);
|
|
|
|
const char **tmp;
|
|
|
|
|
|
|
|
result = reggroup_completer (ignore, text, word);
|
|
|
|
|
|
|
|
for (tmp = extra; *tmp != NULL; ++tmp)
|
|
|
|
{
|
|
|
|
if (strncmp (word, *tmp, len) == 0)
|
|
|
|
VEC_safe_push (char_ptr, result, xstrdup (*tmp));
|
|
|
|
}
|
|
|
|
|
|
|
|
return result;
|
2004-03-13 14:14:01 +00:00
|
|
|
}
|
1999-04-16 01:35:26 +00:00
|
|
|
|
2008-02-21 Pedro Alves <pedro@codesorcery.com>
Silence a few -Wmissing-prototypes warnings.
PR build/9877:
* amd64-nat.c: Include "amd64-nat.h".
* fork-child.c (_initialize_fork_child): Ditto.
* gcore.c (_initialize_gcore): Ditto.
* inf-ptrace.c: Include "inf-ptrace.h".
(inf_ptrace_store_registers): Make it static.
* linux-nat.c (linux_nat_terminal_ours): Make it static.
(_initialize_linux_nat): Declare before definition.
* linux-tdep.c: Include "linux-tdep.h".
* linux-thread-db.c (_initialize_thread_db): Declare before
definition.
* proc-service.c (_initialize_proc_service): Ditto.
* remote.c (remote_send_printf): Make it static.
* solib.c: Include "solib.h".
* symfile-mem.c (_initialize_symfile_mem): Declare before
definition.
* ada-lang.c (ada_la_decode, ada_match_name)
(ada_suppress_symbol_printing, ada_is_array_type)
(ada_value_ptr_subscript, ada_array_length)
(ada_to_static_fixed_value): Make them static.
(_initialize_ada_language): Declare before definition.
* ada-tasks.c (ada_get_task_number, ada_get_environment_task)
(ada_task_list_changed, ada_new_objfile_observer): Make them
static.
(_initialize_tasks): Declare before definition.
* addrmap.c (_initialize_addrmap): Declare before definition.
* auxv.c (default_auxv_parse): Make it static.
* bfd-target.c (target_bfd_xfer_partial, target_bfd_xclose): Make
them static.
* breakpoint.c (remove_sal): Add line break.
(expand_line_sal_maybe): Make it static.
* cp-name-parser.y: Include "cp-support.h".
* cp-valprint.c (cp_find_class_member): Make it static.
* eval.c (value_f90_subarray): Ditto.
* exceptions.c (print_any_exception): Ditto.
* findcmd.c (_initialize_mem_search): Declare before definition.
* frame.c (frame_observer_target_changed): Make it static.
* gnu-v3-abi.c (gnuv3_find_method_in): Make it static.
* inf-child.c: Include "inf-child.h".
* inferior.h (valid_inferior_id): Rename to ...
(valid_gdb_inferior_id): ... this.
* infrun.c (infrun_thread_stop_requested, siginfo_make_value):
Make them static.
* jv-lang.c (java_language_arch_info): Make it static.
* m2-typeprint.c (m2_get_discrete_bounds): Ditto.
* osdata.c (info_osdata_command): Make it static.
* regcache.c (regcache_observer_target_changed): Make it static.
* reverse.c (_initialize_reverse): Declare before definition.
* stabsread.c (cleanup_undefined_types_noname)
(cleanup_undefined_types_1): Make them static.
* symfile.c (place_section): Make it static.
* symtab.c (find_pc_sect_psymtab_closer): Make it static.
* target-descriptions.c (_initialize_target_descriptions): Declare
before definition.
* target.c (default_get_ada_task_ptid, find_default_can_async_p)
(find_default_is_async_p, find_default_supports_non_stop): Make
them static.
(target_supports_non_stop): Add prototype.
(dummy_pid_to_str): Make it static.
* utils.c (_initialize_utils): Declare before definition.
* ada-exp.y (_initialize_ada_exp): Declare before definition.
* solib-svr4.c (HAS_LM_DYNAMIC_FROM_LINK_MAP): Add a prototype.
* target.h (struct target_ops): Add a prototype to the
to_can_execute_reverse callback.
* macroscope.c (_initialize_macroscope): Declare before definition.
* cp-namespace.c (_initialize_cp_namespace): Declare before definition.
* python/python.c (_initialize_python): Declare before definition.
* tui/tui-command.c: Include "tui/tui-command.h".
* tui/tui-data.c (init_content_element, init_win_info): Make them
static.
* tui/tui-disasm.c: Include "tui/tui-disasm.h".
* tui/tui-interp.c (_initialize_tui_interp): Declare before
definition.
* tui/tui-layout.c: Include "tui/tui-layout.h".
(_initialize_tui_layout): Declare before definition.
* tui/tui-regs.c: Include "tui/tui-regs.h".
(tui_display_reg_element_at_line): Make it static.
(_initialize_tui_regs): Declare before definition.
* tui/tui-stack.c (_initialize_tui_stack): Declare before
definition.
* tui/tui-win.c: Include "tui/tui-win.h".
(_initialize_tui_win): Declare before definition.
(tui_sigwinch_handler): Make it static. Wrap in ifdef SIGWINCH.
* tui/tui-win.h (tui_sigwinch_handler): Delete declaration.
(tui_get_cmd_list): Add a prototype.
* tui/tui-windata.c: Include tui-windata.h.
* tui/tui-wingeneral.c (box_win): Make it static.
* cli/cli-logging.c (show_logging_command): Make it static.
(_initialize_cli_logging): Declare before definition.
* mi/mi-common.c (_initialize_gdb_mi_common): Declare before
definition.
2009-02-21 16:14:50 +00:00
|
|
|
/* Provide a prototype to silence -Wmissing-prototypes. */
|
|
|
|
extern initialize_file_ftype _initialize_tui_regs;
|
|
|
|
|
1999-04-16 01:35:26 +00:00
|
|
|
void
|
2004-02-08 00:05:16 +00:00
|
|
|
_initialize_tui_regs (void)
|
1999-04-16 01:35:26 +00:00
|
|
|
{
|
2015-05-26 23:23:23 +01:00
|
|
|
struct cmd_list_element **tuicmd, *cmd;
|
2004-03-13 14:14:01 +00:00
|
|
|
|
|
|
|
tuicmd = tui_get_cmd_list ();
|
|
|
|
|
2015-05-26 23:23:23 +01:00
|
|
|
cmd = add_cmd ("reg", class_tui, tui_reg_command, _("\
|
|
|
|
TUI command to control the register window."), tuicmd);
|
|
|
|
set_cmd_completer (cmd, tui_reggroup_completer);
|
2001-07-19 22:47:46 +00:00
|
|
|
}
|
1999-04-16 01:35:26 +00:00
|
|
|
|
|
|
|
|
|
|
|
/*****************************************
|
|
|
|
** STATIC LOCAL FUNCTIONS **
|
|
|
|
******************************************/
|
|
|
|
|
2001-07-17 06:44:57 +00:00
|
|
|
static void
|
|
|
|
tui_restore_gdbout (void *ui)
|
|
|
|
{
|
|
|
|
ui_file_delete (gdb_stdout);
|
|
|
|
gdb_stdout = (struct ui_file*) ui;
|
|
|
|
pagination_enabled = 1;
|
|
|
|
}
|
1999-04-16 01:35:26 +00:00
|
|
|
|
2013-09-05 11:50:48 +00:00
|
|
|
/* Get the register from the frame and return a printable
|
|
|
|
representation of it. */
|
|
|
|
|
|
|
|
static char *
|
|
|
|
tui_register_format (struct frame_info *frame, int regnum)
|
1999-04-16 01:35:26 +00:00
|
|
|
{
|
2009-06-17 18:36:44 +00:00
|
|
|
struct gdbarch *gdbarch = get_frame_arch (frame);
|
2000-02-02 00:21:19 +00:00
|
|
|
struct ui_file *stream;
|
2001-07-17 06:44:57 +00:00
|
|
|
struct ui_file *old_stdout;
|
|
|
|
struct cleanup *cleanups;
|
2004-03-13 14:14:01 +00:00
|
|
|
char *p, *s;
|
2013-09-05 11:50:48 +00:00
|
|
|
char *ret;
|
2011-08-12 17:04:32 +00:00
|
|
|
|
2001-07-17 06:44:57 +00:00
|
|
|
pagination_enabled = 0;
|
|
|
|
old_stdout = gdb_stdout;
|
2004-03-13 14:14:01 +00:00
|
|
|
stream = tui_sfileopen (256);
|
2001-07-17 06:44:57 +00:00
|
|
|
gdb_stdout = stream;
|
|
|
|
cleanups = make_cleanup (tui_restore_gdbout, (void*) old_stdout);
|
2011-01-25 18:18:15 +00:00
|
|
|
gdbarch_print_registers_info (gdbarch, stream, frame, regnum, 1);
|
2004-03-13 14:14:01 +00:00
|
|
|
|
|
|
|
/* Save formatted output in the buffer. */
|
|
|
|
p = tui_file_get_strbuf (stream);
|
2001-07-17 06:44:57 +00:00
|
|
|
|
|
|
|
/* Remove the possible \n. */
|
2004-03-13 14:14:01 +00:00
|
|
|
s = strrchr (p, '\n');
|
|
|
|
if (s && s[1] == 0)
|
|
|
|
*s = 0;
|
2001-07-17 06:44:57 +00:00
|
|
|
|
2015-01-31 10:47:14 +02:00
|
|
|
/* Expand tabs into spaces, since ncurses on MS-Windows doesn't. */
|
|
|
|
ret = tui_expand_tabs (p, 0);
|
|
|
|
|
2001-07-17 06:44:57 +00:00
|
|
|
do_cleanups (cleanups);
|
2013-09-05 11:50:48 +00:00
|
|
|
|
|
|
|
return ret;
|
2001-07-17 06:44:57 +00:00
|
|
|
}
|
1999-04-16 01:35:26 +00:00
|
|
|
|
2007-08-14 Michael Snyder <msnyder@access-company.com>
* tui-command.c, tui-data.c, tui-data.h, tui-disasm.c, tui-file.c,
tui-hooks.c, tui-interp.c, tui-io.c, tui-layout.c, tui-out.c,
tui-regs.c, tui-regs.h, tui-source.c, tui-stack.c, tui-win.c,
tui-windata.c, tui-wingeneral.c, tui-winsource.c, tui-winsource.h,
tui.c, tui.h: Comment reformatting to coding standard (capitals,
spaces after periods, etc).
2007-08-14 21:20:09 +00:00
|
|
|
/* Get the register value from the given frame and format it for the
|
|
|
|
display. When changep is set, check if the new register value has
|
|
|
|
changed with respect to the previous call. */
|
2004-02-07 Andrew Cagney <cagney@redhat.com>
* tui/tui.h (Opaque, OpaquePtr OpaqueList): Delete definition.
(TuiPoint, TuiPointPtr): Ditto.
(TuiStatus, TuiStatusPtr): Ditto.
(TuiWinType, TuiWinTypePtr): Ditto.
(struct tui_point): Rename _TuiPoint.
(tui_get_low_disassembly_address): Rename
tuiGetLowDisassemblyAddress.
(tui_update_all_exec_infos): Rename tuiUpdateAllExecInfos.
(tuiFree): Delete declaration.
(OpaqueFuncPtr, TuiOpaqueFuncPtr): Delete definitions.
(TuiVoidFuncPtr, TuiIntFuncPtr): Delete definitions.
* tui/tui.c (tuiFree): Delete function.
* cli/cli-cmds.c (disassemble_command): Update references.
* tui/tui-data.c, tui/tui-data.h, tui/tui-disasm.c: Ditto.
* tui/tui-layout.c, tui/tui-regs.c, tui/tui-source.c: Ditto.
* tui/tui-stack.c, tui/tui-win.c, tui/tui-wingeneral.c: Ditto.
* tui/tui-winsource.c: Ditto.
2004-02-07 17:46:14 +00:00
|
|
|
static enum tui_status
|
2009-06-17 18:36:44 +00:00
|
|
|
tui_get_register (struct frame_info *frame,
|
2007-08-14 Michael Snyder <msnyder@access-company.com>
* tui-data.c, tui-data.h, tui-disasm.c, tui-disasm.h, tui-hooks.c,
tui-io.c, tui-layout.c, tui-layout.h, tui-out.c, tui-regs.c,
tui-source.c, tui-source.h, tui-stack.c, tui-win.c, tui-win.h,
tui-windata.c, tui-windata.h, tui-wingeneral.c, tui-winsource.c,
tui-winsource.h, tui.c, tui.h: Function declarations and
definitions, wrap long lines.
2007-08-14 23:50:39 +00:00
|
|
|
struct tui_data_element *data,
|
|
|
|
int regnum, int *changedp)
|
1999-04-16 01:35:26 +00:00
|
|
|
{
|
2004-02-07 Andrew Cagney <cagney@redhat.com>
* tui/tui.h (Opaque, OpaquePtr OpaqueList): Delete definition.
(TuiPoint, TuiPointPtr): Ditto.
(TuiStatus, TuiStatusPtr): Ditto.
(TuiWinType, TuiWinTypePtr): Ditto.
(struct tui_point): Rename _TuiPoint.
(tui_get_low_disassembly_address): Rename
tuiGetLowDisassemblyAddress.
(tui_update_all_exec_infos): Rename tuiUpdateAllExecInfos.
(tuiFree): Delete declaration.
(OpaqueFuncPtr, TuiOpaqueFuncPtr): Delete definitions.
(TuiVoidFuncPtr, TuiIntFuncPtr): Delete definitions.
* tui/tui.c (tuiFree): Delete function.
* cli/cli-cmds.c (disassemble_command): Update references.
* tui/tui-data.c, tui/tui-data.h, tui/tui-disasm.c: Ditto.
* tui/tui-layout.c, tui/tui-regs.c, tui/tui-source.c: Ditto.
* tui/tui-stack.c, tui/tui-win.c, tui/tui-wingeneral.c: Ditto.
* tui/tui-winsource.c: Ditto.
2004-02-07 17:46:14 +00:00
|
|
|
enum tui_status ret = TUI_FAILURE;
|
1999-04-16 01:35:26 +00:00
|
|
|
|
2004-03-13 14:14:01 +00:00
|
|
|
if (changedp)
|
|
|
|
*changedp = FALSE;
|
1999-04-16 01:35:26 +00:00
|
|
|
if (target_has_registers)
|
|
|
|
{
|
2013-09-05 11:50:48 +00:00
|
|
|
char *prev_content = data->content;
|
2004-03-13 14:14:01 +00:00
|
|
|
|
2013-09-05 11:50:48 +00:00
|
|
|
data->content = tui_register_format (frame, regnum);
|
2007-05-06 19:37:31 +00:00
|
|
|
|
2013-09-05 11:50:48 +00:00
|
|
|
if (changedp != NULL
|
|
|
|
&& strcmp (prev_content, data->content) != 0)
|
|
|
|
*changedp = 1;
|
2011-08-12 17:04:32 +00:00
|
|
|
|
2013-09-05 11:50:48 +00:00
|
|
|
xfree (prev_content);
|
2007-05-06 19:37:31 +00:00
|
|
|
|
|
|
|
ret = TUI_SUCCESS;
|
1999-04-16 01:35:26 +00:00
|
|
|
}
|
|
|
|
return ret;
|
2004-02-08 00:05:16 +00:00
|
|
|
}
|