Commit Graph

13615 Commits

Author SHA1 Message Date
Todd Fiala e4beddce55 skip TestEvents.py on Darwin
This is generating a SIGSEGV somewhere around 1 in 10 runs on OS X.

Skip the whole test to avoid testbot noise until we can get the
SIGSEGV addressed.

Tracking with:
https://llvm.org/bugs/show_bug.cgi?id=25924

llvm-svn: 256257
2015-12-22 17:24:31 +00:00
Todd Fiala 5bdbef649b test infra: fix lldbinline tests to work with rerun
Fixes:
https://llvm.org/bugs/show_bug.cgi?id=25922

llvm-svn: 256255
2015-12-22 17:14:47 +00:00
Adrian McCarthy c2961ab889 Improve error handling for `frame select` command when there are too many arguments.
Bug:  https://llvm.org/bugs/show_bug.cgi?id=25847

It now gives a more specific error message and then returns instead of trying to select the wrong frame.

llvm-svn: 256251
2015-12-22 16:50:28 +00:00
Ed Maste 1ca9cda583 Add expectedFailureFreeBSD to tests failing in the same way as on Linux
llvm.org/pr25819

llvm-svn: 256250
2015-12-22 16:47:04 +00:00
Ed Maste 4d156ae0c8 Remove PC -1 offset from FreeBSD arm64 UpdateAfterBreakpoint
It was a copy-and-paste leftover.

llvm-svn: 256248
2015-12-22 15:57:21 +00:00
Tamas Berghammer cfcdbde3ce Don't pack the structs of the jit debug interface
None of the documentation mentions that the entries are packed structs
and also none of the other implementation I found pack them.

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

llvm-svn: 256244
2015-12-22 15:23:33 +00:00
Enrico Granata c3281bd05c No need for a custom function here; just use what C provides
llvm-svn: 256223
2015-12-22 00:47:36 +00:00
Enrico Granata ef8dde6269 Reduce code duplication
llvm-svn: 256212
2015-12-21 23:10:17 +00:00
Tamas Berghammer fde63cad6b Fix emulation of the thumb str instruction
llvm-svn: 256147
2015-12-21 12:06:36 +00:00
Siva Chandra ea35dbeff2 [TestCPPAuto] On linux, we need -fno-limit-debug-info.
Summary: Also xfailed for GCC as there is an problem with debug info generation.

Reviewers: granata.enrico

Subscribers: lldb-commits

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

llvm-svn: 256067
2015-12-19 00:52:29 +00:00
Todd Fiala bfc2dc7ab7 Xcode: remove --test-subdir test reduction from previous check-in
That was not meant to go in, as it was for testing my last change.

llvm-svn: 256062
2015-12-18 23:22:15 +00:00
Todd Fiala a350a94646 Xcode build: pass in vt100 to the Python test runner.
Some of the Green Dragon tests were failing because they didn't
have a TERM set.

llvm-svn: 256059
2015-12-18 23:12:19 +00:00
Enrico Granata 31ccb51a7f __ne__ is the actual Python operator; __neq__ is a typo
llvm-svn: 256053
2015-12-18 22:46:58 +00:00
Enrico Granata 36f51e4c97 Add support for seeing through clang::AutoType in ClangASTContext
This allows LLDB to deal correctly with expression result variables declared via the C++11 'auto' keyword

rdar://problem/23960490

llvm-svn: 256051
2015-12-18 22:41:25 +00:00
Todd Fiala e78b3e6fcf remove xcshareddata exclusion from .gitignore; add desktop and lldb-python-testsuite shared schemes used by Xcode buildbot
llvm-svn: 256043
2015-12-18 22:08:24 +00:00
Enrico Granata 11799e1529 Turns out, many people define structs named Point that do not share the same names that this formatter uses for fields; use the {} syntax to make it so that a failure to parse the summary doesn't cause the entire printout to fail
llvm-svn: 256042
2015-12-18 22:04:47 +00:00
Enrico Granata 828eb2173b Add a test case that validates that my change in r255603 does the right thing
llvm-svn: 256034
2015-12-18 21:35:21 +00:00
Enrico Granata e242624ca9 Add API to support retrieving the formatters category for a specific language
llvm-svn: 256033
2015-12-18 21:25:24 +00:00
Todd Fiala 9c533783c1 Xcode build: add a lldb-python-test-suite target.
The llvm.org Green Dragon OS X lldb builder will be using this
target to run the LLDB Python test suite.

