[RFA] Assuming malloc exists in callfwmall.exp
Michael Elizabeth Chastain
chastain@cygnus.com
Wed Feb 14 13:41:00 GMT 2001
> But how is it possible that GDB needs malloc() when the target does not
> have it?
(gdb) print strlen("foo")
GDB needs some mechanism to grab scratch memory in the target.
malloc() is the only mechanism that it has.
Michael
/* gdb/valops.c */
/* Allocate NBYTES of space in the inferior using the inferior's malloc
and return a value that is a pointer to the allocated space. */
value_ptr
value_allocate_space_in_inferior (int len)
{
value_ptr blocklen;
register value_ptr val = find_function_in_inferior ("malloc");
blocklen = value_from_longest (builtin_type_int, (LONGEST) len);
val = call_function_by_hand (val, 1, &blocklen);
if (value_logical_not (val))
{
if (!target_has_execution)
error ("No memory available to program now: you need to start the target first");
else
error ("No memory available to program: call to malloc failed");
}
return val;
}
More information about the Gdb-patches
mailing list