A user is getting the following in a backtrace: ... #7 0x000000000040bac0 in operator<< <char, std::char_traits<char>, std::allocator<char> > (__os=warning: RTTI symbol not found for class 'std::ostream' ..., Traceback (most recent call last): File "/foo/printers.py", line 38, in to_string return ptr.lazy_string (length = length) MemoryError: Cannot create a lazy string with address 0x0, and a non-zero length. __str= ) at bar/string:927 #8 0x000000000040ba55 in main () at baz.cc:10 The RTTI error is a separate bug (IIRC PR 18141, PR 18417 - there are multiple bugs here, I could be forgetting one). This bug is the python backtrace being printed when there's a memory error. That's not supposed to happen. The bug arises because PyExc_MemoryError is being used instead of gdbpy_gdb_memory_error. Patch to follow.
The master branch has been updated by Doug Evans <devans@sourceware.org>: https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=4ea6efe9365f8a87723fe01a2dd8ddf5cdec1498 commit 4ea6efe9365f8a87723fe01a2dd8ddf5cdec1498 Author: Doug Evans <dje@google.com> Date: Tue May 26 16:13:04 2015 -0700 PR python/18438 gdb/ChangeLog: * python/py-lazy-string.c (stpy_convert_to_value): Use gdbpy_gdb_memory_error not PyExc_MemoryError. (gdbpy_create_lazy_string_object): Ditto. gdb/testsuite/ChangeLog: * gdb.python/py-lazy-string.c: New file. * gdb.python/py-lazy-string.exp: New file. * gdb.python/py-prettyprint.c (lazystring) <len>: New member. (main): Update. Add estring3. * gdb.python/py-prettyprint.exp: Add tests for strings at address 0. * gdb.python/py-prettyprint.py (pp_ls): Handle length.
patch committed