gdb
* valprint.c (val_print_string): Pass 'encoding' to LA_PRINT_STRING. gdb/testsuite * gdb.python/py-prettyprint.exp (run_lang_tests): Test encoding argument to lazy_string. * gdb.python/py-prettyprint.py (pp_ls_encoding): New global. (pp_ls.to_string): Use it. * gdb.python/py-prettyprint.c (main): Move declarations to top. Add "estring2" local.
This commit is contained in:
parent
ca346ede18
commit
3a772aa44d
6 changed files with 31 additions and 4 deletions
|
@ -213,6 +213,9 @@ main ()
|
|||
/* Clearing by being `static' could invoke an other GDB C++ bug. */
|
||||
struct nullstr nullstr;
|
||||
nostring_type nstype;
|
||||
struct ns ns;
|
||||
struct lazystring estring, estring2;
|
||||
|
||||
nstype.elements = narray;
|
||||
nstype.len = 0;
|
||||
|
||||
|
@ -225,13 +228,14 @@ main ()
|
|||
init_s (&arraystruct.x[0], 23);
|
||||
init_s (&arraystruct.x[1], 24);
|
||||
|
||||
struct ns ns;
|
||||
ns.null_str = "embedded\0null\0string";
|
||||
ns.length = 20;
|
||||
|
||||
struct lazystring estring;
|
||||
estring.lazy_str = "embedded x\201\202\203\204" ;
|
||||
|
||||
/* Incomplete UTF-8, but ok Latin-1. */
|
||||
estring2.lazy_str = "embedded x\302";
|
||||
|
||||
#ifdef __cplusplus
|
||||
S cps;
|
||||
|
||||
|
|
|
@ -91,6 +91,10 @@ proc run_lang_tests {lang} {
|
|||
gdb_test "print cstring" " = \"const string\""
|
||||
|
||||
gdb_test "print estring" "\"embedded x\\\\201\\\\202\\\\203\\\\204\""
|
||||
|
||||
gdb_test_no_output "python pp_ls_encoding = 'UTF-8'"
|
||||
gdb_test "print estring2" "\"embedded \", <incomplete sequence \\\\302>"
|
||||
|
||||
gdb_test "print c" " = container \"container\" with 2 elements = {$nl *.0. = 23,$nl *.1. = 72$nl}"
|
||||
|
||||
gdb_test "print nstype" " = {$nl *.0. = 7,$nl *.1. = 42$nl}"
|
||||
|
|
|
@ -139,6 +139,8 @@ class pp_ns:
|
|||
def display_hint (self):
|
||||
return 'string'
|
||||
|
||||
pp_ls_encoding = None
|
||||
|
||||
class pp_ls:
|
||||
"Print a std::basic_string of some kind"
|
||||
|
||||
|
@ -146,7 +148,10 @@ class pp_ls:
|
|||
self.val = val
|
||||
|
||||
def to_string(self):
|
||||
return self.val['lazy_str'].lazy_string()
|
||||
if pp_ls_encoding is not None:
|
||||
return self.val['lazy_str'].lazy_string(encoding = pp_ls_encoding)
|
||||
else:
|
||||
return self.val['lazy_str'].lazy_string()
|
||||
|
||||
def display_hint (self):
|
||||
return 'string'
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue