public inbox for gdb-prs@sourceware.org
help / color / mirror / Atom feed
* [Bug python/10633] New: std::string pretty printer should respect 'print elements' limit
@ 2009-09-12  0:37 ppluzhnikov at google dot com
  2009-09-14  9:20 ` [Bug python/10633] " pmuldoon at redhat dot com
                   ` (9 more replies)
  0 siblings, 10 replies; 11+ messages in thread
From: ppluzhnikov at google dot com @ 2009-09-12  0:37 UTC (permalink / raw)
  To: gdb-prs

There is inconsistency between e.g. std::vector and std::string pretty
printers: the former respects 'print elements' limit, the latter doesn't.

Example:

--- cut ---
#include <string>
#include <vector>

using namespace std;
int main()
{
  //                      01234567890123456789012
  const char *const cs = "Mary had a little lamb.";
  vector<int> v;
  string s;

  for (int i = 0; i < 10; ++i)
    {
      v.push_back(i);
      s += cs;
    }
  return 0;  // break here
}
--- cut ---

g++ -g -o long-str long-str.cc

gdb64-cvs -nx long-str
GNU gdb (GDB) 6.8.50.20090911-cvs
Copyright (C) 2009 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.  Type "show copying"
and "show warranty" for details.
This GDB was configured as "x86_64-unknown-linux-gnu".
For bug reporting instructions, please see:
<http://www.gnu.org/software/gdb/bugs/>...
Reading symbols from /home/ppluzhnikov/src/tmp/long-str...done.
(gdb) b 17
Breakpoint 1 at 0x4008d6: file long-str.cc, line 17.
(gdb) run
Starting program: /home/ppluzhnikov/src/tmp/long-str 

Breakpoint 1, main () at long-str.cc:17
17        return 0;  // break here

## This is fresh svn sync of the latest pretty printers as of 5 minutes ago:
(gdb) py sys.path.insert(0, '/home/ppluzhnikov/Archive/gcc-svn/libstdc++-v3/python')
(gdb) py from libstdcxx.v6.printers import register_libstdcxx_printers
(gdb) py register_libstdcxx_printers (None)
(gdb) set print elem 5
(gdb) print v
$1 = std::vector of length 10, capacity 16 = {0, 1, 2, 3, 4...}
(gdb) print cs
$2 = 0x40138e "Mary "...
(gdb) print s
$3 = 
    "Mary had a little lamb.Mary had a little lamb.Mary had a little lamb.Mary
had a little lamb.Mary had a little lamb.Mary had a little lamb.Mary had a
little lamb.Mary had a little lamb.Mary had a little lamb.Mary had a little lamb."
(gdb) q

Note how 'print elem 5' applies to both vector and 'const char *cs',
but the string is printed "in full".

-- 
           Summary: std::string pretty printer should respect 'print
                    elements' limit
           Product: gdb
           Version: unknown
            Status: UNCONFIRMED
          Severity: normal
          Priority: P2
         Component: python
        AssignedTo: unassigned at sourceware dot org
        ReportedBy: ppluzhnikov at google dot com
                CC: gdb-prs at sourceware dot org
 GCC build triplet: x86_64-unknown-linux-gnu
  GCC host triplet: x86_64-unknown-linux-gnu
GCC target triplet: x86_64-unknown-linux-gnu


http://sourceware.org/bugzilla/show_bug.cgi?id=10633

------- You are receiving this mail because: -------
You are on the CC list for the bug, or are watching someone who is.


^ permalink raw reply	[flat|nested] 11+ messages in thread

end of thread, other threads:[~2009-09-21 11:12 UTC | newest]

Thread overview: 11+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2009-09-12  0:37 [Bug python/10633] New: std::string pretty printer should respect 'print elements' limit ppluzhnikov at google dot com
2009-09-14  9:20 ` [Bug python/10633] " pmuldoon at redhat dot com
2009-09-14 11:47 ` pmuldoon at redhat dot com
2009-09-14 12:41 ` pmuldoon at redhat dot com
2009-09-14 13:15 ` pmuldoon at redhat dot com
2009-09-15 13:29 ` pmuldoon at redhat dot com
2009-09-15 13:30 ` pmuldoon at redhat dot com
2009-09-21  9:40 ` cvs-commit at gcc dot gnu dot org
2009-09-21 10:25 ` cvs-commit at gcc dot gnu dot org
2009-09-21 11:11 ` pmuldoon at redhat dot com
2009-09-21 11:12 ` pmuldoon at redhat dot com

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).