|
From: Jeremy F. <je...@go...> - 2004-03-08 10:30:09
|
On Mon, 2004-03-08 at 01:26, Doug Rabson wrote: > I recently had problems with valgrind running out of memory loading the > debug information for a program which loaded a large number of shared > libraries, all of which had lots of C++ debugging information. We ended > up re-arranging things to give valgrind more memory for malloc. > > From a quick reading of the code, we seem to only decode type > information for stabs. Does anything actually use the type information? > It certainly seems to take up a lot of space. The VG_(describe_addr)() function uses it to generate a symbolic description for a particular address and execution context, using whatever variables happen to be in scope at the time. The intent is to present a much more useful description of a failing address than just the numeric value, or the offset into the malloc block. Helgrind is the only tool to use it really consistently; we should make the rest use it too, where possible (memcheck/addrcheck use it a bit, but not very well). It is pretty large though. I guess the options are to work out how to represent it more compactly, or have an option to not load it. For DWARF2, it should be possible to incrementally load it as necessary, rather than in bulk like stabs forces us to do. J |