From: Phil Muldoon Date: Mon, 21 Sep 2009 09:39:53 +0000 (+0000) Subject: 2009-09-21 Phil Muldoon X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=7a9fe1016c6b3caf22ca50926331e6baca47ef9d;p=binutils-gdb.git 2009-09-21 Phil Muldoon PR python/10633 * c-lang.c (c_printstr): Do not loop past options->print_max when iterating with wchar_iterate. 2009-09-21 Phil Muldoon PR python/10633 * gdb.python/py-prettyprint.exp (gdb_py_test_silent_cmd): New Function. (run_lang_tests): Add print elements test. --- diff --git a/gdb/ChangeLog b/gdb/ChangeLog index 54cae78c621..5b5c08dfb26 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,10 @@ +2009-09-21 Phil Muldoon + + PR python/10633 + + * c-lang.c (c_printstr): Do not loop past options->print_max when + iterating with wchar_iterate. + 2009-09-21 Phil Muldoon * python/py-value.c (valpy_getitem): Test value before allowing diff --git a/gdb/c-lang.c b/gdb/c-lang.c index 4ba81ba86aa..d01490cdce0 100644 --- a/gdb/c-lang.c +++ b/gdb/c-lang.c @@ -459,7 +459,7 @@ c_printstr (struct ui_file *stream, struct type *type, const gdb_byte *string, single character in isolation. This makes the code simpler and probably does the sensible thing in the majority of cases. */ - while (num_chars == 1) + while (num_chars == 1 && things_printed < options->print_max) { /* Count the number of repetitions. */ unsigned int reps = 0; diff --git a/gdb/testsuite/ChangeLog b/gdb/testsuite/ChangeLog index defe02c8f9c..833fdcd486e 100644 --- a/gdb/testsuite/ChangeLog +++ b/gdb/testsuite/ChangeLog @@ -1,3 +1,11 @@ +2009-09-21 Phil Muldoon + + PR python/10633 + + * gdb.python/py-prettyprint.exp (gdb_py_test_silent_cmd): New + Function. + (run_lang_tests): Add print elements test. + 2009-09-21 Phil Muldoon * gdb.python/py-value.exp (test_subscript_regression): New diff --git a/gdb/testsuite/gdb.python/py-prettyprint.exp b/gdb/testsuite/gdb.python/py-prettyprint.exp index d2db5bc2064..b4b3776bf7d 100644 --- a/gdb/testsuite/gdb.python/py-prettyprint.exp +++ b/gdb/testsuite/gdb.python/py-prettyprint.exp @@ -35,6 +35,17 @@ gdb_test_multiple "python print 'hello, world!'" "verify python support" { -re "$gdb_prompt $" {} } +# Run a command in GDB, and report a failure if a Python exception is thrown. +# If report_pass is true, report a pass if no exception is thrown. +proc gdb_py_test_silent_cmd {cmd name report_pass} { + global gdb_prompt + + gdb_test_multiple $cmd $name { + -re "Traceback.*$gdb_prompt $" { fail $name } + -re "$gdb_prompt $" { if $report_pass { pass $name } } + } +} + proc run_lang_tests {lang} { global srcdir subdir srcfile binfile testfile hex if { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable "debug $lang"] != "" } { @@ -79,6 +90,11 @@ proc run_lang_tests {lang} { gdb_test "print derived" \ " = \{.* = pp class name: Vbase1.* = \{.* = pp value variable is: 1,.*members of Vbase2:.*_vptr.Vbase2 = $hex.* = \{.*members of Vbase3.*members of Derived:.*value = 2.*" gdb_test "print ns " "\"embedded\\\\000null\\\\000string\"" + gdb_py_test_silent_cmd "set print elements 3" "" 1 + gdb_test "print ns" "emb\.\.\.." + gdb_py_test_silent_cmd "set print elements 10" "" 1 + gdb_test "print ns" "embedded\\\\000n\.\.\.." + gdb_py_test_silent_cmd "set print elements 200" "" 1 } gdb_test "print x" " = $hex \"this is x\""