Skip to content
Browse files

Thread now also tracks the address of the last executed function.

  • Loading branch information...
1 parent cf2e209 commit bdbbc10b44c078b1738588d1a1b62ed1325dcd96 @anevilyak anevilyak committed
Showing with 10 additions and 2 deletions.
  1. +4 −1 src/apps/debugger/model/Thread.cpp
  2. +6 −1 src/apps/debugger/model/Thread.h
View
5 src/apps/debugger/model/Thread.cpp
@@ -18,6 +18,7 @@ Thread::Thread(Team* team, thread_id threadID)
fID(threadID),
fState(THREAD_STATE_UNKNOWN),
fExecutedSubroutine(false),
+ fSubroutineAddress(0),
fStoppedReason(THREAD_STOPPED_UNKNOWN),
fCpuState(NULL),
fStackTrace(NULL)
@@ -70,6 +71,7 @@ Thread::SetState(uint32 state, uint32 reason, const BString& info)
SetCpuState(NULL);
SetStackTrace(NULL);
fExecutedSubroutine = false;
+ fSubroutineAddress = 0;
}
fTeam->NotifyThreadStateChanged(this);
@@ -113,8 +115,9 @@ Thread::SetStackTrace(StackTrace* trace)
void
-Thread::SetExecutedSubroutine()
+Thread::SetExecutedSubroutine(target_addr_t address)
{
fExecutedSubroutine = true;
+ fSubroutineAddress = address;
}
View
7 src/apps/debugger/model/Thread.h
@@ -11,6 +11,8 @@
#include <Referenceable.h>
#include <util/DoublyLinkedList.h>
+#include "types/Types.h"
+
class CpuState;
class StackTrace;
@@ -69,7 +71,9 @@ class Thread : public BReferenceable, public DoublyLinkedListLinkImpl<Thread> {
bool ExecutedSubroutine() const
{ return fExecutedSubroutine; }
- void SetExecutedSubroutine();
+ target_addr_t SubroutineAddress() const
+ { return fSubroutineAddress; }
+ void SetExecutedSubroutine(target_addr_t address);
private:
Team* fTeam;
@@ -77,6 +81,7 @@ class Thread : public BReferenceable, public DoublyLinkedListLinkImpl<Thread> {
BString fName;
uint32 fState;
bool fExecutedSubroutine;
+ target_addr_t fSubroutineAddress;
uint32 fStoppedReason;
BString fStoppedReasonInfo;
CpuState* fCpuState;

0 comments on commit bdbbc10

Please sign in to comment.
Something went wrong with that request. Please try again.