> Here is what happens:
> 1. GDB receives a "fork" event;
> 2. handle_inferior_event calls detach_breakpoints for the child process;
> 3. detach_breakpoints calls ia64's gdbarch remove_breakpoint hook,
> which needs to read an entire instruction slot in order to remove
> a breakpoint instruction from memory;
> 4. To read inferior memory, the ia64-hpux code needs to know where
> that memory is located relative to the bsp..bspstore area,
> and thus needs to read the value of those registers;
> 5. To get the value of those registers, ia64_hpux_xfer_memory current
> uses the current regcache.
> The problem is taht at the time we are trying to remove the breakpoints
> from the child, the child process is not part of the list of inferiors
> really known to GDB (it has not been added to inferior_list), and there
> is therefore no regcache for that process. This is what triggers the
> internal error.
The text for the commit log should be updated too (if that's what
this is). I suggest replacing
and there is therefore no regcache for that process
with something like
and so trying to create a regcache for it internal errors when creating an
address space for the regcache (as the address space is ultimately fetched
from the inferior.