This is the mail archive of the
gdb@sources.redhat.com
mailing list for the GDB project.
Clarfication about 'Badvaddr' cp0 register in Tx39
- From: "A.Ramesh" <aramesh at acmet dot com>
- To: <gdb at sources dot redhat dot com>
- Date: Wed, 24 Mar 2004 17:04:35 +0530
- Subject: Clarfication about 'Badvaddr' cp0 register in Tx39
Hi,
I am using the gdb6.0 port for tx39. I am seeking one clarification
related to Coprocessor registers. I have tried to produce 'Address Error
Exception' and verify the behavior of coprocessor registers. As per
specification, there is a 'Badvaddr' register, which takes the address
whose access had caused the Exception.
After getting this exception, I couldn't get any changes on 'bad'
register in the DDD's 'Register window'.
Later I found, while debugging, that there are two locations in gdb
which are maintaining cp0 registers.
1) cpu->registers [REGISTERS]
2) cpu->cp0_gpr [CP0_GPR]
'Badvaddr' is implemented using 'cpu->cp0_gpr' in interp.c. 'cpu' is the
type of structure _sim_cpu. This structure has been declared in
sim-main.h
But, Gdb6.0 provides user interface for only those cp0 registers which
are maintained at 'cpu->registers'.
This means, if we change the value in [REGISTERS] array, that will
reflect in the DDD's 'Register window'.
So should I allocate the place for 'BadVaddr' in [REGISTERS], so that I
can see the behavior of any exception ? Or How do I link [CPO_GPR] with
user interface ?
Thanks & Regards,
A.Ramesh