2010-01-13 Phil Muldoon <pmuldoon@redhat.com>
authorPhil Muldoon <pmuldoon@redhat.com>
Thu, 14 Jan 2010 08:03:37 +0000 (08:03 +0000)
committerPhil Muldoon <pmuldoon@redhat.com>
Thu, 14 Jan 2010 08:03:37 +0000 (08:03 +0000)
commitbe759fcf73cbf7ac59863c57389cd97c70c09a47
treef3261b3c2096f57e5a2e09242ecc82a2cc7acb8b
parent009f105539b0fedd36d9d1de940a3822372ed818
2010-01-13  Phil Muldoon  <pmuldoon@redhat.com>

PR python/10705

* python/python-internal.h: Add lazy_string_object_type
definition.
(create_lazy_string_object, gdbpy_initialize_lazy_string)
(gdbpy_is_lazystring, gdbpy_extract_lazy_string): Define.
* python/py-value.c (valpy_lazy_string): New function.
(convert_value_from_python): Add lazy string conversion.
* python/py-prettyprint.c (pretty_print_one_value): Check if
return is also a lazy string.
(print_string_repr): Add lazy string printing branch.
(print_children): Likewise.
* python/py-lazy-string.c: New file. Implement lazy strings.
* python/python.c (_initialize_python): Call
gdbpy_initialize_lazy_string.
* varobj.c (value_get_print_value): Add lazy string printing
branch.  Account for encoding.
* c-lang.c (c_printstr): Account for new encoding argument.  If
encoding is NULL, find encoding suited for type, otherwise use
user encoding.
* language.h (language_defn): Add encoding argument.
(LA_PRINT_STRING): Likewise.
* language.c (unk_lang_printstr): Update to reflect new encoding
argument to language_defn.
* ada-lang.h (ada_printstr): Likewise.
* c-lang.h (c_printstr): Likewise.
* p-lang.h (pascal_printstr);
* f-lang.c (f_printstr): Likewise.
* m2-lang.c (m2_printstr): Likewise.
* objc-lang.c (objc_printstr): Likewise.
* p-lang.c (pascal_printstr): Likewise.
* scm-lang.c (scm_printstr): Likewise.
* c-valprint.c (c_val_print): Update LA_PRINT_STRING call for
encoding argument.
* ada-valprint.c (ada_printstr): Likewise.
* f-valprint.c (f_val_print): Likewise
* m2-valprint.c (m2_val_print): Likewise.
* p-valprint.c (pascal_val_print): Likewise.
* expprint.c (print_subexp_standard): Likewise.
* valprint.c (val_print_string): Likewise.
* Makefile.in (SUBDIR_PYTHON_OBS): Add py-lazy-string.
(SUBDIR_PYTHON_SRCS): Likewise.
(py-lazy-string.o): New rule.

2010-01-13  Phil Muldoon  <pmuldoon@redhat.com>

* gdb.texinfo (Values From Inferior): Document lazy_string value
method.
(Python API): Add Lazy strings menu item.
(Lazy Strings In Python): New node.

2010-01-13  Phil Muldoon  <pmuldoon@redhat.com>

* gdb.python/py-value.exp (test_lazy_strings): Add lazy string test.
* gdb.python/py-prettyprint.py (pp_ls): New printer.
* gdb.python/py-prettyprint.exp (run_lang_tests): Add lazy string
test.
* gdb.python/py-prettyprint.c: Define lazystring test structure.
* gdb.python/py-mi.exp: Add lazy string test.
35 files changed:
gdb/ChangeLog
gdb/Makefile.in
gdb/ada-lang.h
gdb/ada-valprint.c
gdb/c-lang.c
gdb/c-lang.h
gdb/c-valprint.c
gdb/doc/ChangeLog
gdb/doc/gdb.texinfo
gdb/expprint.c
gdb/f-lang.c
gdb/f-valprint.c
gdb/language.c
gdb/language.h
gdb/m2-lang.c
gdb/m2-valprint.c
gdb/objc-lang.c
gdb/p-lang.c
gdb/p-lang.h
gdb/p-valprint.c
gdb/python/py-lazy-string.c [new file with mode: 0644]
gdb/python/py-prettyprint.c
gdb/python/py-value.c
gdb/python/python-internal.h
gdb/python/python.c
gdb/scm-lang.c
gdb/testsuite/ChangeLog
gdb/testsuite/gdb.python/py-mi.exp
gdb/testsuite/gdb.python/py-prettyprint.c
gdb/testsuite/gdb.python/py-prettyprint.exp
gdb/testsuite/gdb.python/py-prettyprint.py
gdb/testsuite/gdb.python/py-value.c
gdb/testsuite/gdb.python/py-value.exp
gdb/valprint.c
gdb/varobj.c