Mirror of the gdb mailing list
 help / color / mirror / Atom feed
* Robustifying pretty-printers
@ 2009-06-13 10:11 Vladimir Prus
  2009-06-13 10:21 ` Vladimir Prus
  2009-06-15 20:01 ` Tom Tromey
  0 siblings, 2 replies; 18+ messages in thread
From: Vladimir Prus @ 2009-06-13 10:11 UTC (permalink / raw)
  To: gdb


While playing with pretty-printers and KDevelop, I've got GDB
to "hang", with the below backtrace:

	(gdb) where
	#0  0xb7d0ed2a in strcmp () from /lib/tls/i686/cmov/libc.so.6
	#1  0x081be1a7 in install_variable (var=0x191b0620) at /home/ghost/Work/CodeSourcery/Projects/egdb/gdb-cvs/gdb/varobj.c:1731
	#2  0x081beef7 in create_child_with_value (parent=0x8a6e158, index=514255, name=0xb7bf8e14 "[514255]", value=0x191b03d0)
    at /home/ghost/Work/CodeSourcery/Projects/egdb/gdb-cvs/gdb/varobj.c:1859

The '514255' above is sufficient to understand what happened. Our beloved GCC fails to emit
proper debug info, therefore a vector is considered in scope before constructor is executed,
and the vector is full of random bits.

Now, what are the best strategies for fix this (assuming GCC won't be
fixed for 10 years to come)? One approach is to make IDE check at what
line the variable is declared, and don't try to pretty-print it unless
the current line is above that. Alternatively, we might need to revive
the code to limit the number of children to fetch, and use some reasonable
limit, like 10. Comments?

- Volodya



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

end of thread, other threads:[~2009-07-10 18:52 UTC | newest]

Thread overview: 18+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2009-06-13 10:11 Robustifying pretty-printers Vladimir Prus
2009-06-13 10:21 ` Vladimir Prus
2009-06-15 12:28   ` Phil Muldoon
2009-06-15 12:39     ` Vladimir Prus
2009-06-15 12:55       ` Daniel Jacobowitz
2009-06-15 13:25         ` Vladimir Prus
2009-06-16  7:22           ` André Pönitz
2009-06-15 20:01 ` Tom Tromey
2009-06-16  8:22   ` Vladimir Prus
2009-07-07 21:48     ` Tom Tromey
2009-07-09 17:20       ` Vladimir Prus
2009-07-09 19:14         ` Tom Tromey
2009-07-10  6:13           ` Vladimir Prus
2009-07-10 16:25             ` Tom Tromey
2009-07-10 16:40               ` Vladimir Prus
2009-07-10 16:48                 ` Tom Tromey
2009-07-10 18:46                   ` Vladimir Prus
2009-07-10 18:52                     ` Tom Tromey

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox