aboutsummaryrefslogtreecommitdiff
path: root/gdb/cli
diff options
context:
space:
mode:
Diffstat (limited to 'gdb/cli')
-rw-r--r--gdb/cli/cli-cmds.c13
1 files changed, 12 insertions, 1 deletions
diff --git a/gdb/cli/cli-cmds.c b/gdb/cli/cli-cmds.c
index 5ab4791..384a336 100644
--- a/gdb/cli/cli-cmds.c
+++ b/gdb/cli/cli-cmds.c
@@ -344,12 +344,23 @@ show_configuration (char *args, int from_tty)
void
quit_command (char *args, int from_tty)
{
+ int exit_code = 0;
+
+ /* An optional expression may be used to cause gdb to terminate with
+ the value of that expression. */
+ if (args)
+ {
+ struct value *val = parse_and_eval (args);
+
+ exit_code = (int) value_as_long (val);
+ }
+
if (!quit_confirm ())
error (_("Not confirmed."));
query_if_trace_running (from_tty);
- quit_force (args, from_tty);
+ quit_force (args ? &exit_code : NULL, from_tty);
}
static void