Commit Graph

13045 Commits

Author SHA1 Message Date
Dawn Perchik b5d425ecfb [lldb-mi] Fix expansion of anonymous structures and unions
A variable of type:
    struct S {
       union {
           int            i1;
           unsigned u1;
       };
       union {
           int            i2;
           unsigned u2;
       };
    };
had been impossible to evaluate in lldb-mi, because MI assigns '??' as the
variable name to each of the unnamed unions after "-var-list-children" command.
Also '??' incorrectly goes to 'exp' field which is treated by IDE as a
structure field name and is displayed in watch window.

The patch fixes this returning empty string as type name for unnamed union and
assigning $N to variable name, where N is the field number in the parent entity.

Patch from evgeny.leviant@gmail.com
Reviewed by: clayborg, abidh
Subscribers: lldb-commits
Differential Revision: http://reviews.llvm.org/D13947

llvm-svn: 251176
2015-10-24 02:01:28 +00:00
Dawn Perchik e3f250dbda [debugserver] Fix OSX build for older XCode versions after r251091.
This fixes the OSX build for XCode versions older than 7 by skipping
references to LC_VERSION_MIN_TVOS and LC_VERSION_MIN_WATCHOS if
TARGET_OS_TV or TARGET_OS_WATCH aren't defined.

Reviewed by: jasonmolenda
Subscribers: lldb-commits
Differential Revision: http://reviews.llvm.org/D14036

llvm-svn: 251172
2015-10-24 01:31:12 +00:00
Bruce Mitchener ac1cb4fadf Add initial gmake glue for the NetBSD platform
Summary:
These changes aren't everything what is needed for the autotools target, but it's significantly approaching it.

These changes shouldn't effect the build process on other platforms.

Patch by Kamil Rytarowski, thanks!

Reviewers: joerg, brucem

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

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

llvm-svn: 251171
2015-10-24 01:28:24 +00:00
Eugene Zelenko 0722f08da3 Revert r251167 in source/Plugins/Process/gdb-remote/ProcessGDBRemote.cpp to fix MSVC builds failures.
llvm-svn: 251170
2015-10-24 01:28:05 +00:00
Dawn Perchik 51ac8a0e17 [debugserver] Fix indentation in RNBRemote.cpp.
llvm-svn: 251169
2015-10-24 01:24:00 +00:00
Eugene Zelenko edb35d95d1 Fix Clang-tidy modernize-use-override warnings in some files in source/Plugins; other minor fixes.
llvm-svn: 251167
2015-10-24 01:08:35 +00:00
Bruce Mitchener 284350e540 [lldb-mi] Fix unused variable warning.
llvm-svn: 251166
2015-10-24 00:30:18 +00:00
Bruce Mitchener 64f74da568 Add initial CMake glue for the NetBSD platform
Summary:
These changes aren't everything what is needed for the CMake target, but it's significantly approaching it.

These changes shouldn't effect the build process on other platforms.

Patch by Kamil Rytarowski, thanks!

Reviewers: joerg, brucem

Subscribers: lldb-commits

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

llvm-svn: 251164
2015-10-24 00:27:04 +00:00
Eugene Zelenko fe4ae5e7a4 Fix Clang-tidy modernize-use-nullptr warnings in include/lldb/Interpreter; other minor fixes.
Differential Revision: http://reviews.llvm.org/D14025

llvm-svn: 251162
2015-10-24 00:20:14 +00:00
Enrico Granata 79c4ee4d98 Lower the depth of the recursion in this test since it would on occasion timeout and add noise to test runs
llvm-svn: 251161
2015-10-24 00:15:57 +00:00
Sean Callanan 3b436d23ca Fixed some issues with reporting "this" when the current function is not listed
in DWARF as a member of a class, but it has a "this" parameter.  Specifically,
*this needs to have the LLDB expression added as a method.

This fixes TestWithLimitDebugInfo.

