From f47f77df4e0f38c96bf5a4c4d8ecda6c73f5ffc2 Mon Sep 17 00:00:00 2001 From: Doug Evans Date: Mon, 13 Aug 2012 14:31:00 +0000 Subject: [PATCH] * value.c (show_convenience): Tweak comment. (_initialize_values): Mention convenience functions in the help text for "show convenience". doc/ * gdb.texinfo (Convenience Vars): Update text for "show convenience" to include functions. testsuite/ * gdb.base/default.exp: Update expected output of "show convenience". --- gdb/ChangeLog | 6 ++++++ gdb/doc/ChangeLog | 5 +++++ gdb/doc/gdb.texinfo | 5 +++-- gdb/testsuite/ChangeLog | 4 ++++ gdb/testsuite/gdb.base/default.exp | 22 +++++++++++++++++----- gdb/value.c | 30 ++++++++++++++++++++---------- 6 files changed, 55 insertions(+), 17 deletions(-) diff --git a/gdb/ChangeLog b/gdb/ChangeLog index 5efe533bb76..ea6f62b80e9 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,9 @@ +2012-08-13 Doug Evans + + * value.c (show_convenience): Tweak comment. + (_initialize_values): Mention convenience functions in the help text + for "show convenience". + 2012-08-13 Yao Qi * std-operator.def: Remove TERNOP_SLICE_COUNT. diff --git a/gdb/doc/ChangeLog b/gdb/doc/ChangeLog index 4318d8416b6..661d933c7b5 100644 --- a/gdb/doc/ChangeLog +++ b/gdb/doc/ChangeLog @@ -1,3 +1,8 @@ +2012-08-13 Doug Evans + + * gdb.texinfo (Convenience Vars): Update text for "show convenience" + to include functions. + 2012-08-10 Doug Evans * gdb.texinfo (Convenience Funs): New node. diff --git a/gdb/doc/gdb.texinfo b/gdb/doc/gdb.texinfo index 5cc5b48780d..5cb8c8edf24 100644 --- a/gdb/doc/gdb.texinfo +++ b/gdb/doc/gdb.texinfo @@ -9225,9 +9225,10 @@ variable, when used as an expression, has the type of its current value. @table @code @kindex show convenience -@cindex show all user variables +@cindex show all user variables and functions @item show convenience -Print a list of convenience variables used so far, and their values. +Print a list of convenience variables used so far, and their values, +as well as a list of the convenience functions. Abbreviated @code{show conv}. @kindex init-if-undefined diff --git a/gdb/testsuite/ChangeLog b/gdb/testsuite/ChangeLog index 27fe40ce369..106832a2b1c 100644 --- a/gdb/testsuite/ChangeLog +++ b/gdb/testsuite/ChangeLog @@ -1,3 +1,7 @@ +2012-08-13 Doug Evans + + * gdb.base/default.exp: Update expected output of "show convenience". + 2012-08-10 Doug Evans * gdb.python/py-strfns.c: New file. diff --git a/gdb/testsuite/gdb.base/default.exp b/gdb/testsuite/gdb.base/default.exp index 138cc03e98e..5a73fcc160a 100644 --- a/gdb/testsuite/gdb.base/default.exp +++ b/gdb/testsuite/gdb.base/default.exp @@ -595,11 +595,10 @@ gdb_test "show complaints" "Max number of complaints about incorrect symbols is gdb_test "show confirm" "Whether to confirm potentially dangerous operations is o\[a-z\]*." "show confirm" #test show convenience -# This is tricker as there are multiple internal convenience vars and we -# can't assume any particular order. -gdb_test_list_exact "show convenience" "show convenience" \ - "\[^\r\n\]+\[\r\n\]+" \ - "\[^\r\n\]+" \ +# This is trickier as there are multiple internal convenience vars and +# functions and we can't assume any particular order. +# And we have to handle the extra convenience funs provided by Python. +set show_conv_list \ { \ {$_sdata = void} \ {$_siginfo = void} \ @@ -618,6 +617,19 @@ gdb_test_list_exact "show convenience" "show convenience" \ {$_probe_arg10 = } \ {$_probe_arg11 = } \ } +if ![skip_python_tests] { + append show_conv_list \ + { + {$_memeq = } \ + {$_regex = } \ + {$_streq = } \ + {$_strlen = } \ + } +} +gdb_test_list_exact "show convenience" "show convenience" \ + "\[^\r\n\]+\[\r\n\]+" \ + "\[^\r\n\]+" \ + $show_conv_list #test show directories gdb_test "show directories" "Source directories searched: .cdir\[:;\].cwd" "show directories" diff --git a/gdb/value.c b/gdb/value.c index a6bb71865bd..ae44ebab313 100644 --- a/gdb/value.c +++ b/gdb/value.c @@ -2255,11 +2255,17 @@ show_convenience (char *ignore, int from_tty) printf_filtered (("\n")); } if (!varseen) - printf_unfiltered (_("No debugger convenience variables now defined.\n" - "Convenience variables have " - "names starting with \"$\";\n" - "use \"set\" as in \"set " - "$foo = 5\" to define them.\n")); + { + /* This text does not mention convenience functions on purpose. + The user can't create them except via Python, and if Python support + is installed this message will never be printed ($_streq will + exist). */ + printf_unfiltered (_("No debugger convenience variables now defined.\n" + "Convenience variables have " + "names starting with \"$\";\n" + "use \"set\" as in \"set " + "$foo = 5\" to define them.\n")); + } } /* Extract a value as a C number (either long or double). @@ -3363,14 +3369,18 @@ void _initialize_values (void) { add_cmd ("convenience", no_class, show_convenience, _("\ -Debugger convenience (\"$foo\") variables.\n\ -These variables are created when you assign them values;\n\ -thus, \"print $foo=1\" gives \"$foo\" the value 1. Values may be any type.\n\ +Debugger convenience (\"$foo\") variables and functions.\n\ +Convenience variables are created when you assign them values;\n\ +thus, \"set $foo=1\" gives \"$foo\" the value 1. Values may be any type.\n\ \n\ A few convenience variables are given values automatically:\n\ \"$_\"holds the last address examined with \"x\" or \"info lines\",\n\ -\"$__\" holds the contents of the last address examined with \"x\"."), - &showlist); +\"$__\" holds the contents of the last address examined with \"x\"." +#ifdef HAVE_PYTHON +"\n\n\ +Convenience functions are defined via the Python API." +#endif + ), &showlist); add_cmd ("values", no_set_class, show_values, _("\ Elements of value history around item number IDX (or last ten)."), -- 2.30.2