Played around with TK UI a bit this weekend.

If you "command script import" this file, then you will have two new commands:

(lldb) tk-variables
(lldb) tk-process

Not sure how this will work on all other systems, but on MacOSX, you will get a window with a tree view that allows you to inspect your local variables by expanding variables to see the child values.

The "tk-process" allows you to inspect the currently selected process by expanding the process to see the threads, the threads to see the frames, and the frames to see the variables. Very handy if you want to view variables for all frames simultaneously.



git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@218279 91177308-0d34-0410-b5e6-96231b3b80d8
ConnectionFileDescriptor::Connect()'s handling of the "fd://" method
was broken in r214984 by the addition of an unconditional error
return at the start of the code block handling this method.  Remove
the errant lines.
<rdar://problem/18416691> 


git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@218291 91177308-0d34-0410-b5e6-96231b3b80d8
android: add a command script to help display mixed Java/native backtraces.

This script supports displaying developer-focused backtraces when working
with mixed Java and C/C++ stack frames within lldb.  On Android, this represents
just about every app, since all apps start in Java code.

The script currently supports the Art JVM when run on host-side x86_64 and x86,
but does require a patch not yet accepted in AOSP:
AOSP patch: https://android-review.googlesource.com/#/c/106523/

The backtraces will hide Art VM machinery for interpreted and AOT code
and display the Java file/line numbers for Java code, while displaying
native backtrace info for native frames.  Effectively the developer will
get an app-centric view of the call stack.

This script is not yet tested on device-side Art nor is it tested on
any architecture other than x86_64 or x86 32-bit.  Several changes were
needed on the AOSP side to enable it to work properly for x86_64 and x86, 
so it is quite likely we'll need to do something similar for other cpu
architectures as well.

Change by Tong Shen


git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@218315 91177308-0d34-0410-b5e6-96231b3b80d8
Add ASan history threads into process_sp->GetExtendedThreadList, so they don't get freed too early

Reviewed at http://reviews.llvm.org/D5452



git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@218323 91177308-0d34-0410-b5e6-96231b3b80d8
Fix up the HostThread interface, making the interface simpler.

Reviewed by: Greg Clayton
Differential Revision: http://reviews.llvm.org/D5417

git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@218325 91177308-0d34-0410-b5e6-96231b3b80d8
Adjust to LLVM JIT API change

Those wrapper functions seems not used by lldb... Removed

Reference for

replacing JITMemoryManager with SectionMemoryManager
replacing "llvm::JITMemoryManager::CreateDefaultMemManager()" with "new llvm::SectionMemoryManager()"
http://llvm.org/viewvc/llvm-project/llvm/trunk/tools/llvm-jitlistener/llvm-jitlistener.cpp?r1=218316&r2=218315&pathrev=218316

Change by Tong Shen.

Tested:
Ubuntu 14.04 x86_64
MacOSX 10.9.5 with Xcode Version 6.1 (6A1030) (Beta)


git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@218383 91177308-0d34-0410-b5e6-96231b3b80d8
These APIs were defined in the .h file, but never actually implemented. Just get rid of them

git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@218396 91177308-0d34-0410-b5e6-96231b3b80d8
Change inline-breakpoint-strategy setting to default to eInlineBreakpointsAlways strategy.

See thread started here for motivation:
http://lists.cs.uiuc.edu/pipermail/lldb-dev/2014-September/005225.html

This change enables the ability to set breakpoints in ccache-based and executables that
make use of preprocessed source files.  This ability existed in lldb before, but was off
by default.

Change by Doug Snyder.


git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@218405 91177308-0d34-0410-b5e6-96231b3b80d8
Add an explicit cast to silence compiler warning here

git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@218410 91177308-0d34-0410-b5e6-96231b3b80d8
The beginnings of a gtest-based test framework.

Makes use of LLVM gtest support.  This does *not* run as part of
the lldb test suite.

I'm using it to start testing some components that
I'll be adding to the inner guts of NativeThreadLinux to more
maintainably handle thread states and deferred thread state notification.

Runs with default Makefile target "test" using gmake within a given
test directory (currently only test/c++/native_process/thread_state_coordinator).

The Makefile.rules currently assume it is using the LLVM gtest.  It works on
a canonical MacOSX dir structture (i.e. lldb, lldb/llvm, lldb/llvm/tools/clang).
It also works on Ubuntu assuming the standard dir layout of llvm, llvm/tools/clang,
llvm/tools/lldb.  In this case, it expects a directory called build-debug parallel
to the llvm source dir.  All directory assumptions can be overridden with
environment variables.  See test/c++/make/Makefile.rules for details.

We'll want to make this smarter in the future, particularly around finding the LLVM build
output dir.


git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@218422 91177308-0d34-0410-b5e6-96231b3b80d8
Moved PlatformDarwin::GetEnvironment() to PlatformPOSIX to fix Linux/llgs issue.

See http://reviews.llvm.org/D5486 for more details.

