Commit Graph

12901 Commits

Author SHA1 Message Date
Zachary Turner 1756e05688 Run py2to3 on lldb/scripts folder.
This mostly fixes some print statements, but there were also some
instances of dict.iteritems() lingering that this found.

llvm-svn: 250762
2015-10-19 23:45:25 +00:00
Sean Callanan ffd77e01a5 Added REPL.cpp to the relevant CMakeLists.txt
llvm-svn: 250755
2015-10-19 23:18:49 +00:00
Sean Callanan 6681041d70 Added the concept of a Read-Eval-Print-Loop to LLDB.
A REPL takes over the command line and typically treats input as source code.
REPLs can also do code completion.  The REPL class allows its subclasses to
implement the language-specific functionality without having to know about the
IOHandler-specific internals.

Also added a PluginManager-based way of getting to a REPL given a language and
a target.

Also brought in some utility code and expression options that are useful for
REPLs, such as line offsets for expressions, ANSI terminal coloring of errors,
and a few IOHandler convenience functions.

llvm-svn: 250753
2015-10-19 23:11:07 +00:00
Keno Fischer f23c0c405e Revert r248047 and fix the problem properly
In r248047, I attempted to fix a build breakage introduced by using
llvm's regex support from lldb-mi. However, my approach was flawed
when LLVM and lldb are dynamically linked, in which case two copies
of LLVMSupport would end up in memory, causing crashes on lldb start up.
Instead, use LINK_COMPONENTS to make sure lldb-mi has access to the
LLVMSupport symbols without causing duplication in the dynamic library
case.

llvm-svn: 250751
2015-10-19 22:59:16 +00:00
Enrico Granata a512103bdf Add a flakey category for flakey tests
llvm-svn: 250750
2015-10-19 22:53:34 +00:00
Enrico Granata c8e7649a19 Let Language plugins vend a default DeclPrintingHelper in case a custom one is not specified for the specific invocation
llvm-svn: 250744
2015-10-19 22:04:25 +00:00
Siva Chandra fdbefca88c [PlatformDarwin.cpp] Include <mutex> for std::once_flag.
Reviewers: clayborg

Subscribers: lldb-commits

Differential Revision: http://reviews.llvm.org/D13877

llvm-svn: 250740
2015-10-19 21:43:07 +00:00
Greg Clayton 6988abc14d Allow LLDB.framework to locate debugserver even when it doesn't exist in the LLDB.framework.
This allows open source MacOSX clients to not have to build debugserver and the current LLDB can find debugserver inside the selected Xcode.app on your system.

<rdar://problem/23167253>

llvm-svn: 250735
2015-10-19 20:44:01 +00:00
Enrico Granata 238de51eed Teach the lldbinline test cases to run in DWO mode
llvm-svn: 250734
2015-10-19 20:40:50 +00:00
Eugene Zelenko 0af149a813 Fix Clang-tidy modernize-use-override warnings in some files in source/Plugins; other minor fixes.
Differential Revision: http://reviews.llvm.org/D13840

llvm-svn: 250721
2015-10-19 18:52:10 +00:00
Zachary Turner 2adc80107a Py3'ify some of the examples that get run at startup.
Even though these are under examples/, they actually get loaded
when LLDB starts up during initialization of ScriptInterpreterPython.
There's obviously some kind of layering issue here (and comments
in the code even point to that as well), but for now just make them
py3 compatible.

llvm-svn: 250710
2015-10-19 17:35:02 +00:00
Zachary Turner e24ad03ae6 Disable libxml2 on Windows for now.
Newer versions of CMake include a "smarter" FindLibxml2 package.
In theory this is a good thing, but on Windows it's now smart
enough to find the version that comes with Gnuwin32, which doesn't
appear to be a valid libxml2 distribution.  Or at the very least,
LLDB currently uses some header files from libxml2 that are not
part of this distribution.

Nobody on Windows is using any of this functionality right now
anyway, so just disable it.

llvm-svn: 250709
2015-10-19 17:34:51 +00:00
Omair Javaid 5cf948d299 Fix for random watchpoint testsuite failures on AArch64 targets.
This patch corrects the number of bytes of debug register resources which are written while installing or removing a breakpoint using ptrace interface on arm64 targets.

Differential revision: http://reviews.llvm.org/D12522

llvm-svn: 250700
2015-10-19 14:54:33 +00:00
Sagar Thakur b997792cc6 [LLDB][MIPS] Use the correct ptrace buffer for writing register value for o32 applications
For o32 applications on mips we were getting segmentation fault while launching lldb-server because of overwritting stack when using elf_gregset_t in DoWriteRegisterValue.
We are now using the GPR_mips_linux buffer in DoWriteRegisterValue as done in DoReadRegisterValue also, which solves the above issue.

llvm-svn: 250696
2015-10-19 11:21:20 +00:00
Saleem Abdulrasool a8bf774b96 Python: follow python guidelines for header usage
Python requires that Python.h is included before any std header.  Not doing so
results in conflicts with standards macros such as `_XOPEN_SOURCE`.  NFC.

llvm-svn: 250673
2015-10-19 01:16:17 +00:00
Saleem Abdulrasool 43d3a7ae01 Silence -Wreturn-type with gcc 5.2
The switch is fully covered, mark "default" as unreachable.  NFC.

llvm-svn: 250667
2015-10-18 20:51:18 +00:00
Saleem Abdulrasool ba507b04e1 Silence -Wqual-cast warnings from GCC 5.2
There were a number of const qualifiers being cast away which caused warnings.
This cluttered the output hiding real errors.  Silence them by explicit casting.
NFC.

llvm-svn: 250662
2015-10-18 19:34:38 +00:00
Saleem Abdulrasool 8b8d2a4d99 Silence some -Wunused-but-set-variable with gcc 5.2.0
Cleanup some unused variables.  NFC.

llvm-svn: 250661
2015-10-18 19:34:31 +00:00
Enrico Granata e0ee1e1cd6 Teach an old pony a few new tricks.
ValueObjectPrinter can now mask out pointer values during a printout; also, it supports helper functions to print declarations in different formats if needed

Practically speaking however, this change is NFC as nothing yet uses it in the codebase

llvm-svn: 250599
2015-10-17 01:05:50 +00:00
Eugene Zelenko fb2eec7e11 [LLDB] Fix Clang-tidy modernize-use-override warnings in some headers in source/Plugins/Process/Utility; other minor fixes.
Differential Revision: http://reviews.llvm.org/D13830

llvm-svn: 250593
2015-10-17 00:19:57 +00:00
Enrico Granata 15560778df Handle eFormatVectorOfFloat16
llvm-svn: 250581
2015-10-16 23:42:04 +00:00
Greg Clayton 3fd1f746c3 Split getting the key from a window from the code that handles the key.
llvm-svn: 250580
2015-10-16 23:34:40 +00:00
Adrian McCarthy 128d4ab71f Skip hanging watchpoint test on Windows (rather than just xfailing).
llvm-svn: 250576
2015-10-16 23:19:22 +00:00
Enrico Granata da7cb14236 Move TypeSummaryImpl over to LLVM-style RTTI for subclassing
llvm-svn: 250567
2015-10-16 22:51:56 +00:00
Eugene Zelenko 17af3f957e [LLDB] Fix Clang-tidy modernize-use-override warnings in source/Plugins/ABI; other minor fixes.
Differential Revision: http://reviews.llvm.org/D13684

llvm-svn: 250538
2015-10-16 18:49:42 +00:00
Zachary Turner 5f3fd800f7 Make some more of the LLDB/SWIG/Python glue Python 3 aware.
Mostly this is just converting some print statements to print
functions.

llvm-svn: 250533
2015-10-16 17:52:32 +00:00
Zachary Turner 5c3a198266 Make swig generation python scripts python 3 compatible.
llvm-svn: 250532
2015-10-16 17:52:12 +00:00
Zachary Turner c5b41d67af Fix linkage of `init_lldb` SWIG method in Python 3.
llvm-svn: 250531
2015-10-16 17:52:03 +00:00
Zachary Turner 7d6d218e12 Convert SWIG typemap string operations to PythonObjects.
llvm-svn: 250530
2015-10-16 17:51:49 +00:00
Zachary Turner eda01c3175 Update SWIG typemaps to use `PythonFile`.
Using the Python native C API is non-portable across Python versions,
so this patch changes them to use the `PythonFile` class which hides
the version specific differences behind a single interface.

