Re: Writing regs to corefile

Jon Ringle
2005-04-25T20:51:18Z

On Monday 25 April 2005 16:44, Daniel Jacobowitz wrote:
> On Mon, Apr 25, 2005 at 04:36:13PM -0400, Jon Ringle wrote:
> > (gdb) bt
> > #0 0x401672d8 in _IO_vfprintf (s=0x1d, format=0x20c3afc "\n*** PID %d
> > returning from signal %d @ pc %08x lr %08x\n", ap=Cannot access memory at
> > address 0xbee01f44 ) at vfprintf.c:209
> > #1 0x40175d5c in _IO_vsprintf (string=0x20f7aa8 "\n*** PID 79 returning
> > from signal 13 @ pc 401b9304 lr 401039d8\n", format=0x20c3afc "\n*** PID
> > %d returning from signal %d @ pc %08x lr %08x\n", args=0xbee0252c) at
> > iovsprintf.c:47 #2 0x020ba51c in dbgPrintf (fmt=0x20c3afc "\n*** PID %d
> > returning from signal %d @ pc %08x lr %08x\n") at dbgprint.c:184 #3
> > 0x0200b278 in client_sigaction (sig=13, psi=0xbee02624, arg=0xbee026a4)
> > at signals.c:103 #4 0x40101fc8 in pthread_sighandler_rt (signo=13,
> > si=0xbee02624, uc=0xbee026a4) at signals.c:119 #5 <signal handler
> > called>
> > Previous frame inner to this frame (corrupt stack?)
>
> Well, that's not supposed to happen. You want to figure out why it
> did...

This is my final goal with this task, yes :)

>
> > I can't seem to write directly to the core file register set from within
> > gdb (which is why I was hand editing the core file):
> > (gdb) set $r0 = 0xffffffe4
> > You can't do that without a process to debug.
>
> Yeah. This is a bit unfortunate. Maybe we should allow the loaded
> copy of the registers to be changed.

I was looking at corelow.c to see if I could add a core_ops.to_store_registers
function to do just that. However, the first problem I encountered is that
the to_store_registers definition seems to only have a regno parameter. How
do I get access to the value of regno to be stored?

Jon