This is the mail archive of the
gdb-patches@sources.redhat.com
mailing list for the GDB project.
Re: New target method returning the name of the malloc function?
- From: Daniel Jacobowitz <drow at mvista dot com>
- To: Pierre Muller <muller at ics dot u-strasbg dot fr>
- Cc: Joel Brobecker <brobecker at gnat dot com>, gdb-patches at sources dot redhat dot com
- Date: Fri, 6 Sep 2002 09:03:36 -0400
- Subject: Re: New target method returning the name of the malloc function?
- References: <20020906002319.GW1169@gnat.com> <4.2.0.58.20020906091206.021019b8@ics.u-strasbg.fr>
On Fri, Sep 06, 2002 at 09:17:11AM +0200, Pierre Muller wrote:
> At 02:23 06/09/2002 , Joel Brobecker a écrit:
> >Hello,
> >
> >The name of the function used to allocate some memory in the inferior is
> >currently hard-coded to "malloc" in valops.c:
> >
> > struct value *
> > value_allocate_space_in_inferior (int len)
> > {
> > struct value *blocklen;
> > struct value *val = find_function_in_inferior ("malloc");
> > ^^^^^^
> >
> >Unfortunately, on interix, the malloc function is not always there.
> >Quoting Donn Terry:
> ><<
> >malloc() won't necessarily be present; the way our namespace pollution
> >prevention stuff works, if the user application doesn't call an entry
> >point at all, it just won't be there. However, _malloc is always
> >present (at least in any real program) because it's called from within
> >the library.
> > >>
> >
> >May I suggest a new architecture method called for instance
> >NAME_OF_MALLOC or MALLOC_FUNCTION_NAME? The default would be to return
> >"malloc", but we could then change it to "_malloc" for the interix
> >target.
> That would be great !
> Because Pascal also does not define malloc...
> By the way, how is this allocated memory freed after the call to the
> inferior function ?
> Does it use another C function for this, or how is it done.
> if it also need to find free then we should
> also add a NAME_OF_FREE.
It doesn't release the memory. There's some comments in the code about
why not - we have no way of knowing whether the called function stored
a pointer in a global variable somewhere.
--
Daniel Jacobowitz
MontaVista Software Debian GNU/Linux Developer