llvm-svn: 250525
2015-10-16 16:39:18 +00:00
Pavel Labath 3318314722 Fix temporary directory computation on linux (pr25147)
Summary:
On linux, the environment variables for temp directories that lldb checks for are generally not
defined, and the temp directory computation failed. This caused expression evaluation to fall
back to creating "/tmp/lldb-*.expr" debugging files instead of the usual
"$TMP/lldb/pid/lldb-*.expr". Crucially, these files were not cleaned up on lldb exit, which
caused clutter in the /tmp folder, especially on long-running machines (e.g. builtbots). This
commit fixes lldb to use llvm::sys::path::system_temp_directory, which does the same environment
variable dance, but (!) also falls back to the P_tmpdir macro, which is how the temp directory is
defined on linux.

Since the linux temp path computation now succeeds, I needed to also modify Android path
computation to check for actual directory existence, rather then checking whether the operation
failed.

Reviewers: clayborg, tberghammer

Subscribers: tberghammer, lldb-commits, danalbert, srhines, emaste

Differential Revision: http://reviews.llvm.org/D13772

llvm-svn: 250502
2015-10-16 09:32:05 +00:00
Ewan Crawford a0f08674eb Resubmit: RenderScript command for printing allocation contents
Previous commit r250281 broke TestDataFormatterSmartArray.py
Resolved in in this patch by adding the new enum eFormatVectorOfFloat16 to FormatManager.

Differential Revision: http://reviews.llvm.org/D13730

llvm-svn: 250499
2015-10-16 08:28:47 +00:00
Keno Fischer 8cd7d34508 Fix build with python disabled after r249597
Summary: r249597 introduced a usage of GetTypeSummary in lldb-mi.
That function used to only be available when python is enabled.
However, there is no reason for that anymore since that is now
dealt with at a different abstraction layer.

Reviewers: ki.stfu, evgeny777, clayborg, granata.enrico

Subscribers: elehcim, brucem, lldb-commits

Differential Revision: http://reviews.llvm.org/D13577

llvm-svn: 250494
2015-10-16 05:21:23 +00:00
Keno Fischer 47db4a2c50 Add a missing Mutex Locker in ResetCurrentInlinedDepth
Summary: This function reads m_frames, so it needs to lock the
mutex like all other function that access m_frames.
Found using AddressSanitizer.

Reviewers: jingham, clayborg

Subscribers: lldb-commits

Differential Revision: http://reviews.llvm.org/D13638

llvm-svn: 250493
2015-10-16 05:17:25 +00:00
Jason Molenda 59e847f997 I've been seeing a problem with xcodebuilds on macosx for
a few days now where compiler-rt gets an error when trying
to run its install step (related to not being able to find
an ios version of a dylib), breaking the lldb build.  I
don't know if I'm the only one seeing this or if everyone has
been doing the same hack I've been doing - removing the
compiler-rt project from the default checkout.

It's only used for the ASAN test case.  So I'm temporarily
checking in my hackaround of not checking out compiler-rt
by default, I'll try to get back and look at what's actually
happening in the compiler-rt install step that is causing
the problems when built as a part of lldb.

llvm-svn: 250487
2015-10-16 01:27:21 +00:00
Eugene Zelenko 47d118e9f2 [LLDB] Fix Clang-tidy misc-use-override warnings in remaining files in include; other minor fixes.
Differential Revision: http://reviews.llvm.org/D13681

llvm-svn: 250485
2015-10-16 01:11:37 +00:00
Greg Clayton c12cc596ed More general fixes to the tree view and BoxedPanel.
llvm-svn: 250478
2015-10-16 00:34:18 +00:00
Eugene Zelenko 68347e6c07 Test commit. Part of:
[LLDB] Fix Clang-tidy misc-use-override warnings in remaining files in include; other minor fixes.

Differential Revision: http://reviews.llvm.org/D13681.

llvm-svn: 250476
2015-10-16 00:17:35 +00:00
Oleksiy Vyalov e98628cecb Split Socket class into Tcp/Udp/DomainSocket subclasses.
http://reviews.llvm.org/D13754

llvm-svn: 250474
2015-10-15 23:54:09 +00:00
Adrian McCarthy 6ecdbc87e6 Factor the execution of the test method into a separate function to ensure that any exceptions that are thrown go out of scope and no longer hold references to SB objects that need to be freed before teardown.
Differential Revision: http://reviews.llvm.org/D13788

llvm-svn: 250467
2015-10-15 22:39:55 +00:00
Stephane Sezer cdb2a11e04 Minor indentation fix in StackFrameList.cpp.
llvm-svn: 250465
2015-10-15 22:24:17 +00:00
Todd Fiala 3b82908f0f Fixup previous commit.
Looks like I blasted something into my editor...