llvm-svn: 251151
2015-10-23 21:45:02 +00:00
Siva Chandra 671dadd8f6 [TestBreakpointCommand] Fix after r251121
Summary:
"from __future__ import print_function" was added to the test file but
not to the embedded interpreter. This change uses file.write instead to
avoid all problems with print.

Reviewers: zturner

Subscribers: zturner, lldb-commits

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

llvm-svn: 251150
2015-10-23 21:38:04 +00:00
Zachary Turner 58968ac83f Make uses of unicode literals portable.
Six provides six.u() which resolves to either u"" or "" depending on
Python version, and and six.unichr() which resolves to either unichr()
or chr() depending on Python version.  Use these functions anywhere
where we were relying on u"" or unichr().

llvm-svn: 251139
2015-10-23 19:52:36 +00:00
Eugene Zelenko 8f30a65ca3 Fix Clang-tidy modernize-use-override warnings in source/Target; other minor fixes.
llvm-svn: 251134
2015-10-23 18:39:37 +00:00
Zachary Turner a3cebaf5e9 Disable a compiler warning on MSVC.
This is caused by a bug in MSVC's library implementation.  It's
fixed in the next version of the compiler, but for now the only
way to silence this is to disable the warning.

llvm-svn: 251130
2015-10-23 17:54:00 +00:00
Zachary Turner 606e1e33ef Python3 - Wrap more statements in calls to list()
llvm-svn: 251129
2015-10-23 17:53:51 +00:00
Zachary Turner 3ad38749fd Remove argparse_compat.
We don't support versions of Python less than 2.7

llvm-svn: 251128
2015-10-23 17:53:30 +00:00
Zachary Turner 35d017f0fc Add from __future__ import print_function everywhere.
Apparently there were tons of instances I missed last time, I
guess I accidentally ran 2to3 non-recursively.  This should be
every occurrence of a print statement fixed to use a print function
as well as from __future__ import print_function being added to
every file.

After this patch print statements will stop working everywhere in
the test suite, and the print function should be used instead.

llvm-svn: 251121
2015-10-23 17:04:29 +00:00
Eugene Zelenko 8157a8874d Fix Clang-tidy modernize-use-override warnings in source/Plugins/ObjectContainer and ObjectFile; other minor fixes.
llvm-svn: 251119
2015-10-23 16:56:07 +00:00
Tamas Berghammer ce26b7a6ee Fix arm lldb-server on aarch64 device
* Use PTRACE_GETVFPREGS/PTRACE_SETVFPREGS to access the floating point
  registers instead of the old PTRACE_GETFPREGS/PTRACE_SETFPREGS. The
  new call is available since armv5.
* Work around a kernel issue in PTRACE_POKEUSER with reading out the full
  register set, modifying the neccessary value and then writing it back.

llvm-svn: 251111
2015-10-23 13:36:31 +00:00
Tamas Berghammer 5ee6b7f4b2 Try to fix MSVC build after r251105
llvm-svn: 251109
2015-10-23 10:53:31 +00:00
Tamas Berghammer e7ec227839 Disable the strict-aliasing warnings produced by gcc
GCC produce a lot of strict-aliasing warning for the LLDB codebase
what makes reading the compile output very difficult. This change
disable these warnings to reduce the noise as we already ignore them.

We should consider re-enabling the warning if we fix all (or most)
strict-aliasing violation first.

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

llvm-svn: 251107
2015-10-23 10:34:53 +00:00
Tamas Berghammer 2ff8870b6f Re-commit "Make dwarf parsing multi-threaded"
Re-commit the change after fixing a lot of race condition in LLDB
exposed by this change

Loading the debug info from a large application is the slowest task
LLDB do. This CL makes most of the dwarf parsing code multi-threaded.

As a result the speed of "attach; backtrace; exit;" when the inferior
is an LLDB with full debug info increased by a factor of 2.

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

