GDB call and p func() on embedded target

Maximilian Schneider via Gdb <[email protected]>
Newsgroups gmane.comp.gdb.devel
Message-ID <[email protected]>
Hello,

I am trying to call a function from withing a gdb debugging session on
an embedded target. However gdb never returns and when i stop it
manually the program counter is in a strange place. It appears that gdb
is not able to catch the return, and is continuing  execution from
before the core was halted... 

assume the function I want to call has prototype int32_t Init(void);

If I set the pc manually I can step throught the function until the
return without a problem.

I can even set a breakpoint on Init and then use p Init(). The
breakpoint will fire and I can step throught the code manually.

eg.

target remote localhost:3333
monitor reset halt
monitor reset init
file loader.elf
load loader.elf
set $sp=0x20010000
set $pc=&Init
b Init
p Init()
n
n
n
...

However without the breakpoint gdb never returns.
Is this a known problem? Is there a workaround?

Some background:
The purpose of this entire excercise is to arrive at a tool/set of
scripts that can be used to load and execute arbitrary code from RAM,
to fi. manipulate external memories or run tests.

Regards,
M
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.