llvm-svn: 250454
2015-10-15 20:32:25 +00:00
Todd Fiala 125b1bd361 Modify pylint/flake8 path helper to add lldb python module to path.
It was adding all the test infrastructure paths properly, but it
was not adding the lldb module.  The current approach only adds the
lldb from the path.  That can be improved (in the comments) to add
the one from the related build directory if it can be ascertained.

With this change, lldb tests can be run through pylint/flake8
and have the lldb module found and used as part of the checks.

llvm-svn: 250453
2015-10-15 20:27:23 +00:00
Zachary Turner 9c40264fda Introduce a `PythonFile` object, and use it everywhere.
Python file handling got an overhaul in Python 3, and it affects
the way we have to interact with files.  Notably:

1) `PyFile_FromFile` no longer exists, and instead we have to use
   `PyFile_FromFd`.  This means having a way to get an fd from
   a FILE*.  For this we reuse the lldb_private::File class to
   convert between FILE*s and fds, since there are some subtleties
   regarding ownership rules when FILE*s and fds refer to the same
   file.
2) PyFile is no longer a builtin type, so there is no such thing as
   `PyFile_Check`.  Instead, files in Python 3 are just instances
   of `io.IOBase`.  So the logic for checking if something is a file
   in Python 3 is to check if it is a subclass of that module.

Additionally, some unit tests are added to verify that `PythonFile`
works as expected on Python 2 and Python 3, and
`ScriptInterpreterPython` is updated to use `PythonFile` instead of
manual calls to the various `PyFile_XXX` methods.

llvm-svn: 250444
2015-10-15 19:35:48 +00:00
Todd Fiala 4f3589c779 Fix broken assert in DWARFDIE.cpp on OS X
See:
http://reviews.llvm.org/D13777

llvm-svn: 250426
2015-10-15 16:35:59 +00:00
Pavel Labath 141051027b Revert "Fix temporary directory computation on linux (pr25147)"
I actually did not want to commit this without review, but I mistyped. :/

llvm-svn: 250412
2015-10-15 14:46:46 +00:00
Pavel Labath 33ef8acbbd Fix temporary directory computation on linux (pr25147)
On linux, the environment variables for temp directories that lldb checks for are generally not
defined, and the temp directory computation failed. This caused expression evaluation to fall
back to creating "/tmp/lldb-*.expr" debugging files instead of the usual
"$TMP/lldb/pid/lldb-*.expr". Crucially, these files were not cleaned up on lldb exit, which
caused clutter in the /tmp folder, especially on long-running machines (e.g. builtbots). This
commit fixes lldb to use llvm::sys::path::system_temp_directory, which does the same environment
variable dance, but (!) also falls back to the P_tmpdir macro, which is how the temp directory is
defined on linux.

Since the linux temp path computation now succeeds, I needed to also modify Android path
computation to check for actual directory existence, rather then checking whether the operation
failed.

llvm-svn: 250409
2015-10-15 14:44:29 +00:00
Aidan Dodds 438a4aa8f6 Superficial fix for the windows build when building with LLDB_DISABLE_PYTHON. The definition of lldb::SBTypeSummary and some methods of lldb::SBValue are hidden via a LLDB_DISABLE_PYTHON check, causing an compilation fail because of their use here.
llvm-svn: 250391
2015-10-15 11:42:20 +00:00
Hafiz Abid Qadeer 3eedf96a5a Fix warnings in LLDBWrapPython.cpp with gcc 4.9.
Summary:
I see a lot of following warnings in LLDBWrapPython.cpp while building with gcc 4.9 on Linux.
"warning: cast from type ‘const char*’ to type ‘char*’ casts away qualifiers [-Wcast-qual]"

Is it ok to add -Wno-cast-qual for this file in cmake for gcc. This option seems to be already present
for autotool case.

Reviewers: zturner, clayborg

Subscribers: lldb-commits

Differential Revision: http://reviews.llvm.org/D13719

llvm-svn: 250380
2015-10-15 08:27:01 +00:00
Jason Molenda f415791bda In r240466, when Greg added the jThreadsInfo packet, he accidentally
disabled the use of the jThreadGetExtendedInfo packet which is used
to retrieve additional information about a thread, such as the QoS
setting for that thread on darwin systems.  

Re-enable the use of the jThreadGetExtendedInfo packet, and add 
some quick tests to the TestQueues mac test case which will verify
that we can retrieve the QoS names for these test threads.

<rdar://problem/22925096> 

llvm-svn: 250364
2015-10-15 04:20:42 +00:00