Details
-
Bug
-
Resolution: Done
-
Not Evaluated
-
Qt Creator 4.7.0
-
None
-
-
ec5e70eedadc659aeea7458e1989fded8f9bd03e
Description
Using LibreOffice's GDB Python pretty-printers for its custom 'OUString' string type does not work in Qt Creator, while it works just fine when using GDB on the command line.
As far as I can see, the underlying problem is that there's an issue with displaying GDB's lazy string type in the debugger. While 'PlainDumper::_call_' passes a 'gdb.Type', 'DumperBase::putCharArrayHelper' calls methods that are only defined for the custom 'Type' value defined in 'dumper.py'.
As a result, '<not accessible>' is displayed in the "Value" column for the variable in the debugger view, rather than the proper string representation.
While the problem itself is independent of the LibreOffice use case, I could not easily create a simple example by myself. Please let me know if you need any additional information.
System GDB pretty printers need to be enabled (i.e. 'Tools' -> 'Options' -> 'Debugger' -> 'GDB' -> 'Load system GDB pretty printers' needs to be enabled).
For reference, LibreOffice's 'OUString' class is defined in [1], while the GDB pretty-printers are in [2].
[1]: https://cgit.freedesktop.org/libreoffice/core/tree/include/rtl/ustring.hxx
[2]: https://cgit.freedesktop.org/libreoffice/core/tree/solenv/gdb/libreoffice/