Re: [Qemu-devel] Re: [PATCH] x86_64 debug registers for gdb

2007-04-23 Thread Jan Kiszka
Hi again, here is now a version that I tested a bit longer than 5 minutes (it actually helped to nail down a Xenomai kernel bug). The general purpose register mapping for x86_64 was still wrong. I'm now directing the indices through a mapping table because I didn't dare to redefine R_EBX&friends

Re: [Qemu-devel] Re: [PATCH] x86_64 debug registers for gdb

2007-04-23 Thread Jan Kiszka
Jan Kiszka wrote: > +for (i = 0; i < CPU_NB_REGS; i++) { > +regs->xmm[i][0] = tswap64(&env->xmm_regs[i].XMM_Q(0)); > +regs->xmm[i][1] = tswap64(&env->xmm_regs[i].XMM_Q(1)); > +} Copy&paste nonsense. Corrected version attached. Jan --- gdbstub.c | 118 ++

Re: [Qemu-devel] Re: [PATCH] x86_64 debug registers for gdb

2007-04-21 Thread Jan Kiszka
Paul Brook wrote: >>> These are all wrong on x86-64. >> Then what about pointing me to the correct information to fix this, hmm? >> I browsed gdb code and docs but found no obvious packet format >> description. Constructive help is welcome, likely I'm just blind. > > gdb/amd64-tdep.c is the autho

Re: [Qemu-devel] Re: [PATCH] x86_64 debug registers for gdb

2007-04-20 Thread Paul Brook
> > These are all wrong on x86-64. > > Then what about pointing me to the correct information to fix this, hmm? > I browsed gdb code and docs but found no obvious packet format > description. Constructive help is welcome, likely I'm just blind. gdb/amd64-tdep.c is the authorative source. Specific

Re: [Qemu-devel] Re: [PATCH] x86_64 debug registers for gdb

2007-04-20 Thread Jan Kiszka
Paul Brook wrote: > On Thursday 19 April 2007 22:30, Jan Kiszka wrote: >> +registers[_GP_REGS+2] = env->segs[R_CS].selector; >> +registers[_GP_REGS+3] = env->segs[R_SS].selector; >> +registers[_GP_REGS+4] = env->segs[R_DS].selector; >> +registers[_GP_REGS+5] = env->segs[R_ES].select

Re: [Qemu-devel] Re: [PATCH] x86_64 debug registers for gdb

2007-04-20 Thread Paul Brook
On Thursday 19 April 2007 22:30, Jan Kiszka wrote: > +    registers[_GP_REGS+2] = env->segs[R_CS].selector; > +    registers[_GP_REGS+3] = env->segs[R_SS].selector; > +    registers[_GP_REGS+4] = env->segs[R_DS].selector; > +    registers[_GP_REGS+5] = env->segs[R_ES].selector; > +    registers[_GP

Re: [Qemu-devel] Re: [PATCH] x86_64 debug registers for gdb

2007-04-19 Thread Jan Kiszka
Paul Brook wrote: > On Wednesday 18 April 2007 21:53, Jan Kiszka wrote: >> Jason Wessel wrote: >>> This patch fixes the registers for the 'g' and 'G' packets for the >>> qemu-system-x86_64 target. It allows gdb 6.5 to debug a linux kernel >>> and get a stack back trace. >> Here comes a corrected (

Re: [Qemu-devel] Re: [PATCH] x86_64 debug registers for gdb

2007-04-19 Thread Paul Brook
On Wednesday 18 April 2007 21:53, Jan Kiszka wrote: > Jason Wessel wrote: > > This patch fixes the registers for the 'g' and 'G' packets for the > > qemu-system-x86_64 target. It allows gdb 6.5 to debug a linux kernel > > and get a stack back trace. > > Here comes a corrected (RBX and RDX were mix

[Qemu-devel] Re: [PATCH] x86_64 debug registers for gdb

2007-04-19 Thread Jan Kiszka
Jason Wessel wrote: > This patch fixes the registers for the 'g' and 'G' packets for the > qemu-system-x86_64 target. It allows gdb 6.5 to debug a linux kernel > and get a stack back trace. Here comes a corrected (RBX and RDX were mixed) and slightly enhanced (segment register reading, don't know