102b2c2681c9a830afe25bfea35557421905e42c |
|
19-Apr-2013 |
Greg Clayton <gclayton@apple.com> |
After discussing with Chris Lattner, we require C++11, so lets get rid of the macros and just use C++11. git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@179805 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/include/lldb/Target/StackFrameList.h
|
81a96aa6242f7b559770f5dc62316253cb8cb0d4 |
|
18-Apr-2013 |
Greg Clayton <gclayton@apple.com> |
Since we use C++11, we should switch over to using std::unique_ptr when C++11 is being used. To do this, we follow what we have done for shared pointers and we define a STD_UNIQUE_PTR macro that can be used and it will "do the right thing". Due to some API differences in std::unique_ptr and due to the fact that we need to be able to compile without C++11, we can't use move semantics so some code needed to change so that it can compile with either C++. Anyone wanting to use a unique_ptr or auto_ptr should now use the "STD_UNIQUE_PTR(TYPE)" macro. git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@179779 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/include/lldb/Target/StackFrameList.h
|
9b124c6bc79c0f650ac52d65d6366f45f30ee31d |
|
08-Sep-2012 |
Jim Ingham <jingham@apple.com> |
Add SetCurrentInlinedDepth API. In GetFramesUpTo, don't adjust the number of frames for the inlined depth if the number of frames in UINT32_MAX. git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@163432 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/include/lldb/Target/StackFrameList.h
|
0c8fa2d7dd18ae1816c82846234c45f79142e3df |
|
01-Sep-2012 |
Jim Ingham <jingham@apple.com> |
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. git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@163044 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/include/lldb/Target/StackFrameList.h
|
a7d3dc75ec4f46033c3f991f11fb58a058091a85 |
|
11-Jul-2012 |
Greg Clayton <gclayton@apple.com> |
<rdar://problem/11852100> The "stop-line-count-after" and "stop-line-count-before" settings are broken. This fixes them. git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@160071 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/include/lldb/Target/StackFrameList.h
|
bf97d74c0c3e9a0f7c89fe0cd4a059015ec482d5 |
|
29-Feb-2012 |
Jim Ingham <jingham@apple.com> |
Make the StackFrameList::GetFrameAtIndex only fetch as many stack frames as needed to get the frame requested. <rdar://problem/10943135> git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@151705 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/include/lldb/Target/StackFrameList.h
|
b4d7fc0c466d446876e5f2d701f0e574dd0be8e7 |
|
17-Feb-2012 |
Greg Clayton <gclayton@apple.com> |
This checking is part one of trying to add some threading safety to our internals. The first part of this is to use a new class: lldb_private::ExecutionContextRef This class holds onto weak pointers to the target, process, thread and frame and it also contains the thread ID and frame Stack ID in case the thread and frame objects go away and come back as new objects that represent the same logical thread/frame. ExecutionContextRef objcets have accessors to access shared pointers for the target, process, thread and frame which might return NULL if the backing object is no longer available. This allows for references to persistent program state without needing to hold a shared pointer to each object and potentially keeping that object around for longer than it needs to be. You can also "Lock" and ExecutionContextRef (which contains weak pointers) object into an ExecutionContext (which contains strong, or shared pointers) with code like ExecutionContext exe_ctx (my_obj->GetExectionContextRef().Lock()); git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@150801 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/include/lldb/Target/StackFrameList.h
|
fdf24efe672bf3fa041cdbebd2d7f406b11882bd |
|
09-Sep-2011 |
Jim Ingham <jingham@apple.com> |
Move the SourceManager from the Debugger to the Target. That way it can store the per-Target default Source File & Line. Set the default Source File & line to main (if it can be found.) at startup. Selecting the current thread & or frame resets the current source file & line, and "source list" as well as the breakpoint command "break set -l <NUM>" will use the current source file. git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@139323 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/include/lldb/Target/StackFrameList.h
|
abe0fed36d83e1c37af9dae90c2d25db742b4515 |
|
18-Apr-2011 |
Greg Clayton <gclayton@apple.com> |
Centralized a lot of the status information for processes, threads, and stack frame down in the lldb_private::Process, lldb_private::Thread, lldb_private::StackFrameList and the lldb_private::StackFrame classes. We had some command line commands that had duplicate versions of the process status output ("thread list" and "process status" for example). Removed the "file" command and placed it where it should have been: "target create". Made an alias for "file" to "target create" so we stay compatible with GDB commands. We can now have multple usable targets in lldb at the same time. This is nice for comparing two runs of a program or debugging more than one binary at the same time. The new command is "target select <target-idx>" and also to see a list of the current targets you can use the new "target list" command. The flow in a debug session can be: (lldb) target create /path/to/exe/a.out (lldb) breakpoint set --name main (lldb) run ... hit breakpoint (lldb) target create /bin/ls (lldb) run /tmp Process 36001 exited with status = 0 (0x00000000) (lldb) target list Current targets: target #0: /tmp/args/a.out ( arch=x86_64-apple-darwin, platform=localhost, pid=35999, state=stopped ) * target #1: /bin/ls ( arch=x86_64-apple-darwin, platform=localhost, pid=36001, state=exited ) (lldb) target select 0 Current targets: * target #0: /tmp/args/a.out ( arch=x86_64-apple-darwin, platform=localhost, pid=35999, state=stopped ) target #1: /bin/ls ( arch=x86_64-apple-darwin, platform=localhost, pid=36001, state=exited ) (lldb) bt * thread #1: tid = 0x2d03, 0x0000000100000b9a a.out`main + 42 at main.c:16, stop reason = breakpoint 1.1 frame #0: 0x0000000100000b9a a.out`main + 42 at main.c:16 frame #1: 0x0000000100000b64 a.out`start + 52 Above we created a target for "a.out" and ran and hit a breakpoint at "main". Then we created a new target for /bin/ls and ran it. Then we listed the targest and selected our original "a.out" program, so we showed two concurent debug sessions going on at the same time. git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@129695 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/include/lldb/Target/StackFrameList.h
|
5c4b1607e8783a3d3f1f28fa66fcaa89ac246bd1 |
|
31-Mar-2011 |
Jim Ingham <jingham@apple.com> |
Add GetFrameWithStackID to the StackFrameList and the Thread (which routes to its StackFrameList.) git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@128592 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/include/lldb/Target/StackFrameList.h
|
08d7d3ae16110aa68ed40c161eac8571aeb94cd9 |
|
06-Jan-2011 |
Greg Clayton <gclayton@apple.com> |
Fixed issues with RegisterContext classes and the subclasses. There was an issue with the way the UnwindLLDB was handing out RegisterContexts: it was making shared pointers to register contexts and then handing out just the pointers (which would get put into shared pointers in the thread and stack frame classes) and cause double free issues. MallocScribble helped to find these issues after I did some other cleanup. To help avoid any RegisterContext issue in the future, all code that deals with them now returns shared pointers to the register contexts so we don't end up with multiple deletions. Also now that the RegisterContext class doesn't require a stack frame, we patched a memory leak where a StackFrame object was being created and leaked. Made the RegisterContext class not have a pointer to a StackFrame object as one register context class can be used for N inlined stack frames so there is not a 1 - 1 mapping. Updates the ExecutionContextScope part of the RegisterContext class to never return a stack frame to indicate this when it is asked to recreate the execution context. Now register contexts point to the concrete frame using a concrete frame index. Concrete frames are all of the frames that are actually formed on the stack of a thread. These concrete frames can be turned into one or more user visible frames due to inlining. Each inlined stack frame has the exact same register context (shared via shared pointers) as any parent inlined stack frames all the way up to the concrete frame itself. So now the stack frames and the register contexts should behave much better. git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@122976 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/include/lldb/Target/StackFrameList.h
|
ccd584dccb920cdb028de69950774c3bcdc025ec |
|
23-Sep-2010 |
Jim Ingham <jingham@apple.com> |
Add GetSP to the StackFrame. git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@114674 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/include/lldb/Target/StackFrameList.h
|
5205f0b6585a127acc6ed210021abb6091220a89 |
|
03-Sep-2010 |
Greg Clayton <gclayton@apple.com> |
Fixed the StackFrame to correctly resolve the StackID's SymbolContextScope. Added extra logging for stepping. Fixed an issue where cached stack frame data could be lost between runs when the thread plans read a stack frame. git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@112973 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/include/lldb/Target/StackFrameList.h
|
1d66ef5d31a8326d5495f56b0cfbf2fd1bff67d8 |
|
27-Aug-2010 |
Greg Clayton <gclayton@apple.com> |
Simplified the StackFrameList class down to a single frames list again instead of trying to maintain the real frame list (unwind frames) and an inline frame list. The information is cheap to produce when we already have looked up a block and was making stack frame uniquing difficult when trying to use the previous stack when making the current stack. We now maintain the previous value object lists for common frames between a previous and current frames so we will be able to tell when variable values change. git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@112277 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/include/lldb/Target/StackFrameList.h
|
c833295baeec641086f536e78050388af36784f8 |
|
26-Aug-2010 |
Jim Ingham <jingham@apple.com> |
Change "Current" as in GetCurrentThread, GetCurrentStackFrame, etc, to "Selected" i.e. GetSelectedThread. Selected makes more sense, since these are set by some user action (a selection). I didn't change "CurrentProcess" since this is always controlled by the target, and a given target can only have one process, so it really can't be selected. git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@112221 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/include/lldb/Target/StackFrameList.h
|
f40e30823926f27e3cb9364f3c8fe2e4be0c7658 |
|
26-Aug-2010 |
Greg Clayton <gclayton@apple.com> |
Cleaned up the inline stack frame code one more time to prepare for inlined code stepping. Also we now store the stack frames for the current and previous stops in the thread in std::auto_ptr objects. When we create a thread stack frame list we pass the previous frame into it so it can re-use the frames and maintain will allow for variable changes to be detected. I will implement the stack frame reuse next. git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@112152 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/include/lldb/Target/StackFrameList.h
|
bcfce909e2fb66932472b19706aae002f7734550 |
|
25-Aug-2010 |
Greg Clayton <gclayton@apple.com> |
The destructor for StackFrameList doesn't need to be virtual as we aren't subclassing it anywhere. git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@112010 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/include/lldb/Target/StackFrameList.h
|
a92d893af2b1790a40fbbd0c237671ab3010345c |
|
25-Aug-2010 |
Greg Clayton <gclayton@apple.com> |
Thread no longer needs to be a friend in StackFrameList now that StackFrameList contains the entire stack backtrace. git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@112009 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/include/lldb/Target/StackFrameList.h
|
782b9ccd9f2b290585cd6bb4c1f0cc6cb7e22e15 |
|
25-Aug-2010 |
Greg Clayton <gclayton@apple.com> |
Cleaned up the inline backtrace code even more by moving all stack backtracing functionality into StackFrameList. This will allow us to copy the previous stack backtrace from the previous stop into another variable so we can re-use as much as possible from the previous stack backtrace. git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@112007 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/include/lldb/Target/StackFrameList.h
|
24943d2ee8bfaa7cf5893e4709143924157a5c1e |
|
08-Jun-2010 |
Chris Lattner <sabre@nondot.org> |
Initial checkin of lldb code from internal Apple repo. git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@105619 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/include/lldb/Target/StackFrameList.h
|