llvm-svn: 251106
2015-10-23 10:34:49 +00:00
Tamas Berghammer d779da91de Fix race conditions in Core/Timer
The Timer class already had some support for multi-threaded access
but it still contained several race conditions. This CL fixes them
in preparation of adding multi-threaded dwarf parsing (and other
multi-threaded parts later).

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

llvm-svn: 251105
2015-10-23 10:34:29 +00:00
Aidan Dodds 45dc04bb83 Fix the build when building with LLDB_DISABLE_PYTHON.
llvm-svn: 251104
2015-10-23 10:27:16 +00:00
Pavel Labath 69e8f5cf4e Enable the libc++ tests on linux
Summary:
The list of loaded modules which skip_if_library_missing is depending on is not available on
linux until after we run the target. This causes the tests to be wrongfully skipped. This commit
moves the skip call after the run command.

Reviewers: granata.enrico, tfiala

Subscribers: lldb-commits

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

llvm-svn: 251102
2015-10-23 09:17:30 +00:00
Jason Molenda b9d5459d5a Remove some tabs that snuck into debugserver-entitlements.plist, etc.
llvm-svn: 251092
2015-10-23 02:54:21 +00:00
Jason Molenda c611a74059 Upstreaming the apple internal changes that accumulated during the
previous release.  Most of the diffs are duplication in the xcode
project file caused by adding a "debugserver-mini" target.  Jim
Ingham added support for a new SPI needed to request app launches
on iOS.  Greg Clayton added code to indicate the platform of the
binary (macosx, ios, watchos, tvos) based on Mach-O load commands.
Jason Molenda added code so debugserver will identify when it is
running on a tvos/watchos device to lldb.

llvm-svn: 251091
2015-10-23 02:49:51 +00:00
Ed Maste 4a8a8cde08 Add arm64 FreeBSD ProcessMonitor register context
llvm-svn: 251088
2015-10-23 01:10:42 +00:00
Jason Molenda a96a8c4c08 Fix one more place where we were using the old
name of the xpc service.
<rdar://problem/23223624> 

llvm-svn: 251086
2015-10-23 00:59:31 +00:00
Sean Callanan 44dbf115fe Log information about sections that didn't make it into the target's memory.
llvm-svn: 251084
2015-10-23 00:39:09 +00:00
Sean Callanan 2592fb96c2 Fixed a typo in r251080.
llvm-svn: 251083
2015-10-23 00:37:54 +00:00
Dawn Perchik b91779eb28 [lldb-mi] display summary for simple types + refactor (use lldb formatting for all cases)
Previously, lldb did not use type summaries for simple types with no children
(like function pointers).  This patch enables MI to use lldb type summaries for
evaluation of all types of objects, so MI own formatters are no longer needed.

Patch from evgeny.leviant@gmail.com
Reviewed by: abidh
Subscribers: lldb-commits
Differential Revision: http://reviews.llvm.org/D13799

llvm-svn: 251082
2015-10-23 00:23:53 +00:00
Dawn Perchik 8826519e2a Summary provider for char.
This patch enables type summary for 'char' type. Given:
    char c = 'h';
Before this patch, c evaluates as:
    (char) $0 = 'h'
After this patch, we get:
    (char) $0 = 104 'h'
This change allows the formatting of character types in MI to be removed
and replaced with that in lldb, and can be useful when evaluating
non-printable characters.

Patch from evgeny.leviant@gmail.com
Reviewed by: granata.enrico
Subscribers: lldb-commits
Differential Revision: http://reviews.llvm.org/D13657

llvm-svn: 251080
2015-10-23 00:02:56 +00:00
Dawn Perchik bf568a6b8f [cmake] Fix cmake build on OSX after r250335 for older versions of cmake
Reviewed by: sas
Subscribers: lldb-commits
Differential Revision: http://reviews.llvm.org/D13995

llvm-svn: 251073
2015-10-22 22:48:52 +00:00
Eugene Zelenko 45a4014a50 Fix Clang-tidy modernize-use-override warnings in include/lldb/Disassembler and OperatingSystem; other minor fixes.
Second attempt which should work for MSVC.

