* infcmd.c (kill_if_already_running): New function, extracted
from run_command(). (run_command): Replace extracted code by call to kill_if_already_running(). (start_command): New function. (_initialize_infcmd): Add "start" command.
This commit is contained in:
parent
d34436e841
commit
a4d5f2e026
2 changed files with 55 additions and 6 deletions
|
@ -1,3 +1,12 @@
|
||||||
|
2004-05-24 Joel Brobecker <brobecker@gnat.com>
|
||||||
|
|
||||||
|
* infcmd.c (kill_if_already_running): New function, extracted
|
||||||
|
from run_command().
|
||||||
|
(run_command): Replace extracted code by call to
|
||||||
|
kill_if_already_running().
|
||||||
|
(start_command): New function.
|
||||||
|
(_initialize_infcmd): Add "start" command.
|
||||||
|
|
||||||
2004-05-24 Mark Kettenis <kettenis@gnu.org>
|
2004-05-24 Mark Kettenis <kettenis@gnu.org>
|
||||||
|
|
||||||
Add OpenBSD/m88k support.
|
Add OpenBSD/m88k support.
|
||||||
|
|
52
gdb/infcmd.c
52
gdb/infcmd.c
|
@ -375,13 +375,14 @@ tty_command (char *file, int from_tty)
|
||||||
inferior_io_terminal = savestring (file, strlen (file));
|
inferior_io_terminal = savestring (file, strlen (file));
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
/* Kill the inferior if already running. This function is designed
|
||||||
run_command (char *args, int from_tty)
|
to be called when we are about to start the execution of the program
|
||||||
|
from the beginning. Ask the user to confirm that he wants to restart
|
||||||
|
the program being debugged when FROM_TTY is non-null. */
|
||||||
|
|
||||||
|
void
|
||||||
|
kill_if_already_running (int from_tty)
|
||||||
{
|
{
|
||||||
char *exec_file;
|
|
||||||
|
|
||||||
dont_repeat ();
|
|
||||||
|
|
||||||
if (! ptid_equal (inferior_ptid, null_ptid) && target_has_execution)
|
if (! ptid_equal (inferior_ptid, null_ptid) && target_has_execution)
|
||||||
{
|
{
|
||||||
if (from_tty
|
if (from_tty
|
||||||
|
@ -394,7 +395,16 @@ Start it from the beginning? "))
|
||||||
#endif
|
#endif
|
||||||
init_wait_for_inferior ();
|
init_wait_for_inferior ();
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
run_command (char *args, int from_tty)
|
||||||
|
{
|
||||||
|
char *exec_file;
|
||||||
|
|
||||||
|
dont_repeat ();
|
||||||
|
|
||||||
|
kill_if_already_running (from_tty);
|
||||||
clear_breakpoint_hit_counts ();
|
clear_breakpoint_hit_counts ();
|
||||||
|
|
||||||
/* Purge old solib objfiles. */
|
/* Purge old solib objfiles. */
|
||||||
|
@ -481,6 +491,29 @@ run_no_args_command (char *args, int from_tty)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/* Start the execution of the program up until the beginning of the main
|
||||||
|
program. */
|
||||||
|
|
||||||
|
static void
|
||||||
|
start_command (char *args, int from_tty)
|
||||||
|
{
|
||||||
|
/* Some languages such as Ada need to search inside the program
|
||||||
|
minimal symbols for the location where to put the temporary
|
||||||
|
breakpoint before starting. */
|
||||||
|
if (!have_minimal_symbols ())
|
||||||
|
error ("No symbol table loaded. Use the \"file\" command.");
|
||||||
|
|
||||||
|
/* If the inferior is already running, we want to ask the user if we
|
||||||
|
should restart it or not before we insert the temporary breakpoint.
|
||||||
|
This makes sure that this command doesn't have any side effect if
|
||||||
|
the user changes its mind. */
|
||||||
|
kill_if_already_running (from_tty);
|
||||||
|
|
||||||
|
/* Insert the temporary breakpoint, and run... */
|
||||||
|
tbreak_command (main_name (), 0);
|
||||||
|
run_command (args, from_tty);
|
||||||
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
continue_command (char *proc_count_exp, int from_tty)
|
continue_command (char *proc_count_exp, int from_tty)
|
||||||
{
|
{
|
||||||
|
@ -2144,6 +2177,13 @@ use \"set args\" without arguments.");
|
||||||
add_com ("R", class_run, run_no_args_command,
|
add_com ("R", class_run, run_no_args_command,
|
||||||
"Start debugged program with no arguments.");
|
"Start debugged program with no arguments.");
|
||||||
|
|
||||||
|
c = add_com ("start", class_run, start_command,
|
||||||
|
"\
|
||||||
|
Run the debugged program until the beginning of the main procedure.\n\
|
||||||
|
You may specify arguments to give to your program, just as with the\n\
|
||||||
|
\"run\" command.");
|
||||||
|
set_cmd_completer (c, filename_completer);
|
||||||
|
|
||||||
add_com ("interrupt", class_run, interrupt_target_command,
|
add_com ("interrupt", class_run, interrupt_target_command,
|
||||||
"Interrupt the execution of the debugged program.");
|
"Interrupt the execution of the debugged program.");
|
||||||
|
|
||||||
|
|
Loading…
Add table
Reference in a new issue