> On 2006-11-22, matsblide@hotmail.com <matsblide@hotmail.com> wrote:
>
>> I can than communicate with the board using different GDB commands. I
>> can view memory and register content, disassemble, set and view
>> breakpoints. So it seams to work ok. But! At this stage I se that my
>> programcounter is pointing att some odd point in memory. Probably due
>> to some bug in my program. Than I want to set a breakpoint and restart
>> the program, and as beginner at using GDB I found in the manual that
>> this is done using the 'run' command. But then I get:
>>
>> "
>> (gdb) b start
>> Breakpoint 6 at 0x408: file system/crt0.S, line 54.
>> (gdb) run
>
I didn't see in your description any indication that you have loaded the
program into the target memory - don't forget that step!
When the program is loaded by gdb from a file with symbols (e.g., an elf
file), gdb will set the program counter correctly to the entry point of
the program. If your program is there from before (in flash, for
example), you may have to set the program counter manually with
something like "set $pc = start".
> Don't use the 'run' command. AFAICT, 'run' isn't aplicable to
> remote debugging.
>
Exactly. It's a common (and understandable) mistake when first using
gdb. "Run" is used by gdb to set up a program's environment, link in
dynamic libraries, etc., which is only appropriate if you are using a
proper OS. For most embedded work, what you want to do is make sure
your program counter is at the program's entry point, and "continue"
from the start.
> Use the 'continue' command instead of 'run'. If you want to
> 'restart' your program, you might have to set the
> PC/SP/whatever to the proper values. Or depending on the
> target, you be able to 'load' the program to get things
> initialized:
>
> (gdb) load 'myprog.elf'
> [...]
> (gdb) continue
>
>
Reply by Grant Edwards●November 23, 20062006-11-23
On 2006-11-22, matsblide@hotmail.com <matsblide@hotmail.com> wrote:
> I can than communicate with the board using different GDB commands. I
> can view memory and register content, disassemble, set and view
> breakpoints. So it seams to work ok. But! At this stage I se that my
> programcounter is pointing att some odd point in memory. Probably due
> to some bug in my program. Than I want to set a breakpoint and restart
> the program, and as beginner at using GDB I found in the manual that
> this is done using the 'run' command. But then I get:
>
> "
> (gdb) b start
> Breakpoint 6 at 0x408: file system/crt0.S, line 54.
> (gdb) run
Don't use the 'run' command. AFAICT, 'run' isn't aplicable to
remote debugging.
Use the 'continue' command instead of 'run'. If you want to
'restart' your program, you might have to set the
PC/SP/whatever to the proper values. Or depending on the
target, you be able to 'load' the program to get things
initialized:
(gdb) load 'myprog.elf'
[...]
(gdb) continue
--
Grant Edwards
grante@visi.com
Reply by ●November 22, 20062006-11-22
Hi,
I'am trying to debugg a program loaded into a freescale M52233DEMO
evaluation board.
I'am starting GDB and than connects to the ev-board using the following
command:
target remote | m68k-elf-cfpe-stub -d USBMultilink -t m52235evb
I can than communicate with the board using different GDB commands. I
can view memory and register content, disassemble, set and view
breakpoints. So it seams to work ok. But! At this stage I se that my
programcounter is pointing att some odd point in memory. Probably due
to some bug in my program. Than I want to set a breakpoint and restart
the program, and as beginner at using GDB I found in the manual that
this is done using the 'run' command. But then I get:
"
(gdb) b start
Breakpoint 6 at 0x408: file system/crt0.S, line 54.
(gdb) run
The program being debugged has been started already.
Start it from the beginning? (y or n) y
Starting program: C:\Projects\Test/test.elf
Don't know how to run. Try "help target".
"
And after this I have no conntact with my board any more.....
Why!? What to do? (And obviously, I have tried "help target", but now
help there. I did use the target command to connect to the board).
Any help highly appreciated!
Rgds,
Mats