Re: How to tell gdb to exit?

Grant Edwards
2004-05-06T16:35:29Z

On Thu, May 06, 2004 at 12:18:58PM -0400, Daniel Jacobowitz wrote:

> > My bad. It looks like -target-disconnect works afer all. [of
> > course I swear I tried it before and it didn't.] -gdb-exit
> > still refuses to exit, but it will exit on EOF.
> >
> > So, this seems to work:
> >
> > #!/bin/bash
> > h8300-elf-gdb -interpreter=mi <<EOF
> > 10-target-select async /dev/ttyS0
> > 20-target-download test.elf
> > 30-exec-continue
> > 40-target-disconnect
> > EOF
> >
> > I messed around with this on and off for days, and couldn't
> > find the answer, but as soon as I put my foot in my mouth
> > publically, the answer appears. Odd, that.
>
> This will leave your target stopped, presumably.

Perhaps it tries to stop the target, but it can't. Once the
program starts, the gdb stub is "gone". My app has taken over
the UART for use as console I/O, and it's no longer possible to
communicate with the gdb stub[1]. It would be nice to have
another UART so one could be used for console I/O and the other
for GDB, but such is life.

> The "disconnect" commandd for the CLI will do the same thing.
> Is that what you want?

With the CLI, you can only send the disconnect command after
you've stopped the target. In my script above, I'm sending the
disconnect command while the target is still running. I guess
since it's no longer possible to stop the applicaion from gdb,
it keeps running.

Does that mean there's actually no way to tell gdb to "just
exit"? By "just exit" I mean don't try to muck with the
target: Just call exit().

[1] I do have gdb-mangling that I can enable in my console
output routine so that I can have console output while
continuing to use gdb+gdb-stub. But, there's no way to
handle console input via gdb, so if I want to use console
input, I have to cut gdb out of the loop rather
unceremoniously.