* tracepoint.h (set_traceframe_number)

(cleanup_restore_current_traceframe): Declare.
	* tracepoint.c (set_traceframe_number): New.
	(struct current_traceframe_cleanup): New.
	(do_restore_current_traceframe_cleanup)
	(restore_current_traceframe_cleanup_dtor)
	(make_cleanup_restore_current_traceframe): New.
	* infrun.c: Include tracepoint.h.
	(fetch_inferior_event): Switch out and in of tfind mode.
This commit is contained in:
Pedro Alves
2010-02-24 01:06:28 +00:00
parent ab92d69b1e
commit 06cd862c01
4 changed files with 88 additions and 0 deletions

View File

@@ -51,6 +51,7 @@
#include "record.h"
#include "inline-frame.h"
#include "jit.h"
#include "tracepoint.h"
/* Prototypes for local functions */
@@ -1761,6 +1762,16 @@ proceed (CORE_ADDR addr, enum target_signal siggnal, int step)
"infrun: proceed (addr=%s, signal=%d, step=%d)\n",
paddress (gdbarch, addr), siggnal, step);
/* We're handling a live event, so make sure we're doing live
debugging. If we're looking at traceframes while the target is
running, we're going to need to get back to that mode after
handling the event. */
if (non_stop)
{
make_cleanup_restore_current_traceframe ();
set_traceframe_number (-1);
}
if (non_stop)
/* In non-stop, each thread is handled individually. The context
must already be set to the right thread here. */