llvm-svn: 251066
2015-10-22 21:24:37 +00:00
Zachary Turner 1c4059a0c4 Python 3 porting - Wrap returns from map() in list()
Under Python 2 this has no effect, since map() returns a list.
In Python 3 map() returns an iterable, so wrapping in a list is
necessary to keep the same semantics.

llvm-svn: 251060
2015-10-22 20:39:59 +00:00
Zachary Turner 77db4a8552 Update every test to import `lldb_shared`.
This is necessary in order to allow third party modules to be
located under lldb/third_party rather than under the test
folder directly.

Since we're already touching every test file anyway, we also
go ahead and delete the unittest2 import and main block wherever
possible.  The ability to run a test as a standalone file has
already been broken for some time, and if we decide we want this
back, we should use unittest instead of unittest2.

A few places could not have the import of unittest2 removed,because
they depend on the unittest2.expectedFailure or skip decorators.
Removing all those was orthogonal in spirit to the purpose of this
CL, so the import of unittest2 remains in those files that were
using it for its test decorators.  Those can be addressed
separately.

llvm-svn: 251055
2015-10-22 20:06:20 +00:00
Eugene Zelenko bd832d5131 Fix Clang-tidy modernize-use-override warnings in some files in include/lldb/Interpreter and Host; other minor fixes.
Differential Revision: http://reviews.llvm.org/D13602

llvm-svn: 251054
2015-10-22 19:59:21 +00:00
Zachary Turner 7b24ff1509 Remove special case logic for finding 3rd party libs
llvm-svn: 251047
2015-10-22 19:55:18 +00:00
Zachary Turner 746bb5e457 Move third party libraries to lldb/third_party
llvm-svn: 251046
2015-10-22 19:55:01 +00:00
Oleksiy Vyalov 92b14b9f71 Set device_id to host value only in case of adb protocol.
llvm-svn: 251044
2015-10-22 19:17:32 +00:00
Oleksiy Vyalov 179c51e006 Add support for abstract domain sockets.
http://reviews.llvm.org/D13970

llvm-svn: 251034
2015-10-22 17:50:33 +00:00
Eugene Zelenko 4192015cfe Attempt to fix MSVC builds after rL250966.
Differential Revision: http://reviews.llvm.org/D13968

llvm-svn: 251031
2015-10-22 17:01:20 +00:00
Tamas Berghammer 90b4dcecb1 Make SymbolFileDWARF::GetCachedSectionData thread safe
Differential revision: http://reviews.llvm.org/D13942

llvm-svn: 251007
2015-10-22 11:14:37 +00:00
Tamas Berghammer ac47b6e091 Fix some race condition in ConstString around Mangled name handling
Differential revision: http://reviews.llvm.org/D13941

llvm-svn: 251006
2015-10-22 11:14:31 +00:00
Pavel Labath 31bcd2bddd [AppleObjCRuntime] Don't bother looking for the runtime on non-apple targets
Summary:
This short-circuits the GetObjCVersion function to avoid iterating through target modules on
non-apple targets. This function is called on every Process::IsDynamicValue call, so this
overhead is not negligible.

Reviewers: clayborg, jingham

Subscribers: lldb-commits

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

llvm-svn: 251004
2015-10-22 09:34:40 +00:00
Ewan Crawford 02f1c5d132 [RenderScript] Support for mips64 runtime hook
Previously we could not hook the RS runtime on mips64 architectures.

Patch implements ABI specific code for inspecting function arguments.

Author: Dean De Leo, dean@codeplay.com
llvm-svn: 251003
2015-10-22 09:01:05 +00:00
Jason Molenda 76a2d615ad Move the launch-as-root xpc service from lldb to xcode, to
make it easier to run hand-built lldb roots and retain those
entitlements.  This is currently only used by Xcode; command
line lldb doesn't expose the SBLaunchInfo::SetUserID()
launch option.

<rdar://problem/23154486> 

