[U-Boot] still weird problems (linker/debug?) on MCF5445x
Wolfgang Denk
wd at denx.de
Tue Mar 2 17:30:42 CET 2010
Dear Wolfgang Wegner,
In message <20100302160513.GF23389 at leila.ping.de> you wrote:
>
> While trying to debug this I am running into a somewhat strange
> problem with the symbol table relocation for debugging. I added a
> printf to board_init_r like this:
> printf("gd->reloc_off: 0x%08x\n", gd->reloc_off);
> giving me:
> gd->reloc_off: 0x07d84000
> my TEXT_BASE is 0x40020000, so I set this in my .gdbinit:
> define ram
> symbol-file
> add-symbol-file u-boot 0x47da4000
> end
>
> Now in the debugger I do:
> (gdb) ram
> add symbol table from file "u-boot" at
> .text_addr = 0x47da4000
> (gdb) b board_init_r
> Breakpoint 1 at 0x47da4672: file board.c, line 422.
>
> but the breakpoint is never reached. I tried printing the function
> pointer from the code:
> printf("%s@%p\n", __FUNCTION__, &board_init_r);
> resulting in:
> board_init_r at 47da466e
> The disassembly shows:
> 4002066e <board_init_r>:
> 4002066e: 4e56 ffc0 linkw %fp,#-64
> 40020672: 202d 0014 movel %a5@(20),%d0
> 40020676: 48d7 3c3c moveml %d2-%d5/%a2-%a5,%sp@
I see no problem here. The 0x47da4672 you got above is obviously the
(correct) address for the "movel %a5@(20),%d0" instruction. Assuming
you can set breakpoints at all the code should stop there.
> and in the debugger I can see:
> (gdb) print /x *0x47da466e
> $1 = 0x4e56ffc0
Looks sane to me, too.
Which sort of debugger are you using?
Best regards,
Wolfgang Denk
--
DENX Software Engineering GmbH, MD: Wolfgang Denk & Detlev Zundel
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: wd at denx.de
Death, when unnecessary, is a tragic thing.
-- Flint, "Requiem for Methuselah", stardate 5843.7
More information about the U-Boot
mailing list