llvm-svn: 256027
2015-12-18 20:44:45 +00:00
Todd Fiala 2094c03803 mark TestGlobalVariables.py as XFAIL on OS X dwarf.
tracking bug:
https://llvm.org/bugs/show_bug.cgi?id=25872

llvm-svn: 256006
2015-12-18 18:40:33 +00:00
Tamas Berghammer 6517b004b2 Fix the emulation of arm strd instruction
The incorrect instruction emulation caused issues in the stack unwinding
code when strd was used to push 2 register to the stack with writeback.

llvm-svn: 256000
2015-12-18 15:35:08 +00:00
Jim Ingham 277dc3f4d5 Fix formatting for last commit.
llvm-svn: 255973
2015-12-18 02:15:25 +00:00
Jim Ingham a202357197 Make the Language print the description of the Exception Breakpoint resolver. Also
have the breakpoint description print the precondition description if one exists.
No behavior change.

<rdar://problem/22885189>

llvm-svn: 255972
2015-12-18 02:14:04 +00:00
Jason Molenda 545304d323 The lldb side changes to go along with r255711 where a new
"thread-pcs" key is added to the T (questionmark) packet in
gdb-remote protocol so that lldb doesn't need to query the
pc values of every thread before it resumes a process.

The only odd part with this is that I'm sending the pc 
values in big endian order, so we need to know the endianness
of the remote process before we can use them.  All other
register values in gdb-remote protocol are sent in native-endian
format so this requirement doesn't exist.  This addition is a
performance enhancement -- lldb will fall back to querying the
pc of each thread individually if it needs to -- so when
we don't have the byte order for the process yet, we don't
use these values.  Practically speaking, the only way I've 
been able to elicit this condition is for the first
T packet when we attach to a process.

<rdar://problem/21963031> 

llvm-svn: 255942
2015-12-18 00:45:35 +00:00
Todd Fiala 51c8c8f372 Revert "Disable test reruns on arm unless explicitly marked with --rerun-all-issues"
and
Revert "prevent rerun logic from kicking in on test runs including aarch64."

This reverts commits:
r255719
r255747

llvm-svn: 255935
2015-12-17 22:42:50 +00:00
Todd Fiala 1ad3bba747 ResultsFormatter: always lock on handle_event()
Some of the newer structures were not protected.  Now that we have
a recursive lock, we just lock the whole handle_event() call.

llvm-svn: 255917
2015-12-17 19:13:58 +00:00
Ewan Crawford 2e9207150a [RenderScript] Support all RS allocation types
Currently we can just inspect the details of the most common allocation types.
This patch allows us to support all the types defined by the RS runtime in its `RsDataType` enum.
Including handlers, matrices and packed graphical data.

llvm-svn: 255904
2015-12-17 16:40:05 +00:00
Aidan Dodds a15b44c967 Patch cmake to allow detection of python 2.7.9+
Some distributions of python have their version defined as follows in patchlevel.h (note the '+'):
#define PY_VERSION "2.7.9+"
The '+' char needs to be stripped by the cmake regex so that LLDBs python lib detection is successful.

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

llvm-svn: 255893
2015-12-17 14:13:39 +00:00
Ewan Crawford 37395ad211 Inspect DW_AT_const_value global static const variables
This patch adds support for printing global static const variables which are given a DW_AT_const_value DWARF tag by clang.

Fix for bug https://llvm.org/bugs/show_bug.cgi?id=25653

Reviewers: clayborg, tberghammer
Subscribers: emaste, lldb-commits
Differential Revision: http://reviews.llvm.org/D15576

llvm-svn: 255887
2015-12-17 11:59:47 +00:00
Tamas Berghammer 0e59c516c4 XFAIL some tests failing for Windows -> Android
llvm-svn: 255885
2015-12-17 10:58:35 +00:00
Pavel Labath a6c8217c25 Add AccessModifierOffset to clang-format style
Summary:
As we override the indent option of the LLVM style, we need to override the access modifier
offset as well. Otherwise, classes will be formatted like such
class A
{
  public:
    int foo;
};
which is not used anywhere in LLDB. This option makes clang-format style more similar to LLDB and
brings it closer to the original intention of LLVM style, which was to not indent access
modifiers.

