diff options
author | Gabe Black <gblack@eecs.umich.edu> | 2009-07-29 00:14:43 -0700 |
---|---|---|
committer | Gabe Black <gblack@eecs.umich.edu> | 2009-07-29 00:14:43 -0700 |
commit | 873112ea9924074212f1dd667d345850c6dce789 (patch) | |
tree | 7349e44b5e6a8faf30a49fcfce56ca59a714ddf7 /src/arch/arm/nativetrace.cc | |
parent | 0a9eb59e6f8be32939c6a267e67943ef50b8ba83 (diff) | |
download | gem5-873112ea9924074212f1dd667d345850c6dce789.tar.xz |
ARM: Make sure the target process doesn't run away from statetrace.
Diffstat (limited to 'src/arch/arm/nativetrace.cc')
-rw-r--r-- | src/arch/arm/nativetrace.cc | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/src/arch/arm/nativetrace.cc b/src/arch/arm/nativetrace.cc index 7c9c70e0c..90c5e5c25 100644 --- a/src/arch/arm/nativetrace.cc +++ b/src/arch/arm/nativetrace.cc @@ -104,8 +104,13 @@ Trace::ArmNativeTrace::ThreadState::update(ThreadContext *tc) void Trace::ArmNativeTrace::check(NativeTraceRecord *record) { + ThreadContext *tc = record->getThread(); + // This area is read only on the target. It can't stop there to tell us + // what's going on, so we should skip over anything there also. + if (tc->readNextPC() > 0xffff0000) + return; nState.update(this); - mState.update(record->getThread()); + mState.update(tc); bool errorFound = false; // Regular int regs |