This is the mail archive of the
gdb@sourceware.org
mailing list for the GDB project.
TYPE_NAME memory management
- From: Doug Evans <dje at google dot com>
- To: Paul Pluzhnikov <ppluzhnikov at google dot com>
- Cc: gdb at sourceware dot org
- Date: Fri, 4 Sep 2009 14:17:57 -0700
- Subject: TYPE_NAME memory management
On Fri, Sep 4, 2009 at 11:03 AM, Doug Evans<dje@google.com> wrote:
> On Fri, Sep 4, 2009 at 10:59 AM, Paul Pluzhnikov<ppluzhnikov@google.com> wrote:
>> On Fri, Sep 4, 2009 at 8:25 AM, Paul Pluzhnikov<ppluzhnikov@google.com> wrote:
>>
>>> I am still working on a stand-alone repro case.
>>
>> Here it is:
>>
>>[...]
>> Segmentation fault (core dumped)
>>
>> I will not be able to work on a fix before next Tuesday, so if anybody
>> fixes this before then, please let me know.
Memory management for TYPE_NAME and TYPE_TAG_NAME is a bit random.
E.g.
bash$ grep "TYPE_NAME *(.*) *= " *.c
bash$ grep "TYPE_TAG_NAME *(.*) *= " *.c
Sometimes it's a string constant, sometimes it's in malloc space,
sometimes it's on objfile's obstack, and now sometimes it can live in
mmap'd space.
Obviously one would rather not place ordering constraints on objfile
data cleanups. All the above uses are "ok" (modulo any memory leaks
from malloc'd strings) except for the new mmap'd values, so it seems
like the thing to do for now is copy such strings onto the objfile's
obstack.
I'm not sure what the speed loss will be, but I think it's the thing
to do pending data that says something more clever is needed.