This is the mail archive of the gdb@sourceware.org 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]

"cannot find bounds of current function"


Hi,

Thak You! The details:
My target is remote, the AT91SAM7S256 microcontoller. It has ARM7TDMI core. The architecture of it is armv4t.
I use the openOCD created by Dominic Rath. Thank you Dominic! :)
I didnt try this on Linux only on window$ yet. I can use the yagarto (native) or the sourcery g++ toolchain (native, but it can use the cygwin as well)...the problem is the same in either case.


The code which I like to debug is this:
/*test.c*/
main () { /*This is just a test code, meaningless.*/
int a;
int b;
while (1) {
a=2;
b=3;
a+=b;
}
}
COMPILE
==========
I compile with these parameters:
> CC -march=armv4t -mcpu=arm7tdmi -LE -g -gdwarf-2 -o test.elf test.c
where CC is arm-none-eabi-gcc (sourcery g++) or arm-elf-gcc (yagarto).
After that I create a .bin file.
> OB -O binary test.elf test.bin
Where OB is arm-none-eabi-objcopy (sourcery g++) or arm-elf-objcopy (yagarto)
I can compile without any error or warning message.
I load the test.bin in the flash using JTAG wiggler interface and the
openOCD.


OPENOCD
==========
   My openOCD config file contain these lines:

   #Deamon configuration
   gdb_port 3333
   telnet_port 4444
   deamon_startup attach

   #JTAG interface configuration
   interface parport
   jtag_speed 0
   reset_config srst_only
   jtag_device 4 0x1 0xf 0xe
   #jtag_nsrst_delay
   #jtag_ntrst_delay

   #Parport options
   parport_port 0x378
   parport_cable wiggler

   #target configuration
   target arm7tdmi little reset_halt 0 arm7tdmi
   #run_and_halt_time
   #working_area

   #Flash configuration
   flash bank at91sam7 0 0 0 0 0

   After the start I have got 2 info:
   info:   openocd.c:82 main(): Open On-Chip Debbuger (2006-09-28 20:00 CEST)
   info:   configuration.c:50 configuration_output_handler(): Command
           deamon_startup not found

   I dont know what is mean the second one, but there is no problem in during
   the flash write. I load the test.bin in the flash using telnet.


LOAD the test.bin =================== Start the telnet: >telnet localhost 4444 I get a prompt like this:

   Open On-Chip Debugger
   >
   The sequence is:
   >soft reset
   >flash erase 0 0 15
   >flash write 0 test.bin 0
   >soft reset
   >arm7_9 sw_bkpts enable

This works well.

Debug
=====================
I use the arm-elf or the arm-none-eabi gdb...I will sign this just gdb.
start:
>gdb test.elf
then it write some line information about himself. I think maybe this would be
important:
This GDB was configured as "--host=i686-pc-mingw32 --target=arm-elf" ... (yagarto)
--target=arm-none-eabi" ...(sourcery g++)
I have a celeron 800MHz.
Then I connect to the remote target (the prompt is (gdb) now )
(gdb)target remote localhost:3333
Remote debugging using localhost:3333
0x000048a0 in ?? ()
(gdb)


    Now if I try to execute a "step" or "next" I see:
   (gdb)next
     Cannot find bounds of current function
   (gdb)step
     Cannot find bounds of current function

    Daniel Jacobowitz wrote me I am not in the main().I have to make a
    breakpoint at the entry of the main and execute the continue
    command. Thank You Daniel! If I do this then:
   (gdb)break main
     Breakpoint 1 at 0x821c: file test.c, line 6.
   (gdb)continue
     Continuing.

    Thats all...I dont get back the (gdb) prompt...:(
    Where is the mistake? What I can do? Please somebody help me!

The list command is alright and I can debug assembly code without
any trouble.

Thank You!
David

----------------------------------------------------------------
This message was sent using IMP, the Internet Messaging Program.


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