| #
5160ce5c |
| 27-Mar-2013 |
Greg Clayton <[email protected]> |
<rdar://problem/13521159>
LLDB is crashing when logging is enabled from lldb-perf-clang. This has to do with the global destructor chain as the process and its threads are being torn down.
All logg
<rdar://problem/13521159>
LLDB is crashing when logging is enabled from lldb-perf-clang. This has to do with the global destructor chain as the process and its threads are being torn down.
All logging channels now make one and only one instance that is kept in a global pointer which is never freed. This guarantees that logging can correctly continue as the process tears itself down.
llvm-svn: 178191
show more ...
|
| #
cf2667c4 |
| 14-Mar-2013 |
Jim Ingham <[email protected]> |
Log the match substring as well in the case where we match the step-avoid regexp.
llvm-svn: 177119
|
| #
3101ba33 |
| 14-Mar-2013 |
Jim Ingham <[email protected]> |
Add some logging to track cases where “step-in” steps out due to the avoid-regexp and the step-in target.
llvm-svn: 177117
|
| #
0161b49c |
| 09-Feb-2013 |
Jim Ingham <[email protected]> |
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 t
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>
llvm-svn: 174793
show more ...
|
| #
f85defae |
| 20-Dec-2012 |
Andrew Kaylor <[email protected]> |
Adding eStopReasonThreadExiting and fixing the handling of this state on Linux.
llvm-svn: 170800
|
|
Revision tags: llvmorg-3.2.0 |
|
| #
c627682e |
| 12-Dec-2012 |
Jim Ingham <[email protected]> |
Fixed a few bugs in the "step in" thread plan logic. Added a "step-in-target" flag to "thread step-in" so if you have something like:
Process 28464 stopped * thread #1: tid = 0x1c03, function: main
Fixed a few bugs in the "step in" thread plan logic. Added a "step-in-target" flag to "thread step-in" so if you have something like:
Process 28464 stopped * thread #1: tid = 0x1c03, function: main , stop reason = breakpoint 1.1 frame #0: 0x0000000100000e08 a.out`main at main.c:62 61 -> 62 int A6 = complex (a(4), b(5), c(6)); // Stop here to step targetting b and hitting breakpoint. 63
and you want to get into "complex" skipping a, b and c, you can do:
(lldb) step -t complex Process 28464 stopped * thread #1: tid = 0x1c03, function: complex , stop reason = step in frame #0: 0x0000000100000d0d a.out`complex at main.c:44 41 42 int complex (int first, int second, int third) 43 { -> 44 return first + second + third; // Step in targetting complex should stop here 45 } 46 47 int main (int argc, char const *argv[])
llvm-svn: 170008
show more ...
|
|
Revision tags: llvmorg-3.2.0-rc3 |
|
| #
90ba8115 |
| 05-Dec-2012 |
Greg Clayton <[email protected]> |
<rdar://problem/12649160>
Added the ability to debug through your process exec'ing itself to the same architecture.
llvm-svn: 169340
|
|
Revision tags: llvmorg-3.2.0-rc2, llvmorg-3.2.0-rc1 |
|
| #
4a58e968 |
| 25-Oct-2012 |
Jim Ingham <[email protected]> |
Found a couple more places where we need to run all threads when stepping.
llvm-svn: 166732
|
| #
f02a2e96 |
| 07-Sep-2012 |
Jim Ingham <[email protected]> |
Ensure that the ShouldStopHere plans get called even when doing "virtual" steps.
llvm-svn: 163366
|
| #
513c6bb8 |
| 01-Sep-2012 |
Jim Ingham <[email protected]> |
Initial check-in of "fancy" inlined stepping. Doesn't do anything useful unless you switch LLDB_FANCY_INLINED_STEPPING to true. With that on, basic inlined stepping works, including step-over of in
Initial check-in of "fancy" inlined stepping. Doesn't do anything useful unless you switch LLDB_FANCY_INLINED_STEPPING to true. With that on, basic inlined stepping works, including step-over of inlined functions. But for some as yet mysterious reason i386 debugging gets an assert and dies immediately. So for now its off.
llvm-svn: 163044
show more ...
|
| #
67cc0636 |
| 22-Aug-2012 |
Greg Clayton <[email protected]> |
Reimplemented the code that backed the "settings" in lldb. There were many issues with the previous implementation: - no setting auto completion - very manual and error prone way of getting/setting v
Reimplemented the code that backed the "settings" in lldb. There were many issues with the previous implementation: - no setting auto completion - very manual and error prone way of getting/setting variables - tons of code duplication - useless instance names for processes, threads
Now settings can easily be defined like option values. The new settings makes use of the "OptionValue" classes so we can re-use the option value code that we use to set settings in command options. No more instances, just "does the right thing".
llvm-svn: 162366
show more ...
|
| #
4592cbc4 |
| 13-Jul-2012 |
Greg Clayton <[email protected]> |
Make the setting for "target.process.thread.step-avoid-regexp" work for inlined functions, not just concrete top level functions.
llvm-svn: 160151
|
|
Revision tags: llvmorg-3.1.0 |
|
| #
18de2fdc |
| 10-May-2012 |
Jim Ingham <[email protected]> |
If the ObjC Step Through Trampoline plan causes a target crash, properly propagate the error back to the controlling plans so that they don't lose control.
Also change "ThreadPlanStepThrough" to tak
If the ObjC Step Through Trampoline plan causes a target crash, properly propagate the error back to the controlling plans so that they don't lose control.
Also change "ThreadPlanStepThrough" to take the return StackID for its backstop breakpoint as an argument to the constructor rather than having it try to figure it out itself, since it might get it wrong whereas the caller always knows where it is coming from.
rdar://problem/11402287
llvm-svn: 156529
show more ...
|
|
Revision tags: llvmorg-3.1.0-rc3, llvmorg-3.1.0-rc2 |
|
| #
fbbfe6ec |
| 01-May-2012 |
Jim Ingham <[email protected]> |
Fix reporting of stop reasons when the StepOver & StepIn plans stop because of a crash or breakpoint. Added the ability for a plan to say it is done but doesn't want to be the reason for the stop.
Fix reporting of stop reasons when the StepOver & StepIn plans stop because of a crash or breakpoint. Added the ability for a plan to say it is done but doesn't want to be the reason for the stop.
llvm-svn: 155927
show more ...
|
|
Revision tags: llvmorg-3.1.0-rc1 |
|
| #
564d8bc2 |
| 09-Mar-2012 |
Jim Ingham <[email protected]> |
First stage of implementing step by "run to next branch". Doesn't work yet, is turned off. <rdar://problem/10975912>
llvm-svn: 152376
|
| #
e7612134 |
| 07-Mar-2012 |
Greg Clayton <[email protected]> |
<rdar://problem/10997402>
This fix really needed to happen as a previous fix I had submitted for calculating symbol sizes made many symbols appear to have zero size since the function that was calcu
<rdar://problem/10997402>
This fix really needed to happen as a previous fix I had submitted for calculating symbol sizes made many symbols appear to have zero size since the function that was calculating the symbol size was calling another function that would cause the calculation to happen again. This resulted in some symbols having zero size when they shouldn't. This could then cause infinite stack traces and many other side affects.
llvm-svn: 152244
show more ...
|
| #
b5c0d1cc |
| 01-Mar-2012 |
Jim Ingham <[email protected]> |
Convert the thread plans over from using the stack count to do their logic to using StackID's. This should be more efficient.
llvm-svn: 151780
|
| #
1ac04c30 |
| 21-Feb-2012 |
Greg Clayton <[email protected]> |
Thread hardening part 3. Now lldb_private::Thread objects have std::weak_ptr objects for the backlink to the lldb_private::Process. The issues we were running into before was someone was holding onto
Thread hardening part 3. Now lldb_private::Thread objects have std::weak_ptr objects for the backlink to the lldb_private::Process. The issues we were running into before was someone was holding onto a shared pointer to a lldb_private::Thread for too long, and the lldb_private::Process parent object would get destroyed and the lldb_private::Thread had a "Process &m_process" member which would just treat whatever memory that used to be a Process as a valid Process. This was mostly happening for lldb_private::StackFrame objects that had a member like "Thread &m_thread". So this completes the internal strong/weak changes.
Documented the ExecutionContext and ExecutionContextRef classes so that our LLDB developers can understand when and where to use ExecutionContext and ExecutionContextRef objects.
llvm-svn: 151009
show more ...
|
| #
d9e416c0 |
| 18-Feb-2012 |
Greg Clayton <[email protected]> |
The second part in thread hardening the internals of LLDB where we make the lldb_private::StackFrame objects hold onto a weak pointer to the thread object. The lldb_private::StackFrame objects the th
The second part in thread hardening the internals of LLDB where we make the lldb_private::StackFrame objects hold onto a weak pointer to the thread object. The lldb_private::StackFrame objects the the most volatile objects we have as when we are doing single stepping, frames can often get lost or thrown away, only to be re-created as another object that still refers to the same frame. We have another bug tracking that. But we need to be able to have frames no longer be able to get the thread when they are not part of a thread anymore, and this is the first step (this fix makes that possible but doesn't implement it yet).
Also changed lldb_private::ExecutionContextScope to return shared pointers to all objects in the execution context to further thread harden the internals.
llvm-svn: 150871
show more ...
|
| #
25f66700 |
| 03-Dec-2011 |
Jim Ingham <[email protected]> |
Make the ThreadPlanStepThrough set a backstop breakpoint on the return address from the function it is being asked to step through, so that even if we get the trampoline target wrong (for instance) w
Make the ThreadPlanStepThrough set a backstop breakpoint on the return address from the function it is being asked to step through, so that even if we get the trampoline target wrong (for instance) we will still not lose control.
The other fix here is to tighten up the handling of the case where the current plan doesn't explain the stop, but a plan above us does. In that case, if the plan that does explain the stop says it is done, we need to clean up the plans below it and continue on with our processing.
llvm-svn: 145740
show more ...
|
|
Revision tags: llvmorg-3.0.0, llvmorg-3.0.0-rc4, llvmorg-3.0.0-rc3, llvmorg-3.0.0-rc2, llvmorg-3.0.0-rc1 |
|
| #
c4c9fedc |
| 15-Oct-2011 |
Jim Ingham <[email protected]> |
Make the step range plans capable of supporting multiple ranges. Also make their constructors public, there isn't any good reason why you shouldn't be able to make these plans.
llvm-svn: 142026
|
|
Revision tags: llvmorg-2.9.0, llvmorg-2.9.0-rc3, llvmorg-2.9.0-rc2, llvmorg-2.9.0-rc1 |
|
| #
514487e8 |
| 15-Feb-2011 |
Greg Clayton <[email protected]> |
Made lldb_private::ArchSpec contain much more than just an architecture. It now, in addition to cpu type/subtype and architecture flavor, contains: - byte order (big endian, little endian) - address
Made lldb_private::ArchSpec contain much more than just an architecture. It now, in addition to cpu type/subtype and architecture flavor, contains: - byte order (big endian, little endian) - address size in bytes - llvm::Triple for true target triple support and for more powerful plug-in selection.
llvm-svn: 125602
show more ...
|
| #
481cef25 |
| 21-Jan-2011 |
Greg Clayton <[email protected]> |
Added support for stepping out of a frame. If you have 10 stack frames, and you select frame #3, you can then do a step out and be able to go directly to the frame above frame #3!
Added StepOverUn
Added support for stepping out of a frame. If you have 10 stack frames, and you select frame #3, you can then do a step out and be able to go directly to the frame above frame #3!
Added StepOverUntil and StepOutOfFrame to the SBThread API to allow more powerful stepping.
llvm-svn: 123970
show more ...
|
| #
2d4edfbc |
| 06-Nov-2010 |
Greg Clayton <[email protected]> |
Modified all logging calls to hand out shared pointers to make sure we don't crash if we disable logging when some code already has a copy of the logger. Prior to this fix, logs were handed out as po
Modified all logging calls to hand out shared pointers to make sure we don't crash if we disable logging when some code already has a copy of the logger. Prior to this fix, logs were handed out as pointers and if they were held onto while a log got disabled, then it could cause a crash. Now all logs are handed out as shared pointers so this problem shouldn't happen anymore. We are also using our new shared pointers that put the shared pointer count and the object into the same allocation for a tad better performance.
llvm-svn: 118319
show more ...
|
| #
5822173b |
| 05-Nov-2010 |
Jim Ingham <[email protected]> |
Handle stepping through ObjC vtable trampoline code.
llvm-svn: 118270
|