http://sourceware.org/ml/gdb-patches/2011-01/msg00016.html Subject: [patch] New testcase: py-prettyprint.exp: print hint_error Hi, PASS: gdb.python/py-prettyprint.exp: print hint_error for FYI: fix buglet in gdbpy_get_display_hint http://sourceware.org/ml/gdb-patches/2010-07/msg00190.html http://sourceware.org/ml/gdb-cvs/2010-07/msg00061.html I would check it in as obvious but the 2011 ChangeLog move process has to be done first. So to be checked in later. Thanks, Jan gdb/testsuite/ 2011-01-01 Jan Kratochvil * gdb.python/py-prettyprint.c (struct hint_error): New. (main): New variable hint_error. * gdb.python/py-prettyprint.exp (run_lang_tests): New testcase "print hint_error". * gdb.python/py-prettyprint.py (class pp_hint_error): New. (register_pretty_printers): Register it. Index: gdb-7.2/gdb/testsuite/gdb.python/py-prettyprint.c =================================================================== --- gdb-7.2.orig/gdb/testsuite/gdb.python/py-prettyprint.c 2010-07-14 16:18:04.000000000 +0200 +++ gdb-7.2/gdb/testsuite/gdb.python/py-prettyprint.c 2011-01-01 17:41:24.000000000 +0100 @@ -44,6 +44,10 @@ struct lazystring { const char *lazy_str; }; +struct hint_error { + int x; +}; + #ifdef __cplusplus struct S : public s { int zs; @@ -232,6 +236,8 @@ main () struct lazystring estring; estring.lazy_str = "embedded x\201\202\203\204" ; + struct hint_error hint_error; + #ifdef __cplusplus S cps; Index: gdb-7.2/gdb/testsuite/gdb.python/py-prettyprint.exp =================================================================== --- gdb-7.2.orig/gdb/testsuite/gdb.python/py-prettyprint.exp 2011-01-01 17:40:07.000000000 +0100 +++ gdb-7.2/gdb/testsuite/gdb.python/py-prettyprint.exp 2011-01-01 17:40:52.000000000 +0100 @@ -102,6 +102,8 @@ proc run_lang_tests {lang} { gdb_test "print estring" "\"embedded x\\\\201\\\\202\\\\203\\\\204\"" gdb_test "print c" " = container \"container\" with 2 elements = {$nl *.0. = 23,$nl *.1. = 72$nl}" + gdb_test "print hint_error" "Exception: hint failed\r\nhint_error_val" + gdb_test "print nullstr" "RuntimeError: Error reading string from inferior.*" gdb_test "print nstype" " = {$nl *.0. = 7,$nl *.1. = 42$nl}" Index: gdb-7.2/gdb/testsuite/gdb.python/py-prettyprint.py =================================================================== --- gdb-7.2.orig/gdb/testsuite/gdb.python/py-prettyprint.py 2010-06-04 20:18:28.000000000 +0200 +++ gdb-7.2/gdb/testsuite/gdb.python/py-prettyprint.py 2011-01-01 17:40:23.000000000 +0100 @@ -151,6 +151,18 @@ class pp_ls: def display_hint (self): return 'string' +class pp_hint_error: + "Throw error from display_hint" + + def __init__(self, val): + self.val = val + + def to_string(self): + return 'hint_error_val' + + def display_hint (self): + raise Exception("hint failed") + class pp_outer: "Print struct outer" @@ -236,6 +248,9 @@ def register_pretty_printers (): pretty_printers_dict[re.compile ('^struct outerstruct$')] = pp_outer pretty_printers_dict[re.compile ('^outerstruct$')] = pp_outer + pretty_printers_dict[re.compile ('^struct hint_error$')] = pp_hint_error + pretty_printers_dict[re.compile ('^hint_error$')] = pp_hint_error + pretty_printers_dict = {} register_pretty_printers ()