#include "defs.h"
#include "arch-utils.h"
-#include <signal.h>
#include "symtab.h"
#include "gdbtypes.h"
#include "frame.h"
#include "inferior.h"
#include "infrun.h"
-#include "common/environ.h"
+#include "gdbsupport/environ.h"
#include "value.h"
#include "gdbcmd.h"
#include "symfile.h"
#include "objfiles.h"
#include "completer.h"
#include "ui-out.h"
-#include "event-top.h"
-#include "parser-defs.h"
#include "regcache.h"
#include "reggroups.h"
#include "block.h"
#include "observable.h"
#include "target-descriptions.h"
#include "user-regs.h"
-#include "cli/cli-decode.h"
#include "gdbthread.h"
#include "valprint.h"
#include "inline-frame.h"
#include "inf-loop.h"
#include "continuations.h"
#include "linespec.h"
-#include "cli/cli-utils.h"
-#include "infcall.h"
#include "thread-fsm.h"
#include "top.h"
#include "interps.h"
-#include "common/gdb_optional.h"
+#include "gdbsupport/gdb_optional.h"
#include "source.h"
+#include "cli/cli-style.h"
/* Local functions: */
int stopped_by_random_signal;
-/* See inferior.h. */
-
-int startup_with_shell = 1;
-
\f
/* Accessor routines. */
deprecated_show_value_hack (file, from_tty, c, get_inferior_args ());
}
-/* See common/common-inferior.h. */
+/* See gdbsupport/common-inferior.h. */
void
set_inferior_cwd (const char *cwd)
inf->cwd.reset (xstrdup (cwd));
}
-/* See common/common-inferior.h. */
+/* See gdbsupport/common-inferior.h. */
const char *
get_inferior_cwd ()
}
*bg_char_p = 0;
- return gdb::unique_xmalloc_ptr<char> (xstrdup (args));
+ return make_unique_xstrdup (args);
}
/* Common actions to take after creating any sort of inferior, by any
/* Insert temporary breakpoint in main function if requested. */
if (run_how == RUN_STOP_AT_MAIN)
- tbreak_command (main_name (), 0);
+ {
+ std::string arg = string_printf ("-qualified %s", main_name ());
+ tbreak_command (arg.c_str (), 0);
+ }
exec_file = get_exec_file (0);
if (fn != NULL && sfn != fn)
{
if (!query (_("Line %d is not in `%s'. Jump anyway? "), sal.line,
- SYMBOL_PRINT_NAME (fn)))
+ fn->print_name ()))
{
error (_("Not confirmed."));
/* NOTREACHED */
uiout->text (" = ");
get_user_print_options (&opts);
- string_file stb;
-
- value_print (rv->value, &stb, &opts);
- uiout->field_stream ("return-value", stb);
+ if (opts.finish_print)
+ {
+ string_file stb;
+ value_print (rv->value, &stb, &opts);
+ uiout->field_stream ("return-value", stb);
+ }
+ else
+ uiout->field_string ("return-value", _("<not displayed>"),
+ metadata_style.style ());
uiout->text ("\n");
}
else
if (sm->function != NULL && TYPE_NO_RETURN (sm->function->type)
&& !query (_("warning: Function %s does not return normally.\n"
"Try to finish anyway? "),
- SYMBOL_PRINT_NAME (sm->function)))
+ sm->function->print_name ()))
error (_("Not confirmed."));
printf_filtered (_("Run till exit from "));
}
if (arg == 0)
error_no_arg (_("environment variable and value"));
- /* Find seperation between variable name and value. */
+ /* Find separation between variable name and value. */
p = (char *) strchr (arg, '=');
val = (char *) strchr (arg, ' ');
current_inferior ()->environment.set (path_var_name, exec_path);
xfree (exec_path);
if (from_tty)
- path_info ((char *) NULL, from_tty);
+ path_info (NULL, from_tty);
}
\f
{
struct value_print_options opts;
const gdb_byte *valaddr = value_contents_for_printing (val);
- enum bfd_endian byte_order = gdbarch_byte_order (get_type_arch (regtype));
+ enum bfd_endian byte_order = type_byte_order (regtype);
get_user_print_options (&opts);
opts.deref_ref = 1;
}
}
-/* Implement `info proc' when given without any futher parameters. */
+/* Implement `info proc' when given without any further parameters. */
static void
info_proc_cmd (const char *args, int from_tty)
info_proc_cmd_1 (args, IP_ALL, from_tty);
}
+/* Implement `show print finish'. */
+
+static void
+show_print_finish (struct ui_file *file, int from_tty,
+ struct cmd_list_element *c,
+ const char *value)
+{
+ fprintf_filtered (file, _("\
+Printing of return value after `finish' is %s.\n"),
+ value);
+}
+
+
/* This help string is used for the run, start, and starti commands.
It is defined as a macro to prevent duplication. */
add_com_alias ("s", "step", class_run, 1);
c = add_com ("until", class_run, until_command, _("\
+Execute until past the current line or past a LOCATION.\n\
Execute until the program reaches a source line greater than the current\n\
or a specified location (same args as break command) within the current \
frame."));
_("Execution status of the program."));
add_info ("float", info_float_command,
- _("Print the status of the floating point unit\n"));
+ _("Print the status of the floating point unit."));
add_info ("vector", info_vector_command,
- _("Print the status of the vector unit\n"));
+ _("Print the status of the vector unit."));
add_prefix_cmd ("proc", class_info, info_proc_cmd,
_("\
add_cmd ("all", class_info, info_proc_cmd_all, _("\
List all available info about the specified process."),
&info_proc_cmdlist);
+
+ add_setshow_boolean_cmd ("finish", class_support,
+ &user_print_options.finish_print, _("\
+Set whether `finish' prints the return value."), _("\
+Show whether `finish' prints the return value."), NULL,
+ NULL,
+ show_print_finish,
+ &setprintlist, &showprintlist);
}