target: print reason why GDB halts

If GDB halts unexpectedly, print reason: srst assert or power
out detected.

If polling fails, then things are a bit trickier. We do not
want to spam telnet or the log with polling failed messages.
Leave that case be w/a comment in a code for now.

Signed-off-by: Øyvind Harboe <oyvind.harboe@zylin.com>
__archive__
Øyvind Harboe 2010-01-21 10:16:42 +01:00
parent dfba7fa949
commit 98f7c2127b
1 changed files with 10 additions and 0 deletions

View File

@ -1767,6 +1767,7 @@ static int handle_target(void *priv)
int did_something = 0;
if (runSrstAsserted)
{
LOG_INFO("Waking up GDB, srst asserted detected.");
target_call_event_callbacks_all(TARGET_EVENT_GDB_HALT);
Jim_Eval(interp, "srst_asserted");
did_something = 1;
@ -1778,6 +1779,7 @@ static int handle_target(void *priv)
}
if (runPowerDropout)
{
LOG_INFO("Waking up GDB, power dropout detected.");
target_call_event_callbacks_all(TARGET_EVENT_GDB_HALT);
Jim_Eval(interp, "power_dropout");
did_something = 1;
@ -1820,6 +1822,14 @@ static int handle_target(void *priv)
/* polling may fail silently until the target has been examined */
if ((retval = target_poll(target)) != ERROR_OK)
{
/* FIX!!!!! If we add a LOG_INFO() here to output a line in GDB
* *why* we are aborting GDB, then we'll spam telnet when the
* poll is failing persistently.
*
* If we could implement an event that detected the
* target going from non-pollable to pollable, we could issue
* an error only upon the transition.
*/
target_call_event_callbacks(target, TARGET_EVENT_GDB_HALT);
return retval;
}