llvm-svn: 250981
2015-10-22 04:17:26 +00:00
Jason Molenda 9c077cf33d Change ModuleList::GetSharedModule so that it will reject "stub
libraries" altogether.  On Mac/iOS, these are libraries which have
a UUID and nlist records but no text or data.  If one of these
gets into the global module list, every time we try to search
for a given filename/arch/UUID, we'll get this stub library back.
We need to prevent them from getting added to the module list
altogether.

I thought about doing this down in ObjectFileMachO -- just rejecting
the file as a valid binary file altogether -- but Greg didn't want
to take that hard line approach at this point, he wanted to keep
the ability for lldb to read one of these if someone wanted to in
the future.

<rdar://problem/23035075> 

llvm-svn: 250979
2015-10-22 03:50:28 +00:00
Jason Molenda 75f96bcfc4 Add some verbose lldb host logging so lldb will show what SDK
directories it is searching for files.

llvm-svn: 250978
2015-10-22 03:44:51 +00:00
Eugene Zelenko 05e0fc85b2 Fix Clang-tidy modernize-use-override warnings in some files in source/Plugins/LanguageRuntime; other minor fixes.
Differential Revision: http://reviews.llvm.org/D13966

llvm-svn: 250966
2015-10-22 00:45:41 +00:00
Todd Fiala 82ffb8e904 Fix libstdc++ data formatters on Ubuntu 15.10 x86_64
See http://reviews.llvm.org/D13964 for details.

llvm-svn: 250965
2015-10-22 00:23:38 +00:00
Oleksiy Vyalov 9dfde98d27 Fix lldb-server - write null terminating symbol along with port number.
llvm-svn: 250953
2015-10-21 21:58:22 +00:00
Greg Clayton 258c164bf7 Fix typo so that "./dotest.py --results-formatter=curses_results.Curses --results-file=/dev/stdout" works again.
llvm-svn: 250952
2015-10-21 21:55:16 +00:00
Eugene Zelenko 485ed3c64c Revert r250925 in source/Plugins/OperatingSystem/Go to fix MSVC builds failures.
llvm-svn: 250937
2015-10-21 20:03:58 +00:00
Oleksiy Vyalov 9fe526c2e7 Add domain socket support to gdb-remote protocol and lldb-server.
http://reviews.llvm.org/D13881

llvm-svn: 250933
2015-10-21 19:34:26 +00:00
Sean Callanan 97f84e870f Fix error handling when there are no REPLs installed.
Before, in the absence of any configured REPLs, LLDB would act as if there were
multiple possible REPL options, whereas actually no REPL language is supported.
Now we make a better error.

llvm-svn: 250931
2015-10-21 19:31:17 +00:00
Siva Chandra 9ac7a6c51f [SBValue] Add a method GetNumChildren(uint32_t max)
Summary:
Along with this, support for an optional argument to the "num_children"
method of a Python synthetic child provider has also been added. These have
been added with the following use case in mind:

Synthetic child providers currently have a method "has_children" and
"num_children". While the former is good enough to know if there are
children, it does not give any insight into how many children there are.
Though the latter serves this purpose, calculating the number for children
of a data structure could be an O(N) operation if the data structure has N
children. The new method added in this change provide a middle ground.
One can call GetNumChildren(K) to know if a child exists at an index K
which can be as large as the callers tolerance can be. If the caller wants
to know about children beyond K, it can make an other call with 2K. If the
synthetic child provider maintains state about it counting till K
previosly, then the next call is only an O(K) operation. Infact, all
calls made progressively with steps of K will be O(K) operations.

Reviewers: vharron, clayborg, granata.enrico

Subscribers: labath, lldb-commits

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

llvm-svn: 250930
2015-10-21 19:28:08 +00:00
Sean Callanan 93c0b00380 Fixed version of r250913, which actually implements all the static functions.
Thanks to Siva Chandra and Oleksiy Vyalov for pouncing on this.

llvm-svn: 250928
2015-10-21 19:14:33 +00:00
Siva Chandra 654aaf12dc Revert "Made the REPL choose a default language if only one REPL can be chosen."
Summary: This reverts commit babd6dd74e316b1fcd9d171d7d8c83845d51a487.

Reviewers: spyffe

Subscribers: lldb-commits

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

llvm-svn: 250927
2015-10-21 18:58:01 +00:00
Eugene Zelenko ab7f6d04db Fix Clang-tidy modernize-use-override warnings in some files in source/Plugins; other minor fixes.
Differential Revision: http://reviews.llvm.org/D13951

llvm-svn: 250925
2015-10-21 18:46:17 +00:00
Zachary Turner 814236d694 Use six to portably handle module renames in Python 2 and 3
llvm-svn: 250915
2015-10-21 17:48:52 +00:00
Sean Callanan bea731292f Made the REPL choose a default language if only one REPL can be chosen.
This requires REPLs to enumerate the languages they support.

llvm-svn: 250913
2015-10-21 17:43:18 +00:00
Adrian McCarthy da9b90ce11 Skip TestMultithreaded on Windows.
Differential Revision: http://reviews.llvm.org/D13923

llvm-svn: 250899
2015-10-21 14:42:10 +00:00
Pavel Labath baf54a8ad5 Clean up more .dwo files after the tests run
llvm-svn: 250896
2015-10-21 12:56:37 +00:00
Ewan Crawford 2d62328add [RenderScript] Fix out of bounds warning.
llvm-svn: 250891
2015-10-21 10:27:10 +00:00
Pavel Labath 65a16e56b9 [DataFormatters] Make libc++ list loop detection linear
Summary:
Loop detection code is being called before every element access. Although it tries to cache some
of the data by remembering the loop-free initial segment, every time it needs to increase this
segment, it will start from scratch. For the typical usage pattern, where one accesses the
elements in order, the loop detection will need to be run after every access, resulting in
quadratic behavior. This behavior is noticable even for the default 255 element limit.

In this commit, I rewrite the algorithm to be truly incremental -- it maintains the state of its
loop-detection runners between calls, and reuses them when it needs to check another segment.
This way, each part of the list is scanned only once, resulting in linear behavior.

Also note that I have changed the operator== of ListEntry to do the comparison based on the
value() function (instead of relying on ValueObjectSP equality). In my experiments, I kept
getting different ValueObjectSPs when going through the same element twice.

Reviewers: granata.enrico

Subscribers: lldb-commits, sivachandra

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

llvm-svn: 250890
2015-10-21 10:17:21 +00:00
Ewan Crawford 55232f0948 [RenderScript] New commands to save/load RS allocations to file.
Patch adds command 'language renderscript allocation save' to store the contents of an allocation in a binary file.
And 'language renderscript allocation load' to restore an allocation with the saved data from a binary file.

Binary file format contains a header FileHeader with meta information preceding the raw data.


Reviewed by: jingham, clayborg
Subscribers: lldb-commits, domipheus
Differential Revision: http://reviews.llvm.org/D13903

llvm-svn: 250886
2015-10-21 08:50:42 +00:00
Eugene Zelenko 8dd3fdbf43 Revert r250872 in source/Plugins/Disassembler to fix MSVC builds failures.
llvm-svn: 250874
2015-10-21 01:42:15 +00:00
Eugene Zelenko 4c3f2b9446 Fix Clang-tidy modernize-use-override warnings in some files in source/Plugins; other minor fixes.
Differential Revision: http://reviews.llvm.org/D13916

llvm-svn: 250872
2015-10-21 01:03:30 +00:00
Sean Callanan 9a6940cef4 When a REPL creates a new target for itself, it is that target's REPL.
To allow that, I've added a SetREPL call to the Target, which allows a REPL
that just created a target to install itself as the go-to REPL for the
corresponding language.

llvm-svn: 250870
2015-10-21 00:36:34 +00:00
Sean Callanan 3b682de6b1 When target is NULL, provide a debugger so that REPLs can use that to create
their own target.

