2000-12-01 Fernando Nasser <fnasser@redhat.com>
* cli/cli-decode.c: New file. Handle lists of commands, their decoding
and documentation.
(add_cmd, deprecate_cmd, add_abbrev_cmd, add_alias_cmd, add_prefix_cmd,
add_abbrev_prefix_cmd, not_just_help_class_command, empty_sfunc,
add_set_cmd, add_set_enum_cmd, add_set_auto_boolean_cmd,
add_show_from_set, delete_cmd, apropos_cmd, help_cmd, help_list,
help_all, print_doc_line, help_cmd_list, find_cmd, lookup_cmd_1,
undef_cmd_error, lookup_cmd, deprecated_cmd_warning,
lookup_cmd_composition, complete_on_cmdlist, complete_on_enum):
Moved here from command.c.
(add_info, add_info_alias, add_com, add_com_alias): Moved here from
top.c.
* cli/cli-decode.h: Definitions/declarations for the above.
* cli/cli-cmds.c: New file. GDB CLI commands.
(error_no_arg, info_command, show_command, help_command, show_version,
quit_command, pwd_command, cd_command, echo_command, shell_escape,
make_command, show_user, set_debug, show_debug, init_cmd_lists):
Moved here from top.c.
(apropos_command): Moved here from command.c.
(complete_command, source_command): Moved here (part) from top.c.
(is_complete_command): New function. Checks if a command is the
"complete" command.
(init_cli_cmds): New function. Add commands to the CLI (from code
previously in top.c.
* cli/cli-cmds.h: Definitions/declarations for the above.
* cli/cli-script.c: New file. GDB CLI command scripting.
(build_command_line, get_command_line, print_command_lines,
print_command_line, execute_user_command, execute_control_command,
while_command, if_command, arg_cleanup, setup_user_args, locate_arg,
insert_args, realloc_body_list, read_next_line,
recurse_read_control_structure, read_command_lines, free_command_lines,
do_free_command_lines_cleanup, make_cleanup_free_command_lines,
validate_comname, user_defined_command, define_command,
document_command, source_cleanup_lines, do_fclose_cleanup,
show_user_1): Moved here from top.c.
(script_from_file): New function. Implements execution of a script
contained in a file (part of code for the source_command() that used
to exist in top.c).
* cli/cli-script.h: Definitions/declarations for the above.
* cli/cli-setshow.c: New file. Handle set and show GDB CLI commands.
(parse_auto_binary_operation, parse_binary_operation,
do_setshow_command, cmd_show_list): Moved here from command.c.
* cli/cli-setshow.h: Definitions/declarations for the above.
* top.c: Remove all CLI code, except the command loop.
(gdb_init): Call init_cli_cmds().
* command.c: Remove obsolete file.
* command.h: Mark as DEPRECATED.
* gdbcmd.h: Ditto.
* call-cmds.h: Ditto.
* Makefile.in (SFILES): Remove command.c.
(COMMON_OBS): Remove command.o.
(command.o): Remove obsolete target.
(cli_decode_h, cli_cmds_h, cli_script_h, cli_setshow_h): New macros.
Refer to CLI header files.
(cli-decode.o, cli-cmds.o, cli-setshow.o, cli-script.o): New targets.
(SUBDIR_CLI_OBS, SUBDIR_CLI_SRCS, SUBDIR_CLI_DEPS, SUBDIR_CLI_INITS,
SUBDIR_CLI_LDFLAGS, SUBDIR_CLI_CFLAGS, SUBDIR_CLI_ALL, SUBDIR_CLI_CLEAN,
SUBDIR_CLI_INSTALL, SUBDIR_CLI_UNINSTALL): New macros for new cli
subdirectory.
* configure.in (enable_gdbcli): New option. Include the CLI in the
executable (cannot be disabled yet).
(CONFIG_OBS, CONFIG_DEPS, CONFIG_SRCS, CONFIG_INITS, ENABLE_CFLAGS,
CONFIG_ALL, CONFIG_CLEAN, CONFIG_INSTALL, CONFIG_UNINSTALL): Add
the corresponding SUBDIR_CLI_* macros if CLI requested.
* configure: Regenerate.
2000-12-01 19:01:38 +01:00
|
|
|
/* ***DEPRECATED*** The gdblib files must not be calling/using things in any
|
|
|
|
of the possible command languages. If necessary, a hook (that may be
|
|
|
|
present or not) must be used and set to the appropriate routine by any
|
|
|
|
command language that cares about it. If you are having to include this
|
|
|
|
file you are possibly doing things the old way. This file will disapear.
|
|
|
|
fnasser@redhat.com */
|
|
|
|
|
1999-04-16 03:35:26 +02:00
|
|
|
/* Header file for GDB-specific command-line stuff.
|
2019-01-01 07:01:51 +01:00
|
|
|
Copyright (C) 1986-2019 Free Software Foundation, Inc.
|
1999-04-16 03:35:26 +02:00
|
|
|
|
1999-07-07 22:19:36 +02: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 20:08:50 +02:00
|
|
|
the Free Software Foundation; either version 3 of the License, or
|
1999-07-07 22:19:36 +02:00
|
|
|
(at your option) any later version.
|
1999-04-16 03:35:26 +02:00
|
|
|
|
1999-07-07 22:19:36 +02:00
|
|
|
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.
|
1999-04-16 03:35:26 +02:00
|
|
|
|
1999-07-07 22:19:36 +02:00
|
|
|
You should have received a copy of the GNU General Public License
|
2007-08-23 20:08:50 +02:00
|
|
|
along with this program. If not, see <http://www.gnu.org/licenses/>. */
|
1999-04-16 03:35:26 +02:00
|
|
|
|
|
|
|
#if !defined (GDBCMD_H)
|
|
|
|
#define GDBCMD_H 1
|
|
|
|
|
|
|
|
#include "command.h"
|
2000-02-03 05:14:45 +01:00
|
|
|
#include "ui-out.h"
|
2017-09-04 19:09:12 +02:00
|
|
|
#include "cli/cli-script.h"
|
1999-04-16 03:35:26 +02:00
|
|
|
|
|
|
|
/* Chain containing all defined commands. */
|
|
|
|
|
|
|
|
extern struct cmd_list_element *cmdlist;
|
|
|
|
|
|
|
|
/* Chain containing all defined info subcommands. */
|
|
|
|
|
|
|
|
extern struct cmd_list_element *infolist;
|
|
|
|
|
2005-01-14 01:19:14 +01:00
|
|
|
/* Chain containing all defined enable subcommands. */
|
1999-04-16 03:35:26 +02:00
|
|
|
|
|
|
|
extern struct cmd_list_element *enablelist;
|
|
|
|
|
2005-01-14 01:19:14 +01:00
|
|
|
/* Chain containing all defined disable subcommands. */
|
1999-04-16 03:35:26 +02:00
|
|
|
|
|
|
|
extern struct cmd_list_element *disablelist;
|
|
|
|
|
2005-01-14 01:19:14 +01:00
|
|
|
/* Chain containing all defined delete subcommands. */
|
1999-04-16 03:35:26 +02:00
|
|
|
|
|
|
|
extern struct cmd_list_element *deletelist;
|
|
|
|
|
2006-10-28 00:23:21 +02:00
|
|
|
/* Chain containing all defined detach subcommands. */
|
|
|
|
|
|
|
|
extern struct cmd_list_element *detachlist;
|
|
|
|
|
gdb/
2009-07-02 Pedro Alves <pedro@codesourcery.com>
* linux-nat.c (linux_child_follow_fork): If we're staying attached
to the child process, enable event reporting on it. Don't handle
checkpoints here. Instead, add the child fork to the lwp thread
and inferior lists without clobbering the previous inferior. Let
the thread_db layer learn about a new child process, even if
following the parent.
(linux_nat_switch_fork): Delete lwps of the current inferior only,
instead of clearing the whole list. Use thread_change_ptid to
give the core the illusion the new checkpoint is still the same
inferior. Clear the register cache.
(linux_handle_extended_wait): Handle checkpoints here.
(linux_multi_process): Turn on.
* linux-fork.c (struct fork_info) <pc>: Remove field.
(init_fork_list): Do not delete the checkpoint from the inferior
list (it is not there).
(fork_load_infrun_state): Don't switch inferior_ptid here. Pass
the new checkpoint's ptid to linux_nat_switch_fork.
(fork_save_infrun_state): Make static. Don't stop the pc field of
fork_info, it's gone.
(linux_fork_mourn_inferior): Don't delete the checkpoint from the
inferior list, it's not there.
(linux_fork_detach): Ditto.
(delete_fork_command): Replace mention of fork/checkpoint by
checkpoint only.
(detach_fork_command): Likewise. Don't delete the checkpoint from
the inferior list.
(info_forks_command): Adjust.
(restore_detach_fork): Delete.
(checkpointing_pid): New.
(linux_fork_checkpointing_p): New.
(save_detach_fork): Delete.
(checkpoint_command): Delete temp_detach_fork. Don't remove
breakpoints, that's a nop. Store the pid of the process we're
checkpointing, and use make_cleanup_restore_integer to restore it.
Don't reinsert breakpoints here.
(process_command, fork_command): Delete.
(restart_command): Update comments to only mention checkpoints,
not forks.
(_initialize_linux_fork): Delete "fork", "process", "info forks"
commands.
* linux-fork.h (fork_save_infrun_state, fork_list): Delete
declarations.
(linux_fork_checkpointing_p): Declare.
* cli/cli-cmds.c (killlist): New.
* cli/cli-cmds.h (killlist): Declare.
* gdbcmd.h (killlist): Declare.
* inferior.c: Include "gdbthread.h".
(detach_inferior_command, kill_inferior_command)
(inferior_command): New.
(info_inferiors_command): Allow specifying a specific inferior id.
(_initialize_inferiors): Register "inferior", "kill inferior" and
"detach inferior" commands.
* infcmd.c (_initialize_infcmd): Make "kill" a prefix command.
* gdbthread.h (any_thread_of_process): Declare.
* thread.c (any_thread_of_process): New.
* NEWS: Mention multi-inferior debugging. Mention 'info
inferiors', 'inferior', 'detach inferior' and 'kill inferior' as
new commands.
(Removed commands): New section, mentioning that 'info forks',
'fork', 'process', 'delete fork' and 'detach fork' are now gone.
gdb/testsuite/
2009-07-02 Pedro Alves <pedro@codesourcery.com>
* gdb.base/multi-forks.exp: Only run detach-on-fork tests on
linux. Adjust to use "inferior", "info inferiors", "detach
inferior" and "kill inferior" instead of "restart", "info fork",
"detach fork" and "delete fork".
* gdb.base/ending-run.exp: Spell out "info".
* gdb.base/help.exp: Adjust to use test_prefix_command_help for
the "kill" command.
gdb/doc/
2009-07-02 Pedro Alves <pedro@codesourcery.com>
* gdb.texinfo (Debugging multiple inferiors): Document the
"inferior", "detach inferior" and "kill inferior" commands.
(Debugging Programs with Multiple Processes): Adjust to mention
generic "inferior" commands. Delete mention of "detach fork" and
"delete fork". Cross reference to "Debugging multiple inferiors"
section.
2009-07-02 23:57:28 +02:00
|
|
|
/* Chain containing all defined kill subcommands. */
|
|
|
|
|
|
|
|
extern struct cmd_list_element *killlist;
|
|
|
|
|
2005-01-14 01:19:14 +01:00
|
|
|
/* Chain containing all defined stop subcommands. */
|
1999-04-16 03:35:26 +02:00
|
|
|
|
|
|
|
extern struct cmd_list_element *stoplist;
|
|
|
|
|
2005-01-14 01:19:14 +01:00
|
|
|
/* Chain containing all defined set subcommands. */
|
1999-04-16 03:35:26 +02:00
|
|
|
|
|
|
|
extern struct cmd_list_element *setlist;
|
|
|
|
|
2005-01-14 01:19:14 +01:00
|
|
|
/* Chain containing all defined unset subcommands. */
|
1999-04-16 03:35:26 +02:00
|
|
|
|
|
|
|
extern struct cmd_list_element *unsetlist;
|
|
|
|
|
|
|
|
/* Chain containing all defined show subcommands. */
|
|
|
|
|
|
|
|
extern struct cmd_list_element *showlist;
|
|
|
|
|
|
|
|
/* Chain containing all defined \"set history\". */
|
|
|
|
|
|
|
|
extern struct cmd_list_element *sethistlist;
|
|
|
|
|
|
|
|
/* Chain containing all defined \"show history\". */
|
|
|
|
|
|
|
|
extern struct cmd_list_element *showhistlist;
|
|
|
|
|
|
|
|
/* Chain containing all defined \"unset history\". */
|
|
|
|
|
|
|
|
extern struct cmd_list_element *unsethistlist;
|
|
|
|
|
2005-01-14 01:19:14 +01:00
|
|
|
/* Chain containing all defined maintenance subcommands. */
|
1999-04-16 03:35:26 +02:00
|
|
|
|
|
|
|
extern struct cmd_list_element *maintenancelist;
|
|
|
|
|
2005-01-14 01:19:14 +01:00
|
|
|
/* Chain containing all defined "maintenance info" subcommands. */
|
1999-04-16 03:35:26 +02:00
|
|
|
|
|
|
|
extern struct cmd_list_element *maintenanceinfolist;
|
|
|
|
|
2005-01-14 01:19:14 +01:00
|
|
|
/* Chain containing all defined "maintenance print" subcommands. */
|
1999-04-16 03:35:26 +02:00
|
|
|
|
|
|
|
extern struct cmd_list_element *maintenanceprintlist;
|
|
|
|
|
2017-07-26 15:55:31 +02:00
|
|
|
/* Chain containing all defined "maintenance check" subcommands. */
|
|
|
|
|
|
|
|
extern struct cmd_list_element *maintenancechecklist;
|
|
|
|
|
2005-01-14 01:19:14 +01:00
|
|
|
/* Chain containing all defined "maintenance set" subcommands. */
|
gdb/doc/
* gdb.texinfo (Maintenance Commands): Document "maint set dwarf2
max-cache-age" and "maint show dwarf2 max-cache-age".
gdb/
* Makefile.in (dwarf2read.o): Update dependencies.
* dwarf2read.c: Include "command.h" and "gdbcmd.h".
(struct dwarf2_per_objfile): Add all_comp_units, n_comp_units,
and read_in_chain.
(struct dwarf2_cu): Add read_in_chain, per_cu, last_used,
mark, and has_form_ref_addr.
(struct dwarf2_per_cu_data): New.
(dwarf2_max_cache_age): New.
(dwarf2_build_psymtabs_hard): Free cached compilation units
after loading. Create and manage the list of compilation units.
Remove unnecessary NULL initialization. Fix indentation.
(psymtab_to_symtab_1): Initialize all of CU.
(dwarf2_read_abbrevs): Set has_form_ref_addr.
(find_partial_die): Use dwarf2_find_containing_comp_unit
and load_comp_unit.
(free_stack_comp_unit): Update comments. Clear the per-cu
pointer. Handle aging.
(dwarf2_find_containing_comp_unit, free_cached_comp_units)
(age_cached_comp_units, free_one_cached_comp_unit)
(dwarf2_mark, dwarf2_clear_marks, create_all_comp_units)
(load_comp_unit, dwarf2_find_comp_unit, free_one_comp_unit)
(set_dwarf2_cmdlist, show_dwarf2_cmdlist, set_dwarf2_cmd)
(show_dwarf2_cmd): New.
(_initialize_dwarf2_read): Provide "maint set dwarf2 max-cache-age"
and "maint show dwarf2 max-cache-age".
* gdbcmd.h (maintenance_set_cmdlist, maintenance_show_cmdlist): New
externs.
* maint.c (maintenance_set_cmdlist, maintenance_show_cmdlist): Make
global.
2004-09-21 00:26:21 +02:00
|
|
|
|
|
|
|
extern struct cmd_list_element *maintenance_set_cmdlist;
|
|
|
|
|
2005-01-14 01:19:14 +01:00
|
|
|
/* Chain containing all defined "maintenance show" subcommands. */
|
gdb/doc/
* gdb.texinfo (Maintenance Commands): Document "maint set dwarf2
max-cache-age" and "maint show dwarf2 max-cache-age".
gdb/
* Makefile.in (dwarf2read.o): Update dependencies.
* dwarf2read.c: Include "command.h" and "gdbcmd.h".
(struct dwarf2_per_objfile): Add all_comp_units, n_comp_units,
and read_in_chain.
(struct dwarf2_cu): Add read_in_chain, per_cu, last_used,
mark, and has_form_ref_addr.
(struct dwarf2_per_cu_data): New.
(dwarf2_max_cache_age): New.
(dwarf2_build_psymtabs_hard): Free cached compilation units
after loading. Create and manage the list of compilation units.
Remove unnecessary NULL initialization. Fix indentation.
(psymtab_to_symtab_1): Initialize all of CU.
(dwarf2_read_abbrevs): Set has_form_ref_addr.
(find_partial_die): Use dwarf2_find_containing_comp_unit
and load_comp_unit.
(free_stack_comp_unit): Update comments. Clear the per-cu
pointer. Handle aging.
(dwarf2_find_containing_comp_unit, free_cached_comp_units)
(age_cached_comp_units, free_one_cached_comp_unit)
(dwarf2_mark, dwarf2_clear_marks, create_all_comp_units)
(load_comp_unit, dwarf2_find_comp_unit, free_one_comp_unit)
(set_dwarf2_cmdlist, show_dwarf2_cmdlist, set_dwarf2_cmd)
(show_dwarf2_cmd): New.
(_initialize_dwarf2_read): Provide "maint set dwarf2 max-cache-age"
and "maint show dwarf2 max-cache-age".
* gdbcmd.h (maintenance_set_cmdlist, maintenance_show_cmdlist): New
externs.
* maint.c (maintenance_set_cmdlist, maintenance_show_cmdlist): Make
global.
2004-09-21 00:26:21 +02:00
|
|
|
|
|
|
|
extern struct cmd_list_element *maintenance_show_cmdlist;
|
|
|
|
|
1999-04-16 03:35:26 +02:00
|
|
|
extern struct cmd_list_element *setprintlist;
|
|
|
|
|
|
|
|
extern struct cmd_list_element *showprintlist;
|
|
|
|
|
2013-07-17 22:35:11 +02:00
|
|
|
extern struct cmd_list_element *setprintrawlist;
|
|
|
|
|
|
|
|
extern struct cmd_list_element *showprintrawlist;
|
|
|
|
|
* NEWS: Update.
* c-typeprint.c (c_type_print_base): Handle print_method and
print_typedefs flags.
* gdbcmd.h (setprinttypelist, showprinttypelist): Declare.
* python/py-type.c (typy_str): Use LA_PRINT_TYPE and raw
options.
* typeprint.c (type_print_raw_options, default_ptype_flags):
Update for new field.s
(whatis_exp): Parse flags. Use LA_PRINT_TYPE.
(setprinttypelist, showprinttypelist, print_methods,
print_typedefs): New globals.
(set_print_type, show_print_type, set_print_type_methods,
show_print_type_methods, set_print_type_typedefs,
show_print_type_typedefs): New functions.
(_initialize_typeprint): Update documentation. Add "print
type methods" and "print type typedefs" parameters.
* typeprint.h (struct type_print_options) <print_methods,
print_typedefs>: New fields.
doc
* gdb.texinfo (Symbols): Document "set print type methods",
"set print type typedefs", and flags to ptype and whatis.
2012-11-12 18:26:21 +01:00
|
|
|
extern struct cmd_list_element *setprinttypelist;
|
|
|
|
|
|
|
|
extern struct cmd_list_element *showprinttypelist;
|
|
|
|
|
2000-03-28 04:25:14 +02:00
|
|
|
extern struct cmd_list_element *setdebuglist;
|
|
|
|
|
|
|
|
extern struct cmd_list_element *showdebuglist;
|
|
|
|
|
1999-04-16 03:35:26 +02:00
|
|
|
extern struct cmd_list_element *setchecklist;
|
|
|
|
|
|
|
|
extern struct cmd_list_element *showchecklist;
|
|
|
|
|
2010-07-13 22:51:34 +02:00
|
|
|
/* Chain containing all defined "save" subcommands. */
|
|
|
|
|
|
|
|
extern struct cmd_list_element *save_cmdlist;
|
|
|
|
|
2017-10-15 16:36:51 +02:00
|
|
|
extern void execute_command (const char *, int);
|
2019-03-09 23:55:44 +01:00
|
|
|
|
|
|
|
/* Execute command P and returns its output. If TERM_OUT,
|
|
|
|
the output is built using terminal output behaviour such
|
|
|
|
as cli_styling. */
|
|
|
|
extern std::string execute_command_to_string (const char *p, int from_tty,
|
|
|
|
bool term_out);
|
1999-04-16 03:35:26 +02:00
|
|
|
|
2000-02-02 01:21:19 +01:00
|
|
|
extern void print_command_line (struct command_line *, unsigned int,
|
|
|
|
struct ui_file *);
|
2000-05-28 03:12:42 +02:00
|
|
|
extern void print_command_lines (struct ui_out *,
|
|
|
|
struct command_line *, unsigned int);
|
1999-04-16 03:35:26 +02:00
|
|
|
|
1999-07-07 22:19:36 +02:00
|
|
|
#endif /* !defined (GDBCMD_H) */
|