File: gdb_tips.txt

package info (click to toggle)
crawl 2%3A0.34.0-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 100,188 kB
  • sloc: cpp: 363,709; ansic: 27,765; javascript: 9,516; python: 8,463; perl: 3,293; java: 3,132; xml: 2,380; makefile: 1,835; sh: 611; objc: 250; cs: 15; sed: 9; lisp: 3
file content (29 lines) | stat: -rw-r--r-- 919 bytes parent folder | download | duplicates (8)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
Pretty-printers for libstdc++
=============================

Follow the instructions at the following URL, and your std::strings
will print like strings, etc.:

http://gcc.gnu.org/onlinedocs/libstdc++/manual/debug.html


How to make a std::string:
==========================

(From #gdb)
<jankratochvil> SamB:
<jankratochvil> (gdb) p $a=(std::allocator<char>*)malloc(sizeof(std::allocator<char>))
<jankratochvil> (gdb) p $a->allocator()
<jankratochvil> (gdb) p $s=(std::string*)malloc(sizeof(std::string))
<jankratochvil> (gdb) p $s->basic_string("foo",*$a)
<jankratochvil> (gdb) p *$s
<jankratochvil> $20 = "foo"
<jankratochvil> std::string is mostly the only tricky class as it is just an alias name for basic_string....

Again, with just the input:

p $a=(std::allocator<char>*)malloc(sizeof(std::allocator<char>))
p $a->allocator()
p $s=(std::string*)malloc(sizeof(std::string))
p $s->basic_string("foo",*$a)
p *$s