GDB memory usage with compressed debug info

Mike Gulick mgulick@mathworks.com
Thu Mar 18 18:38:02 GMT 2021


On 3/16/21 2:40 PM, Mike Gulick wrote:
> Hi,
> 
> I'm observing that GDB memory usage is much higher when I have debug 
> info compressed with 'objcopy --compress-debug-sections'.  In a large 
> C++ application, I see the instance with uncompressed debug info use 
> 46GB VIRTUAL memory and 11GB RSS, and the instance with compressed debug 
> info is using 46GB VIRTUAL memory and 42GB RSS.  In case it matters, the 
> debug info is separated from the original binary into its own file.
> 
> It seems like GDB must load the full uncompressed debug info into memory 
> when the underlying files are compressed?
> 
> I'm currently using GDB 9.2.  I checked the 10.1 NEWS and didn't see 
> anything that looked like it would have changed this result, but I'm 
> happy to give it a try if you think it might help.
> 
> Is there any chance this could be improved with a patch to GDB, or is 
> this just the nature of compressed debug data?
> 
> Also, FYI, the NEWS link for the GDB 10.1 release on the GDB home page 
> points to the NEWS file for the 9.1 release.
> 
> Thanks!
> 
> -Mike

I should add that this high memory usage only occurs when there is a 
FILE:LINENUM breakpoint set (or pending).  I can run the application 
being debugged, observe that GDB's memory usage is around 11 or 12 GB, 
then run 'b foobar.cpp:123', and the GDB memory usage will climb up to 
42 GB.  Interesting that symbolic breakpoints don't trigger this high 
memory usage, but line-based breakpoints do.  Does this seem expected?

Thanks,
Mike



More information about the Gdb mailing list