Reviewers: zturner, tfiala

Subscribers: lldb-commits

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

llvm-svn: 255882
2015-12-17 09:19:36 +00:00
Todd Fiala 8fbad24d18 test infra: force rerun to use parallel runner
We've now seen the rerun test phase hang in a few
scenarios.  Eliminate the serial test runner (which
is not exercised nearly as much as the others), by
using a multi-worker test runner strategy with a single
worker.  This should rule out whether this is related
to the serial test runner strategy.

llvm-svn: 255880
2015-12-17 06:55:50 +00:00
Kate Stone ef8b4e22f7 Set the minimum stack size for private state thread to 8MB
Demangling complex Boost symbols can exhaust the default stack size.  In practice, any thread that calls into LLDB functionality that touches symbols runs this risk.  Guaranteeing a reasonable minimum for our own private state thread addressees some known scenarios debugging processes that make use of cpp-netlib.

llvm-svn: 255868
2015-12-17 01:37:00 +00:00
Greg Clayton 3feddff744 Don't demangle a name when Mangled::GetName() is called with ePreferMangled. Only demangle if this isn't the the value for the "preference" argument indicating the user wants the demangled name. This will stop a lot of symbols from being demangled when parsing the symbol table in ObjectFileMachO.
llvm-svn: 255864
2015-12-17 01:00:50 +00:00
Greg Clayton 8b8874edbc Don't strip types of their typedefs when getting function types.
llvm-svn: 255863
2015-12-17 00:58:41 +00:00
Dawn Perchik bfd96183ef Rework breakpoint language filtering to use the symbol context's language.
This patch reworks the breakpoint filter-by-language patch to use the
symbol context instead of trying to guess the language solely from the
symbol's name. This has the advantage that symbols compiled with debug
info will have their actual language known. Symbols without debug info
will still do the same "guess"ing because Symbol::GetLanguage() is
implemented using Mangled::GuessLanguage(). The recognition of ObjC
names was merged into Mangled::GuessLanguage.

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

llvm-svn: 255808
2015-12-16 19:40:00 +00:00
Todd Fiala 271186bbb6 Remove the "MacOSX and Linux" and "Linux" targets from Xcode.
I added these long ago, but as we work to simplify the Xcode
project, their lack of use has made them cleanup targets.

llvm-svn: 255775
2015-12-16 16:09:59 +00:00
Ed Maste a6b380652d Wrap Notes in --help output to 80 columns
llvm-svn: 255774
2015-12-16 15:49:38 +00:00
Ed Maste f7fe3b99c7 Include -c, -core in the lldb(1) man page
llvm-svn: 255771
2015-12-16 15:37:21 +00:00
Ed Maste d4ff820fb8 Man page whitespace/formatting change to appease igor(1)
igor is a tool to detect common problems and style conformance issues in
man pages and other documents.  This is a non-content change to address
the items it reported, before making content changes.

See http://www.wonkity.com/~wblock/igor/igor.1.html for more information
about igor(1).

llvm-svn: 255769
2015-12-16 14:59:48 +00:00
Pavel Labath 25e241b006 [test] Add ability to expect timeouts
Summary:
This adds ability to mark test that do not complete due to hangs, crashes, etc., as "expected",
to avoid flagging the build red for a known problem. Functionally, this extends the scope of the
existing expectedFailureXXX decorators to cover these states as well. Once this is in, I will
start replacing the magic list of failing tests in dosep.py with our regular annotations which
should hopefully make code simpler.

Reviewers: tfiala

Subscribers: lldb-commits

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

llvm-svn: 255763
2015-12-16 12:09:45 +00:00
Todd Fiala cd817ba2ef Disable test reruns on arm unless explicitly marked with --rerun-all-issues
Workaround part 2 for:
https://llvm.org/bugs/show_bug.cgi?id=25844

llvm-svn: 255747
2015-12-16 02:46:57 +00:00
Todd Fiala 9ce27bba29 Really fix Xcode build.
Fixes target membership settings from my last check-in.

