2009-09-21 Phil Muldoon <pmuldoon@redhat.com>

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 <pmuldoon@redhat.com>

	PR python/10633

	* gdb.python/py-prettyprint.exp (gdb_py_test_silent_cmd): New
	Function.
	(run_lang_tests): Add print elements test.
This commit is contained in:
Phil Muldoon
2009-09-21 09:39:53 +00:00
parent 2e4d963fb2
commit 7a9fe1016c
4 changed files with 32 additions and 1 deletions

View File

@@ -1,3 +1,10 @@
2009-09-21 Phil Muldoon <pmuldoon@redhat.com>
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 <pmuldoon@redhat.com>
* python/py-value.c (valpy_getitem): Test value before allowing

View File

@@ -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;

View File

@@ -1,3 +1,11 @@
2009-09-21 Phil Muldoon <pmuldoon@redhat.com>
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 <pmuldoon@redhat.com>
* gdb.python/py-value.exp (test_subscript_regression): New

View File

@@ -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" \
" = \{.*<Vbase1> = pp class name: Vbase1.*<Vbase2> = \{.*<VirtualTest> = pp value variable is: 1,.*members of Vbase2:.*_vptr.Vbase2 = $hex.*<Vbase3> = \{.*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\""