This is the mail archive of the
gdb-prs@sources.redhat.com
mailing list for the GDB project.
gdb/592: Serious memory leak and slow perf of call foo()/print foo() commands
- From: stcarrez at nerim dot fr
- To: gdb-gnats at sources dot redhat dot com
- Date: 30 Jun 2002 08:27:41 -0000
- Subject: gdb/592: Serious memory leak and slow perf of call foo()/print foo() commands
- Reply-to: stcarrez at nerim dot fr
>Number: 592
>Category: gdb
>Synopsis: Serious memory leak and slow perf of call foo()/print foo() commands
>Confidential: no
>Severity: serious
>Priority: high
>Responsible: unassigned
>State: open
>Class: sw-bug
>Submitter-Id: net
>Arrival-Date: Sun Jun 30 01:28:00 PDT 2002
>Closed-Date:
>Last-Modified:
>Originator: Stephane Carrez
>Release: 5.2
>Organization:
>Environment:
i686-pc-linux-gnu
Using the following gcc (but it's not related to it):
/usr/lib/gcc-lib/i586-mandrake-linux-gnu/2.96/specs
gcc version 2.96 20000731 (Mandrake Linux 8.2 2.96-0.76mdk)
>Description:
There is a serious memory leak when we use the call foo() or
print foo() commands. The problem shows up clearly with
C++ programs that have big symbol tables (due to template
instantiations).
Gdb's process eats 140Mb after each call bar(0).
The C++ prog attached does nothing useful but instantiates
several STL map templates.
>How-To-Repeat:
Compile the example with:
g++ -o tst tst.C -g
Try in gdb:
gdb tst
(gdb) b main
# At this step, gdb uses 15Mb
(gdb) run
(gdb) call bar(0)
# the command is slow and gdb now uses 157Mb
(gdb) call bar(0)
# Likewise and it reached 297Mb
>Fix:
>Release-Note:
>Audit-Trail:
>Unformatted:
----gnatsweb-attachment----
Content-Type: application/octet-stream; name="tst.C"
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename="tst.C"
I2luY2x1ZGUgPG1hcD4KI2luY2x1ZGUgPHN0cmluZz4KCnN0cnVjdCB0ZXN0IAp7CiAgbG9uZyBh
OwogIGxvbmcgYjsKfTsKCnR5cGVkZWYgbWFwPHN0cmluZyx0ZXN0PiB0ZXN0X21hcDsKdHlwZWRl
ZiBtYXA8c3RyaW5nLGNoYXI+IGNoYXJfbWFwOwp0eXBlZGVmIG1hcDxzdHJpbmcsc2hvcnQ+IHNo
b3J0X21hcDsKdHlwZWRlZiBtYXA8c3RyaW5nLGxvbmc+IGxvbmdfbWFwOwp0eXBlZGVmIG1hcDxz
dHJpbmcsc3RyaW5nPiBzdHJfbWFwOwoKc3RydWN0IG1hcF9zZXZlcmFsCnsKICB0ZXN0X21hcCB0
OwogIGNoYXJfbWFwIGM7CiAgc2hvcnRfbWFwIHM7CiAgbG9uZ19tYXAgbDsKfTsKCnR5cGVkZWYg
bWFwPHN0cmluZyxtYXBfc2V2ZXJhbD4gbWFwbWFwOwoKdGVtcGxhdGUgPGNsYXNzIFQ+CmNsYXNz
IHRwbCA6IHB1YmxpYyBtYXA8c3RyaW5nLFQ+IHsKcHVibGljOgogIFQgdDsKfTsKCnRlbXBsYXRl
IDxjbGFzcyBUPgpjbGFzcyBiaWdfdHBsIDogcHVibGljIHRwbDxUPiB7CnB1YmxpYzoKICBUIHRb
MTBdOwp9OwoKdHlwZWRlZiBiaWdfdHBsPHRlc3RfbWFwPiB0ZXN0X3RwbDsKdHlwZWRlZiBiaWdf
dHBsPGNoYXJfbWFwPiBjaGFyX3RwbDsKdHlwZWRlZiBiaWdfdHBsPHNob3J0X21hcD4gc2hvcnRf
dHBsOwp0eXBlZGVmIGJpZ190cGw8bG9uZ19tYXA+IGxvbmdfdHBsOwp0eXBlZGVmIGJpZ190cGw8
c3RyX21hcD4gc3RyX3RwbDsKdHlwZWRlZiBiaWdfdHBsPG1hcG1hcD4gbWFwbWFwX3RwbDsKCnN0
cnVjdCBiaWcKewogIHRlc3RfdHBsIHQxOwogIGNoYXJfdHBsIHQyOwogIHNob3J0X3RwbCB0MzsK
ICBsb25nX3RwbCB0NDsKICBzdHJfdHBsIHQ1OwogIG1hcG1hcF90cGwgdDY7Cn07Cgp0eXBlZGVm
IG1hcDxzdHJpbmcsYmlnPiBiaWdfbWFwOwoKdHlwZWRlZiBiaWdfdHBsPGJpZ19tYXA+IGh1Z2Vf
bWFwOwp0eXBlZGVmIGJpZ190cGw8aHVnZV9tYXA+IGh1Z2UyX21hcDsKdHlwZWRlZiBiaWdfdHBs
PGh1Z2UyX21hcD4gaHVnZTNfbWFwOwp0eXBlZGVmIGJpZ190cGw8aHVnZTNfbWFwPiBodWdlNF9t
YXA7CgppbnQgZ2V0KHN0cmluZyYgbmFtZSwgbWFwbWFwJiBtcCkKewogIHN0cnVjdCBtYXBfc2V2
ZXJhbCYgcyA9IG1wW25hbWVdOwogIAogIHJldHVybiBzLmxbbmFtZV07Cn0KCmludCBiYXIoaW50
IGkpCnsKICByZXR1cm4gaSArIDE7Cn0KCnZvaWQgZmlsbChiaWdfbWFwJiBtYXApCnsKICBzdHJp
bmcgbmFtZSA9ICJhIjsKICAKICBmb3IgKGludCBpID0gMDsgaSA8IDEwOyBpKyspCiAgICB7CiAg
ICAgIG5hbWUgPSAiYSIgKyAoY2hhcikgKCcwJyArIGkpOwogICAgICBzdHJ1Y3QgYmlnJiBiID0g
bWFwW25hbWVdOwogICAgICBtYXBtYXAmIG0gPSBiLnQ2W25hbWVdOwogICAgfQp9CgppbnQgbWFp
bigpCnsKICBiaWdfbWFwIHRoZWJpZ21hcDsKICAKICBmaWxsKHRoZWJpZ21hcCk7Cn0KCg==