Values of std::vector not showing up in debug window
zb4ng at arcor.de
Thu Nov 22 09:19:48 GMT 2018
On 11/21/18 5:37 PM, Kevin Funk wrote:
> On Wednesday, 7 November 2018 17:09:01 CET zb4ng wrote:
>> I am sitting on a small C++ project using the standard library
>> "vector"-container and can't see the entries in a "std::vector<long>" in
>> the "Variables" window while debugging.
>> Even after I had installed the "DEBUG-INFO" packages (see below), they
>> were missing.
>> I don't know, if I've done sth wrong or if this is a known issue.
>> As an alternative, it would be possible to use the "print" command in
>> GDB, but it's a little too cumbersome.
>> Distro: openSuSE Leap 15.0
>> KDE: KDE Frameworks 5.45.0,
>> Qt 5.9.4 (built against 5.9.4)
>> KDevelop: 5.1.2
>> "DEBUG-INFO" packages:
> what you will definitely need are the STL GDB pretty printers (a file called
> On Ubuntu they are in this package:
> libstdc++6:amd64: /usr/share/gcc-8/python/libstdcxx/v6/printers.py
> # Solution A
> You'll also need to load them in KDevelop, for this, edit the gdbinit file
> installed by KDevelop (for your probably somewhere in /usr/.../kdevgdb/
> printers/gdbinit) and add this between "python & "end":
> sys.path.insert(0, '/usr/share/gcc-8/python/')
> from libstdcxx.v6.printers import register_libstdcxx_printers
> register_libstdcxx_printers (None)
> # Solution B
> Since some version GDB also supports auto-loading them (this is what happens
> here on my Ubuntu system), cf.:
> This file here causes gdb to auto-load the pretty printers:
> libstdc++6:amd64: /usr/share/gdb/auto-load/usr/lib/x86_64-linux-gnu/libstdc+
> To check whether pretty-printing STL types works at all, probably try to debug
> a simple test program creating a std::vector<> and debug it with command-line
> GDB and print the vector.
> Hope that helps.
>> I checked the release notes of later versions, but didn't find sth there
thanks for your answer!
Well, as mentioned, I actually wanted to avoid the GDB-console
and would rather use the "Variables"-window on the left hand side.
I tried your suggestion (via Solution A), but there still seems to
be a problem:
set print pretty on
leads to "std::vector of length 0, capacity 10" and no elements are
But this is OK for me now, since I found that I can - as a workaround -
switch to std::array for debugging, so I'm fine for now.
(Only problem: arrays can't handle as many elements as vectors)
Thank you once more and best regards,
More information about the KDevelop