From e3940304fe75c91f99e260a89fe8c45ece7e373f Mon Sep 17 00:00:00 2001 From: Pedro Alves Date: Wed, 13 Jan 2016 10:56:05 +0000 Subject: Add a new $_inferior convenience variable Like $_thread, but holds the current inferior number. gdb/ChangeLog: 2016-01-13 Pedro Alves * NEWS: Mention $_inferior. * inferior.c (inferior_id_make_value): New. (inferior_funcs): New. (_initialize_inferior): Create $_inferior variable. gdb/testsuite/ChangeLog: 2016-01-13 Pedro Alves * gdb.base/default.exp: Expect $_inferior as well. * gdb.multi/base.exp: Test $_inferior. gdb/doc/ChangeLog: 2016-01-13 Pedro Alves * gdb.texinfo (Inferiors and Programs): Document the $_inferior convenience variable. (Convenience Vars): Likewise. --- gdb/inferior.c | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) (limited to 'gdb/inferior.c') diff --git a/gdb/inferior.c b/gdb/inferior.c index e71104d..8f9ac33 100644 --- a/gdb/inferior.c +++ b/gdb/inferior.c @@ -1008,6 +1008,26 @@ show_print_inferior_events (struct ui_file *file, int from_tty, fprintf_filtered (file, _("Printing of inferior events is %s.\n"), value); } +/* Return a new value for the selected inferior's id. */ + +static struct value * +inferior_id_make_value (struct gdbarch *gdbarch, struct internalvar *var, + void *ignore) +{ + struct inferior *inf = current_inferior (); + + return value_from_longest (builtin_type (gdbarch)->builtin_int, inf->num); +} + +/* Implementation of `$_inferior' variable. */ + +static const struct internalvar_funcs inferior_funcs = +{ + inferior_id_make_value, + NULL, + NULL +}; + void @@ -1071,4 +1091,5 @@ Show printing of inferior events (e.g., inferior start and exit)."), NULL, show_print_inferior_events, &setprintlist, &showprintlist); + create_internalvar_type_lazy ("_inferior", &inferior_funcs, NULL); } -- cgit v1.1