This is the mail archive of the
ecos-discuss@sources.redhat.com
mailing list for the eCos project.
Re: MIPS32 gdb vectors question
"Tim Michals" <t dot michals at attbi dot com> writes:
> 0104001708a2200001ffe00000000000c0c0c0064440002426e03e6340000000012008411000
^^^^^^^^^
If this is a recent dump of what GDB is saying, then the CP0 registers
are still being added to the packet. 0xc0c0c0006 (yes it is 9 digits!)
is one of the values put in an unused register slot. It turns up here
as 0x0c0c0c006.
>
> If I change mips-stub.h to #if defined(CYGPKG_HAL_MIPS_GDB_REPORT_CP0)
> #define NUMREGS 37
> #else
> #define NUMREGS 37
> #endif
Note that this is not an adequate fix for the problem, since this
value only controls how many registers GDB sends over the line. The
code in hal_arch.h does not see this and will still happily save 107
registers, potentially overwriting something else.
The correct approach is to disable CYGPKG_HAL_MIPS_GDB_REPORT_CP0 in
the mips32 package -- which is one of the things my patch did.
> Further tracing needs to be done on my part, what is confusing, is no else
> is seeing this problem with gdb 5.3? I'll recompile gdb 5.3 again and
> retrace and provide better flow of what is happening.
Double check that you have installed the latest RedBoot. The evidence
above suggests not. Make sure you reconfigure from scratch in a clean
build directory -- its very easy for old configurations to mess up new
ones.
--
Nick Garnett eCos Kernel Architect
http://www.ecoscentric.com/ The eCos and RedBoot experts
--
Before posting, please read the FAQ: http://sources.redhat.com/fom/ecos
and search the list archive: http://sources.redhat.com/ml/ecos-discuss