Can not interrupt running application
Keith Seitz
keiths@redhat.com
Mon Oct 27 18:00:00 GMT 2003
L P wrote:
> Hello.
> I reread my mail and decided to add some more details.
> I cross-compiled Insight 5.3 on RH9 machine with gcc5.2.2 for PowerPC.
> I try to debug my embedded application via the BDM using bdm4gdb package.
> When I run the application by plane gdb in console mode, 100% of gdb works and when I press Ctrl-C (while the application is in while(1)
> loop) gdp stops saying "Program received signal SIGINT, Interrupt.".
> When I try to do the same in Insight, it hangs. I can not press any button (including interrupt) or enter any menu item. Only kill command
> helps.
>
> What can be the cause of the problem?
Sounds a lot like another backend problem with the bdm code.
To be specific... Gdb has several event loops. Insight adds another. The
two really important event loops are the Tk event loop (used by
Insight's GUI code) and gdb's target_wait (which waits for an event from
the target).
When using a serial port or a network connection in one of gdb's
standard/supported targets, the target_wait loop will call out to a hook
which will keep the UI alive (ui_loop_hook). This is done all over the
place. It isn't pretty, but it's the only workable solution right now.
(Well, actually that may not be necessarily true anymore, since we can
now monitor activity on a socket for windows events in both X and
cygwin. Nonetheless, it wasn't always possible, and this is what we have
today.)
It sounds a lot like the bdm code is waiting forever for an event from
the target, and starving the UI event loop.
Keith
More information about the Insight
mailing list