llvm-svn: 250869
2015-10-21 00:28:44 +00:00
Zachary Turner 43a01e45f9 Use six to portably assign metaclasses in Python 2 and 3.
llvm-svn: 250859
2015-10-20 21:06:05 +00:00
Zachary Turner 8741e31876 Introduce a mechanism for reusing Python modules out of tree.
Right now our Python code does not all share a common root.  Tests and
scripts both contain python code that cannot take advantage of reusability
since they are unrelated siblings of each other.

In particular, this presents a problem for wanting to use third party
packages from both sides, since it does not make sense to copy the module
into both places.

This patch solves this by introducing a script lldb_shared.py which is a
very lightweight script that just searches up the tree until it finds a
root, and then imports a module from there.  That module knows how to
find all of the shared code that LLDB uses, and adjusts sys.path
accordingly to make them all visible.

llvm-svn: 250858
2015-10-20 21:05:57 +00:00
Zachary Turner 4718944d50 Add `six` Python module to lldb/third_party.
Six is a python module designed to smooth the process of porting
Python 2 code to Python 3.  Specifically, six provides a consistent
interface to some of the breaking changes between 2 and 3.  For example,
the syntax for assigning a metaclass differs in Python 2 and 3.  Six
addresses this by providing a single class decorator that will do the
right thing depending on which version of Python is being run.

There are other examples too, such as dealing with renamed modules,
unicode literals, etc.

llvm-svn: 250857
2015-10-20 21:05:49 +00:00
Zachary Turner 32064024b9 Fix potential file i/o problem with python handles.
llvm-svn: 250838
2015-10-20 17:38:49 +00:00
Tamas Berghammer cdaab620d2 Fix MSVC build after 250820
Work around a bug in MSVC 12 where _HAS_EXCEPTIONS=0 don't eliminate
all usage of __uncaught_exception with including eh.h what declares
that function.

llvm-svn: 250833
2015-10-20 16:16:35 +00:00
Tamas Berghammer da4e8ed69a Revert "Make dwarf parsing multi-threaded"
Revert it bacuse it introduces several race condition detected by
the build bots.

This reverts commit 5107a5ebdb7c4571a30a7098b40bf8098b678447.

llvm-svn: 250832
2015-10-20 15:43:40 +00:00
Tamas Berghammer f84916d40f Make dwarf parsing multi-threaded
Loading the debug info from a large application is the slowest task
LLDB do. This CL makes most of the dwarf parsing code multi-threaded.

As a result the speed of "attach; backtrace; exit;" when the inferior
is an LLDB with full debug info increased by a factor of 2 (on my machine).

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

llvm-svn: 250821
2015-10-20 12:42:10 +00:00
Tamas Berghammer ccb367609b Add a new task pool class to LLDB
The purpose of the class is to make it easy to execute tasks in parallel

Basic design goals:
* Have a very lightweight and easy to use interface where a list of
  lambdas can be executed in parallel