I was tracking a problem where llgs on linux would not pick up any environment variables. On OSX there is a virtual function PlatformDarwin::GetEnvironment() which correctly sets up the list of environment variables. On linux llgs it defaults to a base class default implementation which clears the list.

I moved the OSX implementation down to PlatformPOSIX. This fixes my problem on linux still works properly on OSX.

Change by Shawn Best.
Slight tweak to convert 'virtual' to 'override' in PlatformDarwin.h virtual method override by Todd.

Tested:
Ubuntu 14.04 x86_64, cmake/ninja build + tests.
MacOSX 10.9.5 x86_64, Xcode 6.1 Beta build + tests.


git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@218424 91177308-0d34-0410-b5e6-96231b3b80d8
Fixup gtest layout, add Linux ThreadStateCoordinator.cpp.

This change does the following:
* Remove test/c++/...
* Add gtest.
* Add gtest/unittest directory for unittesting individual classes.
* Add an initial Plugins/Process?linux/ThreadStateCoordinatorTest.cpp.
  - currently failing a test (intentional).
  - added a bare-bones ThreadStateCoordinator.cpp to Plugins/Process/Linux,
    more soon. Just enough to prove out running gtest on Ubuntu and MacOSX.
* Added recursive make machinery so that doing a 'make' in gtest/ is
  sufficient to kick off the existing test several directories down.
  - Caveat - I currently short circuit from gtest/unittest/Makefile directly to
    the one and only gtest/unittest/Plugins/Process/Linux directory.  We'll need
    to add the intervening layers.  I haven't done this yet since to fix the
    Xcode test failure correspondence, I may need to add a python layer which
    might just handle the directory crawling.
* Added an Xcode project to the lldb workspace for gtest.
  - Runs the recursive make system in gtest/Makefile.
  - Default target is 'test'.  test and clean are supported.
  - Currently does not support test failure file/line correspondence.
    Requires a bit of text transformation to hook that up.




git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@218460 91177308-0d34-0410-b5e6-96231b3b80d8
gtest: remove recursive make, add python driver + Xcode error hook-up.

This change does the following:
* Removes the gtest/Makefile recursive-make-based calling strategy
  for gtest execution.
* Adds the gtest/do-gtest.py call script.
  - This handles finding and calling the Makefiles that really
    run tests.
  - This script also transforms the test output into something
    that Xcode can place a failure marker on when a test fails.
* Modifies the Xcode external build command target for gtest.
  It now calls the gtest/do-gtest.py script.

There is still room for improvement on Xcode integration of
do-gtest.py.  Essentially the next several lines of error reporting
from the gtest output should be coalesced into a single line so that
Xcode can tell more about the error directly in the editor.  Right now
it just puts a red mark and says "failure" but doesn't give any
details.


git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@218470 91177308-0d34-0410-b5e6-96231b3b80d8
gtest: modified Xcode integration so gtest assert/expect failure now shows error content in the error marker at the line of failure.

This change modifies the python test runner to combine lines starting with a
failure report including up to 3 more lines, terminated by the next
"[  FAILED  ]" line.  These are all emitted on the same line as the file:line
indication, which allows Xcode's failure marker code to pick it up and display
it along with the error badge in the Xcode editor window.  Makes for a nice
gtest development experience.


git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@218518 91177308-0d34-0410-b5e6-96231b3b80d8
gtest: tweaked test runner to fix an extra comma, added more tdd-based thread coordinator behavior.

Starting to flesh out the thread state coordinator class that will be used
by Linux/llgs.


git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@218537 91177308-0d34-0410-b5e6-96231b3b80d8
thread state coordinator: handle when prerequisite pending stop is already stopped.

Change includes new gtest and functionality.


git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@218555 91177308-0d34-0410-b5e6-96231b3b80d8
thread state coordinator: added test for notify after two pending thread stops.

Glad I did - caught a bug where the auto variable was not a reference
to a set and instead was a copy.  I need to review rules on that!


git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@218558 91177308-0d34-0410-b5e6-96231b3b80d8
thread state coordinator: added thread death support and more tests.

Tested two pending stops before notification, where one of the pending stop
requirements was already known to be stopped.

Tested pending thread stop before notification, then reporting thread with
pending stop died and verifies pending notification is made.


git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@218559 91177308-0d34-0410-b5e6-96231b3b80d8
Enable llgs to build against experimental Android AOSP lldb/llvm/clang/compiler-rt repos.

See http://reviews.llvm.org/D5495 for more details.

These are changes that are part of an effort to support building llgs, within the AOSP source tree, using the Android.mk
build system, when using the llvm/clang/lldb git repos from AOSP replaced with the experimental ones currently in
github.com/tfiala/aosp-{llvm,clang,lldb,compiler-rt}.


git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@218568 91177308-0d34-0410-b5e6-96231b3b80d8
thread state coordinator: added new thread support.

A new thread arriving while a pending signal notification
is outstanding will (1) add the new thread to the list of
stops expected before the deferred signal notification is
fired, (2) send a stop request for the new thread, and
(3) track the new thread as currently running.


git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@218578 91177308-0d34-0410-b5e6-96231b3b80d8