Bug 253011 - Watch doesn't use pretty print functions for std::wstring
Summary: Watch doesn't use pretty print functions for std::wstring
Status: RESOLVED FIXED
Alias: None
Product: kdevelop
Classification: Applications
Component: CPP Debugger (show other bugs)
Version: 4.0.80
Platform: Compiled Sources Linux
: NOR normal
Target Milestone: 4.1.0
Assignee: kdevelop-bugs-null
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2010-10-02 12:47 UTC by William Frank
Modified: 2011-06-12 12:53 UTC (History)
0 users

See Also:
Latest Commit:
Version Fixed In:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description William Frank 2010-10-02 12:47:17 UTC
Version:           4.0.80 (using KDE 4.5.1) 
OS:                Linux

Hi team,
After updating from 4.0.2 to 4.0.82, in debug mode the pretty printing of std::wstring stopped to work, my custom enums are printed correctly, booleans and integers to.
Also I've updated from Kubuntu 10.04 to 10.10.


Reproducible: Always

Steps to Reproduce:
Stop in debug and try to watch a variable of type std::wstring.


Actual Results:  
{_M_dataplus = {<std::allocator<wchar_t>> = {<__gnu_cxx::new_allocator<wchar_t>> = {<No data fields>}, <No data fields>}, _M_p = 0x80da314 L"id"}}

Expected Results:  
strings are displayed as text

I use a custom declaration:
typedef std::wstring string;
and declare all variables using this typedef.
It worked on 4.0.2

KDevelop stdout:

Connecting to deprecated signal QDBusConnectionInterface::serviceOwnerChanged(QString,QString,QString)
kdevelop(3455)/kdecore (KLibrary) findLibraryInternal: plugins should not have a 'lib' prefix: "libkonsolepart.so"
QSqlDatabasePrivate::removeDatabase: connection 'GetNamespaceName-143736896-17' is still in use, all queries will cease to work.
QSqlDatabasePrivate::removeDatabase: connection 'GetNamespaceName-143736896-19' is still in use, all queries will cease to work.
QInotifyFileSystemWatcherEngine::addPaths: inotify_add_watch failed: No such file or directory
QFileSystemWatcher: failed to add paths: /home/kibork/.config/ibus/bus
Bus::open: Can not get ibus-daemon's address. 
IBusInputContext::createInputContext: no connection to ibus-daemon 
kdevelop(3455)/kdecore (services) KMimeTypeFactory::parseMagic: Now parsing  "/usr/local/share/mime/magic"
kdevelop(3455)/kdecore (services) KMimeTypeFactory::parseMagic: Now parsing  "/usr/share/mime/magic"
kdevelop(3455)/kdecore (services) KMimeTypeFactory::parseMagic: Now parsing  "/home/kibork/.local/share/mime/magic"
execute composite (GDBDebugger::DebugJob(0x9eae978, name = "New Native Application Configuration") )  
Object::disconnect: Unexpected null parameter



GDB version is default:

ackage: gdb
Priority: optional
Section: devel
Installed-Size: 4076
Maintainer: Ubuntu Core developers <ubuntu-devel-discuss@lists.ubuntu.com>
Original-Maintainer: Daniel Jacobowitz <dan@debian.org>
Architecture: i386
Version: 7.2-1ubuntu2
Depends: libc6 (>= 2.11), libexpat1 (>= 1.95.8), libncurses5 (>= 5.7+20100313), libpython2.6 (>= 2.6), libreadline6 (>= 6.0), zlib1g (>= 1:1.1.4)
Suggests: gdb-doc, gdbserver
Filename: pool/main/g/gdb/gdb_7.2-1ubuntu2_i386.deb
Size: 1922368
MD5sum: e5e8ffeb711554f92467ff20a4f9beeb
SHA1: 33529f463053214bfd1d7b6b08936996029c828a
SHA256: 283efb2f6357b5be354621cad16ac141428150055dee0fe13f6b4b34344526ef
Comment 1 William Frank 2010-10-02 12:49:11 UTC
Got this from GDB console

(gdb) print tooken
print tooken
$1 = Traceback (most recent call last):
File "/usr/local/share/apps/kdevgdb/printers/libstdcxx.py", line 561, in to_string
return self.val['_M_dataplus']['_M_p'].string (encoding, length = len)
LookupError: unknown encoding: auto
Comment 2 William Frank 2010-10-02 13:41:40 UTC
Also I get the expected result when I change:

pretty_printers_dict[re.compile('^std::basic_string<wchar_t(,.*)?>$')] = lambda val: StdStringPrinter(1, val)

to
 pretty_printers_dict[re.compile('^std::basic_string<wchar_t(,.*)?>$')] = lambda val: StdStringPrinter('UTF-32', val)
Comment 3 Niko Sams 2011-06-12 12:53:57 UTC
Git commit da6063a6990cbefe2bfda0b4b13b074abd3e8044 by Niko Sams.
Committed on 12/06/2011 at 12:44.
Pushed by nsams into branch 'master'.

Update libstd pretty printers from gcc repository
BUG: 253011

M  +224  -126  debuggers/gdb/printers/libstdcxx.py     

http://commits.kde.org/kdevelop/da6063a6990cbefe2bfda0b4b13b074abd3e8044