This is the mail archive of the gdb@sources.redhat.com mailing list for the GDB project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]