* Use a global thread pool to limit the number of threads used
  (std::async don't do it on Linux) and to eliminate the thread creation
  overhead
* Destroy the thread currently not in use to avoid the confusion caused
  by them during debugging LLDB

Possible future improvements:
* Possibility to cancel already added, but not yet started tasks
* Parallel for_each implementation
* Optimizations in the thread creation destroyation code

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

llvm-svn: 250820
2015-10-20 12:42:05 +00:00
Pavel Labath f29914883d Increase default memory cache line size for android
Summary:
ADB packets have a maximum size of 4k. This means the size of memory reads does not affect speed
too much (as long as it fits in one packet). Therefore, I am increasing the default memory read
size for android to 2k. This value is used only if the user has not modified the default
memory-cache-line-size setting.

Reviewers: clayborg, tberghammer

Subscribers: tberghammer, danalbert, srhines, lldb-commits

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

llvm-svn: 250814
2015-10-20 10:33:17 +00:00
Tamas Berghammer 8f81e88184 Fix build and some warnings after r250798
llvm-svn: 250810
2015-10-20 09:21:04 +00:00
Mohit K. Bhakkad 79be9e8cb5 [LLDB] Insert names with same signo as alias instead of a new entry
Reviewers: clayborg, labath.
Subscribers: jaydeep, dsanders, bhushan, sagar, nitesh.jain, emaste,lldb-commits.
Differential Revision: http://reviews.llvm.org/D13646

llvm-svn: 250801
2015-10-20 07:05:46 +00:00
Enrico Granata d717cc9f71 Rationalization of includes in the data formatters code
llvm-svn: 250798
2015-10-20 04:50:09 +00:00
Eugene Zelenko 8d15f33b45 Fix Clang-tidy modernize-use-override warnings in source/Plugins/Language; other minor fixes.
Differential Revision: http://reviews.llvm.org/D13876

llvm-svn: 250789
2015-10-20 01:10:59 +00:00
Siva Chandra b1f4a50912 Adjust TestCompletion.py and TestDumpDynamic.py after recent changes.
Reviewers: zturner, spyffe

Subscribers: lldb-commits

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

llvm-svn: 250782
2015-10-20 01:03:18 +00:00
Sean Callanan f2bd5c3e22 Added support to the expression command for dropping into the REPL at will.
"expr -r" does this.  It also returns to a REPL if the LLDB command interpreter
is neseted inside it, for example in cases where a REPL command resulted in a
breakpoint being hit or a crash.

llvm-svn: 250780
2015-10-20 00:55:21 +00:00
Sean Callanan 3e7e915dca Added support for the "--repl" argument to LLDB.
This makes LLDB launch and create a REPL, specifying no target so that the REPL
can create one for itself.  Also added the "--repl-language" option, which
specifies the language to use.  Plumbed the relevant arguments and errors
through the REPL creation mechanism.

llvm-svn: 250773
2015-10-20 00:23:46 +00:00
Greg Clayton 7449ab9834 Fixed PlatformDarwin to locate Xcode by using HostInfo::GetProgramFileSpec(). This function returns the FileSpec to the program that is running the LLDB.framework or lldb.so and is more reliable than checking the path of LLDB.framework/lldb.so itself since it might not exist within the Xcode.app bundle (DYLD_FRAMEWORK_PATH). Then we check DEVELOPER_DIR, then check the currently installed Xcode with xcrun.
<rdar://problem/23167253>

llvm-svn: 250772
2015-10-20 00:22:50 +00:00
Greg Clayton 5b94e11873 When calling FileSpec::AppendPathComponent() we don't need to include "." in the path if m_filename is set to exactly '.'. Previously this would cause a FileSpec object that looked like:
m_directory = "/tmp"
m_filename = "."
                                         
To look like:

m_directory = "/tmp/."
m_filename = "foo.txt"

if "foo.txt" was appended to it. With this fix it will be:

m_directory = "/tmp"
m_filename = "foo.txt"

llvm-svn: 250770
2015-10-20 00:17:39 +00:00
Greg Clayton e75e5d8afa Make sure we restore the process events so they aren't hijacked when using the async attach when attaching to a process by name and with waitfor.
<rdar://problem/22821480>

llvm-svn: 250768
2015-10-20 00:14:20 +00:00
Enrico Granata b3f0c3400f Introduce the concept of a type that is meaningless without dynamic resolution, which are essentially placeholder types meant to appease a language's type system but do not offer any actual information to the debugger, unless further resolved
This is currently meant for data formatters to know to ignore such types in caching and lookup

llvm-svn: 250767
2015-10-20 00:13:19 +00:00
Zachary Turner ff890daf12 Convert print statements to print function calls.
This patch was generating by running `2to3` on the files in the
lldb/test directory.  This patch should be NFC, but it does
introduce the `from __future__ import print_function` line, which
will break future uses of the print statement.

llvm-svn: 250763
2015-10-19 23:45:41 +00:00
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