This is the mail archive of the
insight@sources.redhat.com
mailing list for the Insight project.
arm-coff stack & local variable display problems
- From: Toralf Lund <toralf at procaptura dot com>
- To: "insight at sources dot redhat dot com" <insight at sources dot redhat dot com>
- Date: Thu, 29 Apr 2004 13:29:30 +0200
- Subject: arm-coff stack & local variable display problems
I'm trying to debug an arm-coff application using arm-coff-insight and a
"BDI-2000" JTAG debug interface connected to an ARM-9 board (setup
discussed briefly earlier.)
Many things work, but View->Stack or "where" in console sometimes fail
to display correct call stack, and when they do "up" and "down" won't
work correctly, either. For instance, at one point early in the init
phase, the real call stack is:
#0 SlaveSerial
#1 hardware_init_hook
#2 start
Insight never displays it that way, however, and as I execute statements
using Next (step over - I never "step into" subroutines in this case),
the output changes. E.g. on one case, I got the following sequence:
#1 SlaveSerial (flash_start_addr=0x9ffd77c, flash_end_addr=0x801ac20)
at mc9328xapp502.c:227
#1 0x08008410 in hardware_init_hook () at scu_fb.c:321
#2 0x0800da14 in InitKbd () at mc9328io.c:98
#0 SlaveSerial (flash_start_addr=0x9ffd76c, flash_end_addr=0x801afc2)
at mc9328xapp502.c:244
#1 0x08008410 in hardware_init_hook () at scu_fb.c:321
#2 0x0800cc0c in IORead (addr=0x9ffd76c) at mc9328xapp502.c:115
#0 SlaveSerial (flash_start_addr=0x9ffd76c, flash_end_addr=0x21c11c) at
mc9328xapp502.c:247
#0 SlaveSerial (flash_start_addr=0x9ffd76c, flash_end_addr=0x21c11c) at
mc9328xapp502.c:264
#1 0x0800cd60 in SlaveSerial (flash_start_addr=0x9ffd76c,
flash_end_addr=0x21c11c) at mc9328xapp502.c:253
#2 0x0800cb60 in IOWrite (addr=0x9ffd76c, data=33) at mc9328xapp502.c:99
#0 SlaveSerial (flash_start_addr=0x9ffd76c, flash_end_addr=0x21c026) at
mc9328xapp502.c:275
#1 0x0800cd94 in SlaveSerial (flash_start_addr=0x9ffd76c,
flash_end_addr=0x21c026) at mc9328xapp502.c:265
#2 0x0800cc0c in IORead (addr=0x9ffd76c) at mc9328xapp502.c:115
#0 SlaveSerial (flash_start_addr=0x9ffd76c, flash_end_addr=0x2ffff) at
mc9328xapp502.c:275
#1 0x0800d7d0 in ShiftDataOut (Data16=2559) at mc9328xapp502.c:394
#2 0x0800ce50 in ShiftDataOut (Data16=2559) at mc9328xapp502.c:312
#0 SlaveSerial (flash_start_addr=0x9ffd76c, flash_end_addr=0x801ac28)
at mc9328xapp502.c:277
#1 0x0800cdec in SlaveSerial (flash_start_addr=0x9ffd76c,
flash_end_addr=0x801ac28) at mc9328xapp502.c:276
#2 0x0800cc0c in IORead (addr=0x9ffd76c) at mc9328xapp502.c:115
Note that InitKbd() is a routine called sometime before SlaveSerial(),
while IORead(), IOWrite() and ShiftDataOut() are called from it, and
there may possibly be some sort of correlation between their call and
the point where they appear in the stack listing (but I'm *not* in them
at the time.)
Also, local variables and function call parameters are sometimes not
correctly displayed. Actually, you can tell that by looking at paramter
values in the above stack trace.
Any ideas why this happens? Notice that I'm looking at code executed
*before* main(). Is there any reason why the debugger shouldn't work
correctly in that case?
I've tried version 5.3 and 6.0 of insight, with the same result. 6.1 is
not tested yet, but I know that has other issues that prevents me from
using it.
- Toralf