aboutsummaryrefslogtreecommitdiff
path: root/gdb/infcmd.c
diff options
context:
space:
mode:
Diffstat (limited to 'gdb/infcmd.c')
-rw-r--r--gdb/infcmd.c27
1 files changed, 17 insertions, 10 deletions
diff --git a/gdb/infcmd.c b/gdb/infcmd.c
index f04dc8a..e2db3d4 100644
--- a/gdb/infcmd.c
+++ b/gdb/infcmd.c
@@ -400,8 +400,12 @@ Start it from the beginning? "))
}
}
+/* Implement the "run" command. If TBREAK_AT_MAIN is set, then insert
+ a temporary breakpoint at the begining of the main program before
+ running the program. */
+
static void
-run_command (char *args, int from_tty)
+run_command_1 (char *args, int from_tty, int tbreak_at_main)
{
char *exec_file;
@@ -425,6 +429,10 @@ run_command (char *args, int from_tty)
reopen_exec_file ();
reread_symbols ();
+ /* Insert the temporary breakpoint if a location was specified. */
+ if (tbreak_at_main)
+ tbreak_command (main_name (), 0);
+
exec_file = (char *) get_exec_file (0);
/* We keep symbols from add-symbol-file, on the grounds that the
@@ -487,6 +495,12 @@ run_command (char *args, int from_tty)
static void
+run_command (char *args, int from_tty)
+{
+ run_command_1 (args, from_tty, 0);
+}
+
+static void
run_no_args_command (char *args, int from_tty)
{
char *old_args = set_inferior_args (xstrdup (""));
@@ -506,15 +520,8 @@ start_command (char *args, int from_tty)
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);
+ /* Run the program until reaching the main procedure... */
+ run_command_1 (args, from_tty, 1);
}
void