aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPhil Muldoon <pmuldoon@redhat.com>2011-07-11 13:07:38 +0000
committerPhil Muldoon <pmuldoon@redhat.com>2011-07-11 13:07:38 +0000
commit713389e0245333ded5b75dc90583570f8446f508 (patch)
treef2c78bad420b06a050fe66304b34efa0a93d3e8a
parent754eadd19fceada3873d39edc914c0b63578c000 (diff)
downloadfsf-binutils-gdb-713389e0245333ded5b75dc90583570f8446f508.zip
fsf-binutils-gdb-713389e0245333ded5b75dc90583570f8446f508.tar.gz
fsf-binutils-gdb-713389e0245333ded5b75dc90583570f8446f508.tar.bz2
2011-07-11 Phil Muldoon <pmuldoon@redhat.com>
PR python/12438 * python/python.c: Set gdbpy_should_print_stack default to off. (set_python): Deprecate maint set python print-stack to class_deprecate. (_initialize_python): Deprecate maint set/show python print-stack. Add new prefix command, python. Add new setting, print-backtrace. * NEWS: Document set python print-stack. Document default change. 2011-07-11 Phil Muldoon <pmuldoon@redhat.com> PR python/12438 * gdb.texinfo (Python Commands): Add deprecate note to maint set/show python print-stack. Document set/show python print-backtrace. 2011-07-11 Phil Muldoon <pmuldoon@redhat.com> PR python/12438 * gdb.python/python.exp: Add maint set/show python print-stack deprecated tests. Add set/show python print-backtrace tests.
-rw-r--r--gdb/ChangeLog10
-rw-r--r--gdb/NEWS5
-rw-r--r--gdb/doc/ChangeLog7
-rw-r--r--gdb/doc/gdb.texinfo13
-rw-r--r--gdb/python/python.c81
-rw-r--r--gdb/testsuite/ChangeLog6
-rw-r--r--gdb/testsuite/gdb.python/py-function.exp1
-rw-r--r--gdb/testsuite/gdb.python/py-prettyprint.exp1
-rw-r--r--gdb/testsuite/gdb.python/python.exp15
9 files changed, 122 insertions, 17 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index 7d4b1a8..71010f4 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,5 +1,15 @@
2011-07-11 Phil Muldoon <pmuldoon@redhat.com>
+ PR python/12438
+ * python/python.c: Set gdbpy_should_print_stack default to off.
+ (set_python): Deprecate maint set python print-stack to
+ class_deprecate.
+ (_initialize_python): Deprecate maint set/show python print-stack.
+ Add new prefix command, python. Add new setting, print-backtrace.
+ * NEWS: Document set python print-stack. Document default change.
+
+2011-07-11 Phil Muldoon <pmuldoon@redhat.com>
+
* python/py-inferior.c (infpy_dealloc): New function.
(inferior_to_inferior_object): Return a new object, or a
new reference to the existing object.
diff --git a/gdb/NEWS b/gdb/NEWS
index 99615d2..22d5a9c 100644
--- a/gdb/NEWS
+++ b/gdb/NEWS
@@ -3,6 +3,11 @@
*** Changes since GDB 7.3
+* The "maint set python print-stack on|off" command has been
+ deprecated, and a new command: "set python print-stack on|off" has
+ replaced it. Additionally, the default for "print-stack" is now
+ "off".
+
* libthread-db-search-path now supports two special values: $sdir and $pdir.
$sdir specifies the default system locations of shared libraries.
$pdir specifies the directory where the libpthread used by the application
diff --git a/gdb/doc/ChangeLog b/gdb/doc/ChangeLog
index fa8042c..4a2d015 100644
--- a/gdb/doc/ChangeLog
+++ b/gdb/doc/ChangeLog
@@ -1,3 +1,10 @@
+2011-07-11 Phil Muldoon <pmuldoon@redhat.com>
+
+ PR python/12438
+ * gdb.texinfo (Python Commands): Add deprecate note to maint
+ set/show python print-stack. Document set/show python
+ print-backtrace.
+
2011-07-05 Thiago Jung Bauermann <bauerman.ibm.com>
* gdb.texinfo: Fix typos.
diff --git a/gdb/doc/gdb.texinfo b/gdb/doc/gdb.texinfo
index 129a46b..3a3a9fb 100644
--- a/gdb/doc/gdb.texinfo
+++ b/gdb/doc/gdb.texinfo
@@ -20801,10 +20801,15 @@ End with a line saying just "end".
@kindex maint set python print-stack
@item maint set python print-stack
-By default, @value{GDBN} will print a stack trace when an error occurs
-in a Python script. This can be controlled using @code{maint set
-python print-stack}: if @code{on}, the default, then Python stack
-printing is enabled; if @code{off}, then Python stack printing is
+This command is now deprecated. Instead use @code{set python
+print-stack}
+
+@kindex set python print-stack
+@item set python print-stack
+By default, @value{GDBN} will not print a stack trace when an error
+occurs in a Python script. This can be controlled using @code{set
+python print-stack}: if @code{on}, then Python stack printing is
+enabled; if @code{off}, the default, then Python stack printing is
disabled.
@end table
diff --git a/gdb/python/python.c b/gdb/python/python.c
index ddfe9ba..f15936d 100644
--- a/gdb/python/python.c
+++ b/gdb/python/python.c
@@ -36,7 +36,7 @@
/* True if we should print the stack when catching a Python error,
false otherwise. */
-static int gdbpy_should_print_stack = 1;
+static int gdbpy_should_print_stack = 0;
#ifdef HAVE_PYTHON
@@ -936,23 +936,46 @@ gdbpy_breakpoint_has_py_cond (struct breakpoint_object *bp_obj)
/* Lists for 'maint set python' commands. */
-struct cmd_list_element *set_python_list;
-struct cmd_list_element *show_python_list;
+static struct cmd_list_element *maint_set_python_list;
+static struct cmd_list_element *maint_show_python_list;
+
+/* Lists for 'set python' commands. */
+
+static struct cmd_list_element *user_set_python_list;
+static struct cmd_list_element *user_show_python_list;
/* Function for use by 'maint set python' prefix command. */
static void
-set_python (char *args, int from_tty)
+maint_set_python (char *args, int from_tty)
{
- help_list (set_python_list, "maintenance set python ", -1, gdb_stdout);
+ help_list (maint_set_python_list, "maintenance set python ",
+ class_deprecated, gdb_stdout);
}
/* Function for use by 'maint show python' prefix command. */
static void
-show_python (char *args, int from_tty)
+maint_show_python (char *args, int from_tty)
+{
+ cmd_show_list (maint_show_python_list, from_tty, "");
+}
+
+/* Function for use by 'set python' prefix command. */
+
+static void
+user_set_python (char *args, int from_tty)
+{
+ help_list (user_set_python_list, "set python ", all_commands,
+ gdb_stdout);
+}
+
+/* Function for use by 'show python' prefix command. */
+
+static void
+user_show_python (char *args, int from_tty)
{
- cmd_show_list (show_python_list, from_tty, "");
+ cmd_show_list (user_show_python_list, from_tty, "");
}
/* Initialize the Python code. */
@@ -963,6 +986,9 @@ extern initialize_file_ftype _initialize_python;
void
_initialize_python (void)
{
+ char *cmd_name;
+ struct cmd_list_element *cmd;
+
add_com ("python", class_obscure, python_command,
#ifdef HAVE_PYTHON
_("\
@@ -984,13 +1010,13 @@ This command is only a placeholder.")
#endif /* HAVE_PYTHON */
);
- add_prefix_cmd ("python", no_class, show_python,
+ add_prefix_cmd ("python", no_class, maint_show_python,
_("Prefix command for python maintenance settings."),
- &show_python_list, "maintenance show python ", 0,
+ &maint_show_python_list, "maintenance show python ", 0,
&maintenance_show_cmdlist);
- add_prefix_cmd ("python", no_class, set_python,
+ add_prefix_cmd ("python", no_class, maint_set_python,
_("Prefix command for python maintenance settings."),
- &set_python_list, "maintenance set python ", 0,
+ &maint_set_python_list, "maintenance set python ", 0,
&maintenance_set_cmdlist);
add_setshow_boolean_cmd ("print-stack", class_maintenance,
@@ -999,8 +1025,37 @@ Enable or disable printing of Python stack dump on error."), _("\
Show whether Python stack will be printed on error."), _("\
Enables or disables printing of Python stack traces."),
NULL, NULL,
- &set_python_list,
- &show_python_list);
+ &maint_set_python_list,
+ &maint_show_python_list);
+
+ /* Deprecate maint set/show python print-stack in favour of
+ non-maintenance alternatives. */
+ cmd_name = "print-stack";
+ cmd = lookup_cmd (&cmd_name, maint_set_python_list, "", -1, 0);
+ deprecate_cmd (cmd, "set python print-stack");
+ cmd_name = "print-stack"; /* Reset name. */
+ cmd = lookup_cmd (&cmd_name, maint_show_python_list, "", -1, 0);
+ deprecate_cmd (cmd, "show python print-stack");
+
+ /* Add set/show python print-stack. */
+ add_prefix_cmd ("python", no_class, user_show_python,
+ _("Prefix command for python preference settings."),
+ &user_show_python_list, "show python ", 0,
+ &showlist);
+
+ add_prefix_cmd ("python", no_class, user_set_python,
+ _("Prefix command for python preference settings."),
+ &user_set_python_list, "set python ", 0,
+ &setlist);
+
+ add_setshow_boolean_cmd ("print-stack", no_class,
+ &gdbpy_should_print_stack, _("\
+Enable or disable printing of Python stack dump on error."), _("\
+Show whether Python stack will be printed on error."), _("\
+Enables or disables printing of Python stack traces."),
+ NULL, NULL,
+ &user_set_python_list,
+ &user_show_python_list);
#ifdef HAVE_PYTHON
#ifdef WITH_PYTHON_PATH
diff --git a/gdb/testsuite/ChangeLog b/gdb/testsuite/ChangeLog
index 1f43ffe..bf29ba0 100644
--- a/gdb/testsuite/ChangeLog
+++ b/gdb/testsuite/ChangeLog
@@ -1,3 +1,9 @@
+2011-07-11 Phil Muldoon <pmuldoon@redhat.com>
+
+ PR python/12438
+ * gdb.python/python.exp: Add maint set/show python print-stack
+ deprecated tests. Add set/show python print-backtrace tests.
+
2011-07-07 Jan Kratochvil <jan.kratochvil@redhat.com>
* gdb.java/jprint.exp (print a java.lang.String): xfail without system
diff --git a/gdb/testsuite/gdb.python/py-function.exp b/gdb/testsuite/gdb.python/py-function.exp
index ffadb5b..d579435 100644
--- a/gdb/testsuite/gdb.python/py-function.exp
+++ b/gdb/testsuite/gdb.python/py-function.exp
@@ -93,6 +93,7 @@ gdb_py_test_multiple "Test Normal Error" \
"NormalError ()" "" \
"end" ""
+gdb_test_no_output "set python print-stack on"
gdb_test "print \$normalerror()" "Traceback.*File.*line 5.*in invoke.*RuntimeError.*This is a Normal Error.*" \
"Test a Runtime error. There should be a stack trace."
diff --git a/gdb/testsuite/gdb.python/py-prettyprint.exp b/gdb/testsuite/gdb.python/py-prettyprint.exp
index 1fd8c6f2..911725f 100644
--- a/gdb/testsuite/gdb.python/py-prettyprint.exp
+++ b/gdb/testsuite/gdb.python/py-prettyprint.exp
@@ -97,6 +97,7 @@ proc run_lang_tests {lang} {
gdb_test_no_output "python pp_ls_encoding = 'UTF-8'"
gdb_test "print estring2" "\"embedded \", <incomplete sequence \\\\302>"
+ gdb_test_no_output "set python print-stack on"
gdb_test "print hint_error" "Exception: hint failed\r\nhint_error_val"
gdb_test "print c" " = container \"container\" with 2 elements = {$nl *.0. = 23,$nl *.1. = 72$nl}"
diff --git a/gdb/testsuite/gdb.python/python.exp b/gdb/testsuite/gdb.python/python.exp
index e0deb63..8906bbc 100644
--- a/gdb/testsuite/gdb.python/python.exp
+++ b/gdb/testsuite/gdb.python/python.exp
@@ -178,3 +178,18 @@ gdb_test "python gdb.write(\"Foo\\n\")" "Foo" "Test default write"
gdb_test "python gdb.write(\"Error stream\\n\", stream=gdb.STDERR)" "Error stream" "Test stderr write"
gdb_test "python gdb.write(\"Normal stream\\n\", stream=gdb.STDOUT)" "Normal stream" "Test stdout write"
gdb_test "python gdb.write(\"Log stream\\n\", stream=gdb.STDLOG)" "Log stream" "Test stdlog write"
+
+# Deprecate maint set/show python print-stack
+gdb_test "maint show python print-stack" \
+ "Warning: command 'maintenance show python print-stack' is deprecated.*Use 'show python print-stack'.*" \
+ "Test deprecation maint show warning."
+gdb_test "maint set python print-stack off" \
+ "Warning: command 'maintenance set python print-stack' is deprecated.*Use 'set python print-stack'.*" \
+ "Test deprecation maint set warning."
+gdb_test "show python print-stack" \
+ "Whether Python stack will be printed on error is off.*" \
+ "Test print-backtrace show setting. Default off."
+gdb_py_test_silent_cmd "set python print-stack on" \
+ "Test print-backtrace set setting" 1
+gdb_test "show python print-stack" \
+ "Whether Python stack will be printed on error is on.*" \