llvm-svn: 255746
2015-12-16 02:18:56 +00:00
Todd Fiala 7236f32414 Xcode project changes for r255729.
llvm-svn: 255742
2015-12-16 01:20:08 +00:00
Enrico Granata b13293876c Add a symbolic link from the test directory to the actual - elsewhere located - path that contains the test cases - and teach the test suite driver to resolve paths that contain symbolic links to test cases
This is meant to reduce the typing that one needs to do to get from the test subdirectory to actual test cases. Now one can just do

$ ./dotest.py ./testcases/<yaddayaddayadda>

llvm-svn: 255741
2015-12-16 01:15:49 +00:00
Siva Chandra d8335e9ab4 Read macro info from .debug_macro section and use it for expression evaluation.
Summary:
DWARF 5 proposes a reinvented .debug_macro section. This change follows
that spec.

Currently, only GCC produces the .debug_macro section and hence
the added test is annottated with expectedFailureClang.

Reviewers: spyffe, clayborg, tberghammer

Subscribers: lldb-commits

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

llvm-svn: 255729
2015-12-16 00:22:08 +00:00
Todd Fiala 54e120910c prevent rerun logic from kicking in on test runs including aarch64.
This is a workaround for:
llvm.org/pr25844

llvm-svn: 255719
2015-12-15 23:56:26 +00:00
Adrian McCarthy e376ba0331 Propagate socket_error exception from handle_read. Otherwise Ninja crashes.
llvm-svn: 255718
2015-12-15 23:51:27 +00:00
Jason Molenda 7e9bd599a2 Add a new "thread-pcs" key-value pair to the T packet response from
debugserver.  thread-pcs has a comma separated list of base 16
addresses - the current pc value for every thread in the process.
It is a partner of the "threads:" key where a list of thread IDs
is given.  The pc values in thread-pcs correspond one-to-one with
the thread IDs in the threads list.

This is a part of performance work.  When lldb is instruction
stepping / fast stepping over a range of addresses for e.g. a "next"
command, and it steps in to another function, lldb will put a
breakpoint on the return address and continue the process.  Before
it calls continue, it calls Thread::SetupForResume on all the
threads, and SetupForResume needs to get the current pc value for
every thread to see if any are at a breakpoint site.

The result is that issuing a "c" continue requires that we send
"read pc register" packets for every thread.

We may do this sequence of step-into-function / continue-to-get-out
many times for a single user-visible "next" or "step" command, and
with highly multithreaded programs, we are sending many extra
packets to get all the thread values.

I looked at including this data in the "jstopinfo" JSON that
we already have in the T packet.  But there are three problems that
would make this increase the size of the T packet significantly.
First, numbers in JSON are base 10.  Second, a proper JSON would
have something like "thread_pcs": { "34224331112":383772734222, ...}
for thread-id 34224331112 and pc 383772734222 - so we're including
a whole extra copy of the thread id in addition to the pc.  Third,
the JSON text is hex-ascii'fied so the size of it is doubled.
In one example, 

threads:585db8,585dc7,585dc8,585dc9,585dca,585dce;thread-pcs:100001400,7fff8badc6de,7fff8badcff6,7fff8badc6de,7fff8badc6de,7fff8badc6de;

The "thread-pcs" adds 86 characters - 136 characters for both 
threads and thread-pcs.  Doing this in JSON would look like

threads={"5791160":4294972416,"5791175":140735536809694,"5791176":140735536812022,"5791177":140735536809694,"5791178":140735536809694,"5791182":140735536809694}

or 160 characters -- or 320 characters once it is hex-asciified.

Given that it's 86 characters vrs 320, I went with the old style
approach.  I've seen real world programs that have up to 60 threads
in them, so this could result in vastly larger packets if it
was all done in the JSON with hex-ascii expansion.

If we had an all-JSON T packet, where we didn't need to hex-ascii
encode anything, that would have been the better approach.  But
we'd already have a list of threads in JSON at that point so
the additional text wouldn't be too bad.

I'm working on finishing the patches to lldb to use this data;
will commit those once I've had a chance to test them more.  But
I wanted to commit the debugserver bits which are more
straightforward.


<rdar://problem/21963031> 

llvm-svn: 255711
2015-12-15 23:47:44 +00:00
Todd Fiala 3a7fcbb441 test infra: support test reruns in xunit formatter.
llvm-svn: 255705
2015-12-15 23:25:56 +00:00