- Aug 26, 2010
-
-
Johnny Chen authored
with the only exception of launching the process from SBTarget which is under investigation. o build-swig-Python.sh should also checks the timestamp of ${swig_input_file} for update eligibility. Also, once an update is in order, there's no need to check the remaining header files for timestamps. o Coaches swig to treat StopReason as an int type, instead of a C++ class. llvm-svn: 112210
-
Greg Clayton authored
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. llvm-svn: 112152
-
Johnny Chen authored
llvm-svn: 112103
-
Johnny Chen authored
o SBDebugger.GetCurrentTarget() o SBTarget.GetProcess() o SBProcess.GetAddressByteSize() in order to make sure that, indeed, 64-bit, followed by 32-bit processes have been launched. Added invoke() method to TestBase to factor in the tracing logic in one place. This method allows an object to call a method with no arg reflectively. llvm-svn: 112102
-
- Aug 25, 2010
-
-
Johnny Chen authored
there's no point matching further sub strings; the expect() already fails. Also cleaned up the assert message for VARIABLES_DISPLAYED_CORRECTLY. llvm-svn: 112074
-
Johnny Chen authored
mechanism seems to work fine on my MacBook Pro in some limited test cases. The default maxLaunchCount and timeWait variables used in the scheme can be overridden by the env variables LLDB_MAX_LAUNCH_COUNT and LLDB_TIME_WAIT. llvm-svn: 112071
-
Greg Clayton authored
subclassing it anywhere. llvm-svn: 112010
-
Greg Clayton authored
contains the entire stack backtrace. llvm-svn: 112009
-
Greg Clayton authored
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. llvm-svn: 112007
-
Johnny Chen authored
llvm-svn: 112000
-
Johnny Chen authored
correctly after all. It was my own configuration error (I was building x86_64 only). llvm-svn: 111992
-
Greg Clayton authored
has inlined functions that all started at the same address, then the inlined backtrace would not produce correct stack frames. Also cleaned up and inlined a lot of stuff in lldb_private::Address. Added a function to StackFrame to detect if the frame is a concrete frame so we can detect the difference between actual frames and inlined frames. llvm-svn: 111989
-
Johnny Chen authored
currently fails: rdar://problem/8349784. Forgot to check in lldbtest.py in the previous commit r111958. llvm-svn: 111975
-
- Aug 24, 2010
-
-
Greg Clayton authored
complex inlined examples. StackFrame classes don't have a "GetPC" anymore, they have "GetFrameCodeAddress()". This is because inlined frames will have a PC value that is the same as the concrete frame that owns the inlined frame, yet the code locations for the frame can be different. We also need to be able to get the real PC value for a given frame so that variables evaluate correctly. To get the actual PC value for a frame you can use: addr_t pc = frame->GetRegisterContext()->GetPC(); Some issues with the StackFrame stomping on its own symbol context were resolved which were causing the information to change for a frame when the stack ID was calculated. Also the StackFrame will now correctly store the symbol context resolve flags for any extra bits of information that were looked up (if you ask for a block only and you find one, you will alwasy have the compile unit and function). llvm-svn: 111964
-
Johnny Chen authored
llvm-svn: 111961
-
Johnny Chen authored
llvm-svn: 111960
-
Johnny Chen authored
llvm-svn: 111958
-
Johnny Chen authored
llvm-svn: 111939
-
Johnny Chen authored
llvm-svn: 111938
-
rdar://problem/8348251Johnny Chen authored
"variable list bits" display bits variable correctly, but not "variable list". llvm-svn: 111937
-
Johnny Chen authored
llvm-svn: 111928
-
Johnny Chen authored
llvm-svn: 111920
-
Greg Clayton authored
llvm-svn: 111891
-
Greg Clayton authored
which is now on by default. Frames are gotten from the unwinder as concrete frames, then if inline frames are to be shown, extra information to track and reconstruct these frames is cached with each Thread and exanded as needed. I added an inline height as part of the lldb_private::StackID class, the class that helps us uniquely identify stack frames. This allows for two frames to shared the same call frame address, yet differ only in inline height. Fixed setting breakpoint by address to not require addresses to resolve. A quick example: % cat main.cpp % ./build/Debug/lldb test/stl/a.out Current executable set to 'test/stl/a.out' (x86_64). (lldb) breakpoint set --address 0x0000000100000d31 Breakpoint created: 1: address = 0x0000000100000d31, locations = 1 (lldb) r Launching 'a.out' (x86_64) (lldb) Process 38031 Stopped * thread #1: tid = 0x2e03, pc = 0x0000000100000d31, where = a.out`main [inlined] std::string::_M_data() const at /usr/include/c++/4.2.1/bits/basic_string.h:280, stop reason = breakpoint 1.1, queue = com.apple.main-thread 277 278 _CharT* 279 _M_data() const 280 -> { return _M_dataplus._M_p; } 281 282 _CharT* 283 _M_data(_CharT* __p) (lldb) bt thread #1: tid = 0x2e03, stop reason = breakpoint 1.1, queue = com.apple.main-thread frame #0: pc = 0x0000000100000d31, where = a.out`main [inlined] std::string::_M_data() const at /usr/include/c++/4.2.1/bits/basic_string.h:280 frame #1: pc = 0x0000000100000d31, where = a.out`main [inlined] std::string::_M_rep() const at /usr/include/c++/4.2.1/bits/basic_string.h:288 frame #2: pc = 0x0000000100000d31, where = a.out`main [inlined] std::string::size() const at /usr/include/c++/4.2.1/bits/basic_string.h:606 frame #3: pc = 0x0000000100000d31, where = a.out`main [inlined] operator<< <char, std::char_traits<char>, std::allocator<char> > at /usr/include/c++/4.2.1/bits/basic_string.h:2414 frame #4: pc = 0x0000000100000d31, where = a.out`main + 33 at /Volumes/work/gclayton/Documents/src/lldb/test/stl/main.cpp:14 frame #5: pc = 0x0000000100000d08, where = a.out`start + 52 Each inline frame contains only the variables that they contain and each inlined stack frame is treated as a single entity. llvm-svn: 111877
-
Johnny Chen authored
which hosts the Makefile.rules and modified most of the Makefiles under each test case directories to utilize Mekefile.rules. Added a description of 'make' directory into README-TestSuite file. llvm-svn: 111868
-
Sean Callanan authored
ClangExpressionVariables for found external variables as well as for struct members, replacing the Tuple and StructMember data structures. llvm-svn: 111859
-
- Aug 23, 2010
-
-
Johnny Chen authored
thread name but the static map instance had already been destructed. rdar://problem/8153284 llvm-svn: 111812
-
Johnny Chen authored
which, defaults to False, and if set to True, will trace lldb command execution and result. Added "-t" command option to the test driver dotest.py which sets the LLDB_COMMAND_TRACE environment variable to "YES" and as a result always turns on command tracing regardless of the 'trace' keyword argument to runCmd()/expect(). llvm-svn: 111811
-
- Aug 21, 2010
-
-
Greg Clayton authored
for Debug builds. I accidentally checked this in with my last round of changes. llvm-svn: 111743
-
Greg Clayton authored
to spawn a thread for each process that is being monitored. Previously LLDB would spawn a single thread that would wait for any child process which isn't ok to do as a shared library (LLDB.framework on Mac OSX, or lldb.so on linux). The old single thread used to call wait4() with a pid of -1 which could cause it to reap child processes that it shouldn't have. Re-wrote the way Function blocks are handles. Previously I attempted to keep all blocks in a single memory allocation (in a std::vector). This made the code somewhat efficient, but hard to work with. I got rid of the old BlockList class, and went to a straight parent with children relationship. This new approach will allow for partial parsing of the blocks within a function. llvm-svn: 111706
-
- Aug 20, 2010
-
-
Johnny Chen authored
And converted the rest of the test cases to runCmd()/expect(). llvm-svn: 111677
-
Johnny Chen authored
llvm-svn: 111671
-
Johnny Chen authored
llvm-svn: 111666
-
Johnny Chen authored
llvm-svn: 111658
-
Johnny Chen authored
llvm-svn: 111652
-
Jim Ingham authored
Added "source list -n" so you can list by symbol name. Moved "--count" from "-n" to "-c". Added a -s option so you can restrict the source listing to a particular shared library. llvm-svn: 111608
-
Jim Ingham authored
llvm-svn: 111607
-
Jim Ingham authored
Add methods to Function to get the first and last source lines of the function, and to get whether this Function is an inlined instance or not. llvm-svn: 111606
-
Jim Ingham authored
Remove redundant call to ParseCompileUnitLineTable. The call to sc.comp_unit->GetLineTable() will parse the line table if it hasn't been read in. llvm-svn: 111605
-
Sean Callanan authored
expression parser. There shouldn't be four separate classes encapsulating a variable. ClangExpressionVariable is now meant to be the container for all variable information. It has several optional components that hold data for different subsystems. ClangPersistentVariable has been removed; we now use ClangExpressionVariable instead. llvm-svn: 111600
-