7c79a27b955432dfd3ad9439640f0af2eccf37b8 |
|
08-May-2013 |
Jim Ingham <jingham@apple.com> |
Figure out the reply to "PlanExplainsStop" once when we stop and then use the cached value. This fixes problems, for instance, with the StepRange plans, where they know that they explained the stop because they were at their "run to here" breakpoint, then deleted that breakpoint, so when they got asked again, doh! I had done this for a couple of plans in an ad hoc fashion, this just formalizes it. Also add a "ResumeRequested" in Process so that the code in the completion handlers can tell the ShouldStop logic they want to resume rather than just directly resuming. That allows us to handle resuming in a more controlled fashion. Also, SetPublicState can take a "restarted" flag, so that it doesn't drop the run lock when the target was immediately restarted. --This line, and those below , will be ignored-- M test/lang/objc/objc-dynamic-value/TestObjCDynamicValue.py M include/lldb/Target/ThreadList.h M include/lldb/Target/ThreadPlanStepOut.h M include/lldb/Target/Thread.h M include/lldb/Target/ThreadPlanBase.h M include/lldb/Target/ThreadPlanStepThrough.h M include/lldb/Target/ThreadPlanStepInstruction.h M include/lldb/Target/ThreadPlanStepInRange.h M include/lldb/Target/ThreadPlanStepOverBreakpoint.h M include/lldb/Target/ThreadPlanStepUntil.h M include/lldb/Target/StopInfo.h M include/lldb/Target/Process.h M include/lldb/Target/ThreadPlanRunToAddress.h M include/lldb/Target/ThreadPlan.h M include/lldb/Target/ThreadPlanCallFunction.h M include/lldb/Target/ThreadPlanStepOverRange.h M source/Plugins/LanguageRuntime/ObjC/AppleObjCRuntime/AppleThreadPlanStepThroughObjCTrampoline.h M source/Plugins/LanguageRuntime/ObjC/AppleObjCRuntime/AppleThreadPlanStepThroughObjCTrampoline.cpp M source/Target/StopInfo.cpp M source/Target/Process.cpp M source/Target/ThreadPlanRunToAddress.cpp M source/Target/ThreadPlan.cpp M source/Target/ThreadPlanCallFunction.cpp M source/Target/ThreadPlanStepOverRange.cpp M source/Target/ThreadList.cpp M source/Target/ThreadPlanStepOut.cpp M source/Target/Thread.cpp M source/Target/ThreadPlanBase.cpp M source/Target/ThreadPlanStepThrough.cpp M source/Target/ThreadPlanStepInstruction.cpp M source/Target/ThreadPlanStepInRange.cpp M source/Target/ThreadPlanStepOverBreakpoint.cpp M source/Target/ThreadPlanStepUntil.cpp M lldb.xcodeproj/xcshareddata/xcschemes/Run Testsuite.xcscheme git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@181381 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/include/lldb/Target/StopInfo.h
|
a46013bde54626b68cd2013b108f73a205f4b29a |
|
01-May-2013 |
Greg Clayton <gclayton@apple.com> |
<rdar://problem/13700260> <rdar://problem/13723772> Modified the lldb_private::Thread to work much better with the OperatingSystem plug-ins. Operating system plug-ins can now return have a "core" key/value pair in each thread dictionary for the OperatingSystemPython plug-ins which allows the core threads to be contained with memory threads. It also allows these memory threads to be stepped, resumed, and controlled just as if they were the actual backing threads themselves. A few things are introduced: - lldb_private::Thread now has a GetProtocolID() method which returns the thread protocol ID for a given thread. The protocol ID (Thread::GetProtocolID()) is usually the same as the thread id (Thread::GetID()), but it can differ when a memory thread has its own id, but is backed by an actual API thread. - Cleaned up the Thread::WillResume() code to do the mandatory parts in Thread::ShouldResume(), and let the thread subclasses override the Thread::WillResume() which is now just a notification. - Cleaned up ClearStackFrames() implementations so that fewer thread subclasses needed to override them - Changed the POSIXThread class a bit since it overrode Thread::WillResume(). It is doing the wrong thing by calling "Thread::SetResumeState()" on its own, this shouldn't be done by thread subclasses, but the current code might rely on it so I left it in with a TODO comment with an explanation. git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@180886 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/include/lldb/Target/StopInfo.h
|
8a1e6542c5b125613ffce3039aa713ee6ea07dcf |
|
30-Apr-2013 |
Greg Clayton <gclayton@apple.com> |
lldb_private::StopInfo now holds onto a ThreadWP (a std::weak_ptr<lldb_private::Thread>) in case the thread goes away while the stop info still exists. git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@180749 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/include/lldb/Target/StopInfo.h
|
89e248f04ecb87d0df4a4b96158c3fac0a3e43c7 |
|
09-Feb-2013 |
Jim Ingham <jingham@apple.com> |
Reworked the way Process::RunThreadPlan and the ThreadPlanCallFunction interoperate to fix problems where hitting auto-continue signals while running a thread plan would cause us to lose control of the debug session. <rdar://problem/12993641> git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@174793 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/include/lldb/Target/StopInfo.h
|
0bce9a22354df3f00e68ffd912119a0741753b7f |
|
05-Dec-2012 |
Greg Clayton <gclayton@apple.com> |
<rdar://problem/12649160> Added the ability to debug through your process exec'ing itself to the same architecture. git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@169340 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/include/lldb/Target/StopInfo.h
|
2d05dc6dc93ebe03e406ab93efeb420fa18fa25a |
|
29-Nov-2012 |
Daniel Malea <daniel.malea@intel.com> |
Add 'class' keyword to friend definition (to fix gcc 4.6 build) git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@168827 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/include/lldb/Target/StopInfo.h
|
79f7143ebc923d1eaf62d671127a9dfe4b14a942 |
|
10-Nov-2012 |
Jim Ingham <jingham@apple.com> |
how to do it correctly. git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@167656 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/include/lldb/Target/StopInfo.h
|
7de2a3b03f37987c67f142ce328cc2484c831468 |
|
14-Jul-2012 |
Enrico Granata <egranata@apple.com> |
<rdar://problem/11782789> Changes to the watchpoint implementation on ARM so that we single-step before stopping at the WP. This is necessary because on ARM the WP triggers before the opcode is actually executed, so we would be unable to continue since we would keep hitting the WP. We work around this by disabling the WP, single stepping and then putting the WP back in place. git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@160199 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/include/lldb/Target/StopInfo.h
|
e787c7ea61b1d857b56a0c42a1cf7535115ecbfc |
|
20-Apr-2012 |
Jim Ingham <jingham@apple.com> |
Make sure the "synchronous breakpoint callbacks" get called before the thread plan logic gets invoked, and if they ask to continue that should short-circuit the thread plans for that thread. Also add a bit more explanation for how this machinery is supposed to work. Also pass eExecutionPolicyOnlyWhenNeeded, not eExecutionPolicyAlways when evaluating the expression for breakpoint conditions. git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@155236 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/include/lldb/Target/StopInfo.h
|
1586d9720002e407a3a097baf302de5fa4ca9c1b |
|
17-Dec-2011 |
Jim Ingham <jingham@apple.com> |
Add the ability to capture the return value in a thread's stop info, and print it as part of the thread format output. Currently this is only done for the ThreadPlanStepOut. Add a convenience API ABI::GetReturnValueObject. Change the ValueObject::EvaluationPoint to BE an ExecutionContextScope, rather than trying to hand out one of its subsidiary object's pointers. That way this will always be good. git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@146806 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/include/lldb/Target/StopInfo.h
|
0296fe73a7cb1482226b1303a795ede00e12d677 |
|
08-Nov-2011 |
Jim Ingham <jingham@apple.com> |
Do a better job of detecting when a breakpoint command has set the target running again (except you have to ignore cases where the breakpoint runs expressions, those don't count as really "running again"). git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@144064 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/include/lldb/Target/StopInfo.h
|
043f8c230739ceab194257a617731ecd28e1a912 |
|
22-Sep-2011 |
Johnny Chen <johnny.chen@apple.com> |
StopInfoWatchpoint should override the StopInfo::ShouldStop() virtual method and delegate to the WatchpointLocation object to check whether it should stop and allow it to update the hit count, among other bookkeepings. git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@140279 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/include/lldb/Target/StopInfo.h
|
21f37ad875d4f50d1b4b3d307e120f6d27103730 |
|
09-Aug-2011 |
Jim Ingham <jingham@apple.com> |
Move the handling of breakpoint conditions from the Private event loop to the StopInfoBreakpoint::DoActions, which happens as the event is removed. Also use the return value of asynchronous breakpoint callbacks, they get checked before, and override the breakpoint conditions. Added ProcessModInfo class, to unify "stop_id generation" and "memory modification generation", and use where needed. git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@137102 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/include/lldb/Target/StopInfo.h
|
6561155acc9dee660de73e4aa8215839a06f01a7 |
|
04-Jun-2011 |
Greg Clayton <gclayton@apple.com> |
Created a std::string in the base StopInfo class for the description and cleaned up all base classes that had their own copy. Added a SetDescription accessor to the StopInfo class. git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@132615 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/include/lldb/Target/StopInfo.h
|
b344843f75ef893762c93fd0a22d2d45712ce74d |
|
24-Mar-2011 |
Greg Clayton <gclayton@apple.com> |
Fixed the LLDB build so that we can have private types, private enums and public types and public enums. This was done to keep the SWIG stuff from parsing all sorts of enums and types that weren't needed, and allows us to abstract our API better. git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@128239 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/include/lldb/Target/StopInfo.h
|
15dcb7ca49b8d8f46910cf085b4c249aac5317fa |
|
20-Jan-2011 |
Jim Ingham <jingham@apple.com> |
Back up both the register AND the stop state when calling functions. Set the thread state to "bland" before calling functions so they don't inherit the pending signals and die. git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@123869 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/include/lldb/Target/StopInfo.h
|
988ddbcdc1a7f362968a1e3bfcd7fda39e7345ee |
|
26-Oct-2010 |
Jim Ingham <jingham@apple.com> |
The call function thread plan should allow internal breakpoints to continue on. Also made stopping in mid-expression evaluation when we hit a breakpoint/signal work. git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@117341 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/include/lldb/Target/StopInfo.h
|
d168690e51f9020b926d3d0d57dc9a2cfb2095a8 |
|
15-Oct-2010 |
Jim Ingham <jingham@apple.com> |
Added support for breakpoint conditions. I also had to separate the "run the expression" part of ClangFunction::Execute from the "Gather the expression result" so that in the case of the Breakpoint condition I can move the condition evaluation into the normal thread plan processing. Also added support for remembering the "last set breakpoint" so that "break modify" will act on the last set breakpoint. git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@116542 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/include/lldb/Target/StopInfo.h
|
6fb8baa66796cdb23f337dd03272bf15d97fdab9 |
|
10-Aug-2010 |
Jim Ingham <jingham@apple.com> |
Make breakpoint commands work again. Added a PerformAction to the stop info - actions are run when the stop event is pulled from the event queue. Then made the StopInfoBreakpoint's PerformAction do the breakpoint command. Also fixed the StopInfoBreakpoint's GetDescription so it gets the breakpoint location info, not the breakpoint site info. git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@110637 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/include/lldb/Target/StopInfo.h
|
643ee7301b5d4b05c321d906bc0d7ff11f571295 |
|
04-Aug-2010 |
Greg Clayton <gclayton@apple.com> |
Abtracted the old "lldb_private::Thread::StopInfo" into an abtract class. This will allow debugger plug-ins to make any instance of "lldb_private::StopInfo" that can completely describe any stop reason. It also provides a framework for doing intelligent things with the stop info at important times in the lifetime of the inferior. Examples include the signal stop info in StopInfoUnixSignal. It will check with the process to see that the current action is for the signal. These actions include wether to stop for the signal, wether the notify that the signal was hit, and wether to pass the signal along to the inferior process. The StopInfoUnixSignal class overrides the "ShouldStop()" method of StopInfo and this allows the stop info to determine if it should stop at the signal or continue the process. StopInfo subclasses must override the following functions: virtual lldb::StopReason GetStopReason () const = 0; virtual const char * GetDescription () = 0; StopInfo subclasses can override the following functions: // If the subclass returns "false", the inferior will resume. The default // version of this function returns "true" which means the default stop // info will stop the process. The breakpoint subclass will check if // the breakpoint wants us to stop by calling any installed callback on // the breakpoint, and also checking if the breakpoint is for the current // thread. Signals will check if they should stop based off of the // UnixSignal settings in the process. virtual bool ShouldStop (Event *event_ptr); // Sublasses can state if they want to notify the debugger when "ShouldStop" // returns false. This would be handy for breakpoints where you want to // log information and continue and is also used by the signal stop info // to notify that a signal was received (after it checks with the process // signal settings). virtual bool ShouldNotify (Event *event_ptr) { return false; } // Allow subclasses to do something intelligent right before we resume. // The signal class will figure out if the signal should be propagated // to the inferior process and pass that along to the debugger plug-ins. virtual void WillResume (lldb::StateType resume_state) { // By default, don't do anything } The support the Mach exceptions was moved into the lldb/source/Plugins/Process/Utility folder and now doesn't polute the lldb_private::Thread class with platform specific code. git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@110184 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/include/lldb/Target/StopInfo.h
|