File: gdb_tips.txt

package info (click to toggle)
crawl 2%3A0.28.0-1.1
  • links: PTS
  • area: main
  • in suites: bookworm, trixie
  • size: 66,188 kB
  • sloc: cpp: 326,715; ansic: 31,227; javascript: 9,209; python: 5,410; perl: 3,311; makefile: 1,770; java: 792; sh: 665; objc: 250; xml: 32; 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