Commit Graph

12756 Commits

Author SHA1 Message Date
Greg Clayton b877a20211 Don't enter interactive loop when finished running the test suite.
llvm-svn: 248513
2015-09-24 16:37:41 +00:00
Bruce Mitchener 68acf7acd2 Improve error reporting for failing to find argdumper.
Reviewers: tfiala, granata.enrico, clayborg

Subscribers: lldb-commits

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

llvm-svn: 248466
2015-09-24 07:08:29 +00:00
Bruce Mitchener 3ad353f3f4 Rename clang_type -> compiler_type for variables.
Reviewers: clayborg

Subscribers: lldb-commits

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

llvm-svn: 248461
2015-09-24 03:54:50 +00:00
Bruce Mitchener 16eb1d2278 execinfo.h isn't needed on Mac OS X for Host.mm.
Summary: This is no longer needed as this file no longer calls backtrace().

Reviewers: clayborg

Subscribers: lldb-commits

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

llvm-svn: 248457
2015-09-24 01:37:32 +00:00
Greg Clayton 414dba5799 Added the ability to register key callbacks for much easier key handling. Also added the elapsed time display to the status bar.
llvm-svn: 248450
2015-09-24 00:19:42 +00:00
Ying Chen d93aa1060a Check existence of SIGHUP before using it
Summary: -SIGHUP doesn't exist on Windows

Reviewers: tfiala

Subscribers: lldb-commits

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

llvm-svn: 248434
2015-09-23 21:53:18 +00:00
Enrico Granata d188803f45 The Visual Studio compiler does not like this C-ism when 'enum class'es are involved
llvm-svn: 248429
2015-09-23 20:49:15 +00:00
Enrico Granata 15a67f49aa Make the ObjCLanguageRuntimes comply with llvm-style RTTI
llvm-svn: 248427
2015-09-23 20:12:19 +00:00
Enrico Granata e5ffa089cc Revert 248366 "Testcase and fix for bug 24074"
This commit introduced regressions in several test cases on FreeBSD and Mac OS X

llvm-svn: 248421
2015-09-23 19:32:56 +00:00
Siva Chandra 4327d7aa12 [TestCppIncompleteTypes] Fix Makefile to handle different archs.
Reviewers: chying

Subscribers: lldb-commits

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

llvm-svn: 248416
2015-09-23 18:36:39 +00:00
Ed Maste c6dd651518 Handle new types in ClangASTContext::GetEncoding
And remove the switch default, so that the -Wcovered-switch-default
warning will catch new types next time they're added.

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

llvm-svn: 248414
2015-09-23 18:32:34 +00:00
Ed Maste 9b597c7a1e Remove expectedFailureFreeBSD from passing test
ClassTypesTestCase::test_with_dwarf_and_constructor_name

llvm.org/pr14540

llvm-svn: 248411
2015-09-23 18:23:38 +00:00
Ed Maste 00719f5dec Remove expectedFailureFreeBSD from passing TestChangeValueAPI test
This test used fail intermittently, but now passes consistently on
FreeBSD in local runs. We'll investigate further if it's intermittent
on the FreeBSD buildbot, once it's restored.

llvm.org/pr15039

llvm-svn: 248410
2015-09-23 18:20:51 +00:00
Siva Chandra cebabb9fc0 DWARFASTParserClang::CompleteTypeFromDWARF: Handle incomplete baseclass or child
Summary:
With this change DWARFASTParserClang::CompleteTypeFromDWARF returns false if
DWARFASTParserClang::ParseChildMembers returns false. Similarly, it returns
false if any base class is of an incomplete type. This helps in cases like
these:

  class Foo
  {
  public:
    std::string str;
  };
  ...
  Foo f;

If a file with the above code is compiled with a modern clang but without
the -fno-limit-debug-info (or similar) option, then the DWARF has only
a forward declration for std::string. In which case, the type for
"class Foo" cannot be completed. If LLDB does not detect that a child
member has incomplete type, then it wrongly conveys to clang (the LLDB
compiler) that "class Foo" is complete, and consequently crashes due to
an assertion failure in clang when running commands like "p f" or
"frame var f".

Reviewers: clayborg

Subscribers: lldb-commits

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

llvm-svn: 248401
2015-09-23 17:47:08 +00:00
Todd Fiala ea594abc78 test framework: fixed issue when using results formatter with no formatter options
I broke the formatter options-passing parsing when no formatter
options are provided.

llvm-svn: 248397
2015-09-23 17:20:09 +00:00
Todd Fiala ea73624e5f Cleaned up results formatter options hand-off.
* --results-formatter-options renamed to --results-formatter-option,
  with short version of -O

* Multiple --results-formatter-option=OPTION can be specified.  The
  comma-separating mechanism has been removed.

* XunitFormatter options modified: -n and -r are now short forms of
  --ignore-skip-name and --ignore-skip-reason.  Those long option
  names were tweaked lightly.  They also can be specified multiple
  times on the command line.  The comma-separating, multiple-pattern-
  per-option mechanism has been removed.

One can now specify:

  dotest.py --results-file stdout -O-ndsym -O-nlldb-mi

for example, to ignore reporting skips for dsym-related or lldb-mi-related
tests in the xUnit report.

llvm-svn: 248384
2015-09-23 15:21:28 +00:00
Tamas Berghammer edf1465a56 Fix xcode build after r248366
llvm-svn: 248373
2015-09-23 11:00:35 +00:00
Pavel Labath 84f6f277ac Fix race condition during process detach
Summary:
The following situation occured in TestAttachResume:

The inferior was stoped at a breakpoint and we did a continue, immediately followed by a detach.
Since there was a trap instruction under the IP, the continue did a step-over-breakpoint before
resuming the inferior for real. In some cases, the detach command was executed between these two
events (after the step-over stop, but before continue). Here, public state was running, but
private state was stopped. This caused a problem because HaltForDestroyOrDetach was checking the
public state to see whether it needs to stop the process (call Halt()), but Halt() was checking
the private state and concluded that there is nothing for it to do.

Solution: Instead of Halt() call SendAsyncInterrupt(), which will then cause Halt() to be
executed in the context of the private state thread. I also rename HaltForDestroyOrDetach to
reflect it does not call halt directly.

Reviewers: jingham, clayborg

Subscribers: lldb-commits

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

llvm-svn: 248371
2015-09-23 10:16:57 +00:00
Ravitheja Addepally 9fcf72ef9b Testcase and fix for bug 24074
Summary:
In bug 24074, the type information is not shown
correctly. This commit  includes the following -
-> Changes for displaying correct type based on
   current lexical scope for the command "image
   lookup -t"
-> The corresponding testcase.

Reviewers: jingham, ovyalov, spyffe, richard.mitton, clayborg

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

llvm-svn: 248366
2015-09-23 07:19:02 +00:00
Bruce Mitchener 77b94d4416 Fix covered-switch-default warning in FormatManager.
Summary:
The default case doesn't need to be here as the switch covers
all possible values. If there's a new "lazy bool" value added
in the future, the compiler would start to warn about the new
case not being covered.

Reviewers: granata.enrico, clayborg

Subscribers: lldb-commits

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

llvm-svn: 248365
2015-09-23 02:33:30 +00:00
Bruce Mitchener 7fa48ab6ce Fix indentation in ExpressionParser.h.
llvm-svn: 248364
2015-09-23 02:23:02 +00:00
Enrico Granata 9c63f99a13 Allow CompilerType to express a vote on whether oneliner printing should happen
llvm-svn: 248363
2015-09-23 02:04:34 +00:00
Enrico Granata c6bf2e2d1d Add {TypeSystem|CompilerType}::GetTypeForFormatters()
Different type system may have different notions of attributes of a type that do not matter for data formatters matching purposes
For instance, in the case of clang types, we remove some qualifiers (e.g. "volatile") as it doesn't make much sense to differentiate volatile T from T in the data formatters

This new API allows each type system to generate, if needed, a type that does not have those unwanted attributes that the data formatters can then consume to generate matches

llvm-svn: 248359
2015-09-23 01:39:46 +00:00
Bruce Mitchener 48ea900c67 Use opaque_compiler_type_t in place of void*.
Reviewers: clayborg

Subscribers: lldb-commits

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

llvm-svn: 248352
2015-09-23 00:18:24 +00:00
Jason Molenda 040975472c A small fixup needed for debugserver to work natively
on iOS devices; fallout from Vince's cleanups made
in r237218 back in May.  iOS native lldbs will call
StartDebugserverProcess() with a random port #
(see ProcessGDBRemote::LaunchAndConnectToDebugserver)
and neither side of this conditional expression should
be followed in that case.

I added an "if (in_port == 0) { ..." check around the
entire if/then/else and indented the block of code so
the diff looks larger than it really is.

<rdar://problem/21712643> 

llvm-svn: 248343
2015-09-22 23:25:44 +00:00
Enrico Granata 2e4ff97cb7 Fix a test case which was failing. There was no actual problem in the test logic, just a cosmetic issue with the presentation of the result by Foundation
llvm-svn: 248339
2015-09-22 23:08:13 +00:00
Enrico Granata f515729a07 Move the "run" alias from process launch --shell to process launch --shell-expand-args when building on OS X
The argdumper-based launching is more friendly to System Integrity Protection, and will work on older releases of OS X as well

Leave non-Apple builds alone

llvm-svn: 248338
2015-09-22 22:57:12 +00:00
Todd Fiala 871b2e5e30 test runner: remove print from prior commit; fixup listner socket backlog
When doing test event collation from dotest inferiors to the parallel test
runner, I had a hard-coded small value for the socket backlog. Fix it to
be 2*num workers so we don't fail socket connections from inferiors.

llvm-svn: 248337
2015-09-22 22:47:34 +00:00
Todd Fiala 83c32e3a49 test framework: default to threading-based test runners
Windows gets threading-pool, OS X versions < 10.10 get
multiprocessing, everyone else gets threading.

llvm-svn: 248323
2015-09-22 21:19:40 +00:00
Enrico Granata 7eed48779d On second thought, amend the previous patch to pass itself the ValueObject& for the static value instead of just its type
llvm-svn: 248316
2015-09-22 19:58:02 +00:00
Enrico Granata c74275bc4a Move the logic to post-process dynamic types for ValueObject purposes from the ValueObjects to the LanguageRuntime plugins
This is meant to cover cases such as the obvious

Base *base = new Derived();

where GetDynamicTypeAndAddress(base) would return the type "Derived", not "Derived *"

llvm-svn: 248315
2015-09-22 19:45:52 +00:00
Todd Fiala da817b6186 Test runner process group isolation take 2.
This one does not create a session, but just creates a
new process group in the same session.

llvm-svn: 248306
2015-09-22 18:05:11 +00:00
Chaoren Lin 307d3ae4b4 Update TestChangeProcessGroup to remove obsolete workaround.
Expression evaluation in syscalls should work now.

Reviewers: labath

Subscribers: lldb-commits

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

llvm-svn: 248301
2015-09-22 17:37:34 +00:00
Greg Clayton d13c4fb7f2 Allow TAB key to switch first responder when tests are running or completed.
Typing the shortcut key ('.' for 'pass', 'e' for 'error', etc) will toggle the visibility of the test in the Results window.

llvm-svn: 248290
2015-09-22 17:18:15 +00:00
Bruce Mitchener 23a3b0e8a4 Rename clang_type_t to opaque_compiler_type_t.
Summary:
This is no longer related to Clang and is just an opaque pointer
to data for a compiler type.

Reviewers: clayborg

Subscribers: lldb-commits

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

llvm-svn: 248288
2015-09-22 17:04:24 +00:00
Bruce Mitchener 126b8b111a Remove IRToDWARF.h
Summary:
The corresponding .cpp file was removed in September of 2011 in
r139772.

Reviewers: spyffe, clayborg

Subscribers: lldb-commits

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

llvm-svn: 248286
2015-09-22 16:30:26 +00:00
Greg Clayton 825ab5878a Add missing file that contains the curses test suite code. To run with curses you now execute:
% ./dotest.py --results-formatter=curses_results.Curses --results-file=/dev/stdout

llvm-svn: 248285
2015-09-22 16:29:15 +00:00
Todd Fiala f42df67cad Roll back r248282.
I'm seeing timed out tests not properly timing out on the Linux
build bot after this change.  Not sure if it is related but
seems suspect.

llvm-svn: 248284
2015-09-22 16:03:43 +00:00
Todd Fiala 1bf2bb713b test runner: Unix systems now put inferior dotest in its own process group.
This increases isolation as it relates to signal handling between parent and
children.

llvm-svn: 248282
2015-09-22 15:21:50 +00:00
Tamas Berghammer 3f934e4b13 Fix register names in EmulateInstructionMIPS.cpp
llvm-svn: 248281
2015-09-22 15:04:39 +00:00
Vasileios Kalintiris 747372b91a Do not use pthread_setname_np() if we don't have GLIBC or Android.
Summary:
pthread_setname_np() is a nonstandard GNU extension and isn't available
in every C library. Check before it's usage that GLIBC is available or
that we are targeting Android.

Reviewers: clayborg, ovyalov

Subscribers: lldb-commits

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

llvm-svn: 248280
2015-09-22 14:52:31 +00:00
Sagar Thakur af368f6e88 [MIPS32] Emulate MSA instructions for MIPS32
This patch adds MSA branch instruction emulation for MIPS32.

Reviewers: tberghammer, jaydeep
Subscribers: mohit.bhakkad, bhushan, nitesh.jain
Differential: http://reviews.llvm.org/D12898
llvm-svn: 248277
2015-09-22 13:57:11 +00:00
Ewan Crawford d10ca9deee RenderScript lookup bug fix
After the std::move operation the unique pointer is null. 
So this statement always returns a null pointer. 

Also remove unnecessary call to Module::ParseAllDebugSymbols(), 
which spews errors due to how it incorrectly tries to parse DWARF DIE types.

llvm-svn: 248274
2015-09-22 13:36:35 +00:00
Ed Maste 80973130ef Remove expectedFailureFreeBSD from passing tests
These two tests are skipped on Linux with a comment that the behaviour
is as expected, but they are consistently passing on FreeBSD now.

llvm.org/pr15989

llvm-svn: 248271
2015-09-22 13:31:16 +00:00
Ed Maste 6724f3ba7c Remove expectedFailureFreeBSD from passing test
HelloWorldTestCase::test_with_dwarf_and_process_launch_api passes
consistently for me and for John Wolfe.

llvm.org/pr21620

llvm-svn: 248269
2015-09-22 13:27:26 +00:00
Vasileios Kalintiris 187855b870 Remove unused header <execinfo.h>.
llvm-svn: 248268
2015-09-22 12:43:23 +00:00
Vasileios Kalintiris e6f54ef5d0 Check for GLIBC before including execinfo.h
Reviewers: ovyalov, clayborg

Subscribers: tberghammer, danalbert, llvm-commits, srhines

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

llvm-svn: 248256
2015-09-22 09:53:30 +00:00
Vasileios Kalintiris 44562da811 Use fcntl.h to retrieve the O_CREAT and O_RDWR constants.
Summary:
Normally, these macros are defined in fnctl.h. However, GLIBC exposes their
definition through <sys/file.h> too. This change allows us to compile
LLDB with non-GLIBC C libraries.

Reviewers: clayborg

Subscribers: lldb-commits

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

llvm-svn: 248255
2015-09-22 09:46:35 +00:00
Daniel Sanders e688a008cf [lldb-mi] Fix unresolved reference to llvm_regcomp and llvm_regfree.
Subscribers: krytarowski, labath, lldb-commits

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

llvm-svn: 248251
2015-09-22 09:08:44 +00:00
Jaydeep Patil 44d07fcc7c [LLDB][MIPS] microMIPS breakpoints, disassembly and compressed addresses
SUMMARY:
    This patch detects microMIPS symbols, sets breakpoints using un-compressed address and 
    display disassembly in mixed mode for microMIPS applications (running on bare-iron targets).

    Reviewers: clayborg
    Subscribers: nitesh.jain, mohit.bhakkad, sagar, bhushan and lldb-commits
    Differential Revision: http://reviews.llvm.org/D12079

llvm-svn: 248248
2015-09-22 06:36:56 +00:00
Todd Fiala 132c2c4bc7 xUnit test formatter: add options for ignoring skipped tests
Skipped tests can be dropped from xUnit reports if either
the name or the skip reason matches one of a given set of
regular expression patterns (via re.search(), not re.match()).
New formatter option for the xunit formatter:
--ignore-skip-matching-reason and
--ignore-skip-matching-name

Both are results-formatter options.

llvm-svn: 248247
2015-09-22 06:32:50 +00:00
Bruce Mitchener adb99821bc Fix typos.
Summary: Another round of minor typo fixes.

Reviewers: clayborg

Subscribers: lldb-commits

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

llvm-svn: 248243
2015-09-22 05:07:56 +00:00
Ed Maste d8f3c05466 Remove expectedFailureFreeBSD from passing test_expr_null_with_dwarf
llvm.org/pr21550

llvm-svn: 248236
2015-09-22 01:36:21 +00:00
Greg Clayton 87349248d4 Split the curses stuff out into a separate file so that we can import curses and lldbcurses at the module level.
Added key press handling and a first responder system and the ability for windows that can be first responders to be selected and have key presses routed to the first resonder, delegates and also travel up the parent chain.

Remove the temp file that was being created.

llvm-svn: 248232
2015-09-22 00:35:20 +00:00
Todd Fiala de9a44e3e9 test framework: parallel test runner sends terminate to formatter before printing to stdout
The parallel test runner now sends the terminate event to the formatter
(if there is one) after the parallel test runs but before dumping anything
to stdout/stderr at the end of the run.  This allows the existing
stdout/stderr summary reporting to co-exist nicely with a formatter like
the test_results.Curses that otherwise clobbers the screen.

llvm-svn: 248228
2015-09-22 00:15:50 +00:00
Greg Clayton b0d148e9f3 Fixed up the curses test results formatter to:
- rename "Failures" window to "Completed Tests"
- Remove the extra lock that I incorrectly added to the ResultsFormatter as it already had one
- Init the curses GUI with the right number of jobs when handling the "intialize" event
- tear down the curses GUI when tests complete

llvm-svn: 248179
2015-09-21 17:25:01 +00:00
Daniel Sanders 7d8e7bd7b5 [lldb-server] No need to add pthread twice.
Summary:
Following on from r247991:
pthread is in LLDB_SYSTEM_LIBS so there's no need to explicitly add it to the link.

Reviewers: labath

Subscribers: lldb-commits, labath, krytarowski

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

llvm-svn: 248177
2015-09-21 17:23:22 +00:00
Bruce Mitchener 937e3964e2 Further reduction of Clang-related header inclusion.
Reviewers: clayborg

Subscribers: lldb-commits

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

llvm-svn: 248176
2015-09-21 16:56:08 +00:00
Bruce Mitchener 4ad833400f Rename GetChildClangTypeAtIndex to GetChildCompilerTypeAtIndex
Reviewers: clayborg

Subscribers: lldb-commits

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

llvm-svn: 248175
2015-09-21 16:48:48 +00:00
Ed Maste ef3a04aae7 XFAIL TestConnectRemote.py on FreeBSD
Test fails with:
    error: Process 1 was reported after connecting to
    'connect://localhost:42922', but no stop reply packet was received

llvm.org/pr24896

llvm-svn: 248157
2015-09-21 13:44:57 +00:00
Ed Maste f9e493b8cb For now skip go tests that trigger assertion failures on FreeBSD
llvm.org/pr24895

llvm-svn: 248155
2015-09-21 13:32:21 +00:00
Ewan Crawford 78f339d19c Groundwork for better tracking of renderscript allocations and scripts
This patch adds some of the groundwork required for tracking the lifetime of scripts and allocations and collecting data associated with them during execution.
Committed on behalf of Aidan Dodds.

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

llvm-svn: 248149
2015-09-21 10:53:18 +00:00
Tamas Berghammer 1bacb9220a Fix MSVC warings in DWARFExpression.cpp
llvm-svn: 248148
2015-09-21 10:24:59 +00:00
Tamas Berghammer 6b144354ff Use ClangASTContext for compile units with language eLanguageTypeMipsAssembler
Both GNU AS and LLVM emits language type DW_LANG_Mips_Assembler for
all assembly code.

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

llvm-svn: 248146
2015-09-21 10:08:49 +00:00
Todd Fiala 1cc97b4399 test framework: ignore sighups
On OS X, we're occasionally seeing sighups come in to what
looks like the whole test runner process group (all the
multiprocessing workers and the main process).  It's not due
to a lost console.  This change has the main parallel test runner
process and the child worker processes ignore sighup.

Covers:
https://llvm.org/bugs/show_bug.cgi?id=24846

llvm-svn: 248141
2015-09-21 05:42:26 +00:00
Chaoren Lin f3057583e8 Fix Linux bot.
llvm-svn: 248075
2015-09-19 00:57:11 +00:00
Greg Clayton 1827fc25ab Added a curses based way to see the test suite running. Works only where curses is implemented. Try it out with:
./dotest.py --results-formatter=test_results.Curses --results-file=/dev/stdout

llvm-svn: 248072
2015-09-19 00:39:09 +00:00
Todd Fiala 40b180e7ee test events: added optional value type to extra event key/val pairs
The test events had worker indexes coming across as strings.  I
want them to be ints.  worker_index now comes across as an int in
the dicationary.

The optional type can be specified with:
--event-add-entries key=val[:type][,key2=val2[:type2]...]
The type piece may be 'int' at this time.  That is all.  Otherwise
it will be a string.

llvm-svn: 248066
2015-09-18 23:46:30 +00:00
Todd Fiala f77f8ae450 test events: add test_filename to all test-related events.
The test_filename is the full path to the TestCase class's
implementation file.

llvm-svn: 248060
2015-09-18 22:57:04 +00:00
Todd Fiala e83f140833 test events: announce worker count in new initialize event
See the following for details:
http://reviews.llvm.org/D12987

llvm-svn: 248059
2015-09-18 22:45:31 +00:00
Enrico Granata f6fe302ee4 On Linux, if you can't actually locate the libc++ install, do not attempt to use it
The failure mode when one gets this wrong is quite gnarly to then walk oneself out of, and if you can't actually find the library, trying to build against it is fairly pointless anyway
This + my previous skip_if_library_missing change should make running the libc++ tests on a Linux machine without it much more seamless

llvm-svn: 248057
2015-09-18 22:26:34 +00:00
Sean Callanan 9077e9f8f2 Moved ResolveSymbolicLink() to the FileSystem where it belongs, thanks
zturner!

http://reviews.llvm.org/D12984

llvm-svn: 248055
2015-09-18 22:24:57 +00:00
Sean Callanan db7d8083cd Added support for resolving symbolic links to FileSpec.
We use the symbolic link to resolver to find the target of the LLDB shlib
symlink if there is a symlink.  This allows us to find shlib-relative  resources
even when running under the testsuite, where _lldb.so is a symlink in the Python
resource directory.

Also changed a comment to be slightly more clear about what resolve_path in the
constructor for FileSpec means, since if we were actually using realpath() this
code wouldn't have been necessary.

http://reviews.llvm.org/D12984

llvm-svn: 248048
2015-09-18 21:39:31 +00:00
Keno Fischer c021abfaff Fix Makefile build by adding LLVMSupport to liblldb
`llvm-mi` now depends on the regex functionality available in LLVM's
support library.

llvm-svn: 248047
2015-09-18 21:32:10 +00:00
Todd Fiala 33896a9872 Adds parallel work queue index to test events, stdout/stderr results support.
See http://reviews.llvm.org/D12983 for details.

llvm-svn: 248036
2015-09-18 21:01:13 +00:00
Enrico Granata 0b5a6e3c08 Make libc++ tests skip themselves if libc++ is not actually loaded in the target
llvm-svn: 248028
2015-09-18 20:12:52 +00:00
Oleksiy Vyalov 2b38f33b82 Remove unused modules from module cache.
http://reviews.llvm.org/D12971

llvm-svn: 248017
2015-09-18 18:12:39 +00:00
Stephane Sezer 0a484819ca Link NetBSD with execinfo (CMAKE build)
Summary: FreeBSD and NetBSD share the same library execinfo.

Reviewers: joerg, sas, brucem

Subscribers: brucem, sas, lldb-commits

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

Change by Kamil Rytarowski <n54@gmx.com>

llvm-svn: 248007
2015-09-18 17:14:49 +00:00
Bruce Mitchener 1c95046aa5 Reduce inclusion of clang headers.
Summary:
With the recent changes to separate clang from the core structures
of LLDB, many inclusions of clang headers can be removed.

Reviewers: clayborg

Subscribers: lldb-commits

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

llvm-svn: 248004
2015-09-18 17:02:48 +00:00
Aidan Dodds 827802871b Differential Revision: http://reviews.llvm.org/D12966
On behalf of Dean De Leo

llvm-svn: 248003
2015-09-18 16:49:39 +00:00
Todd Fiala 8effde40ce xUnit test output: implemented proper xml escaping
Now does proper Unicode code region scanning for invalid XML
characters.  Strips out XML-invalid characters.

Does this for:
failure result: message, backtrace
error result: message, backtrace
skipped test: skip reason

pexpect timeouts were still generating characters that would break
XML readers (correctly so).

llvm-svn: 247998
2015-09-18 16:00:52 +00:00
Pavel Labath ded4e756b2 Fix link failures when BUILD_SHARED_LIBS=ON.
patch by Daniel Sanders.

Reviewers: labath, krytarowski

Subscribers: krytarowski, labath, lldb-commits

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

llvm-svn: 247991
2015-09-18 14:22:45 +00:00
Todd Fiala e7e911f06b xunit output: add backtraces; limit attribute
When pexpect errors occurred, the <error>/<failure> element's
message attribute could get too long and contain
invalid characters for xml attributes, even when quoted.
Particularly for pexpect failures.

Now <error> and <failure> entries truncate the message
attribute to contain the first line of the message.

<error> and <failure> blocks now contain both the
complete message and the backtrace (finally!) in the
text body of the error/failure element.

llvm-svn: 247973
2015-09-18 07:08:09 +00:00
Jaydeep Patil 630dd7ff35 [LLDB][MIPS] Debug bare-iron targets lacking support for qC /qfThreadInfo
SUMMARY:
    Using response.IsUnsupportedResponse instead of !response.IsNormalResponse().

    Reviewers: clayborg, labath
    Subscribers: nitesh.jain, mohit.bhakkad, sagar, bhushan and lldb-commits
    Differential Revision: http://reviews.llvm.org/D12876

llvm-svn: 247968
2015-09-18 05:32:54 +00:00
Todd Fiala 038bf833c4 Fixed test runner output for Jenkins xUnit publish
The Jenkins JUnit publisher handled our output, but
the Jenkins xUnit plugin's JUnit support did not like
that we didn't have a <testsuites> element wrapping
everything.  They both work with this fix.

llvm-svn: 247962
2015-09-18 01:43:08 +00:00
Enrico Granata 0b6003f3e6 Make LanguageRuntime::GetDynamicTypeAndAddress return a ValueType
For C++ and ObjC, dynamic values are always (at least somewhat) pointer-like in nature, so a ValueType of scalar is actually good enough that it could originally be hardcoded as the right choice
Other languages, might have broader notions of things that are dynamic (e.g. a language where a value type can be dynamic). In those cases, it might actually be the case that a dynamic value is a pointer-to the data, or even a host address if dynamic expression results entirely in host space are being talked about

This patch enables the language runtime to make that decision, and makes ValueObjectDynamicValue comply with it

llvm-svn: 247957
2015-09-17 22:56:38 +00:00
Greg Clayton 56939cb310 TypeSystem is now a plugin interface and removed any "ClangASTContext &Class::GetClangASTContext()" functions.
This cleans up type systems to be more pluggable. Prior to this we had issues:
- Module, SymbolFile, and many others has "ClangASTContext &GetClangASTContext()" functions. All have been switched over to use "TypeSystem *GetTypeSystemForLanguage()"
- Cleaned up any places that were using the GetClangASTContext() functions to use TypeSystem
- Cleaned up Module so that it no longer has dedicated type system member variables:
    lldb::ClangASTContextUP     m_ast;          ///< The Clang AST context for this module.
    lldb::GoASTContextUP        m_go_ast;       ///< The Go AST context for this module.
    
    Now we have a type system map:
    
    typedef std::map<lldb::LanguageType, lldb::TypeSystemSP> TypeSystemMap;
    TypeSystemMap               m_type_system_map;    ///< A map of any type systems associated with this module
- Many places in code were using ClangASTContext static functions to place with CompilerType objects and add modifiers (const, volatile, restrict) and to make typedefs, L and R value references and more. These have been made into CompilerType functions that are abstract:

    class CompilerType
    {
    ...
    
    //----------------------------------------------------------------------
    // Return a new CompilerType that is a L value reference to this type if
    // this type is valid and the type system supports L value references,
    // else return an invalid type.
    //----------------------------------------------------------------------
    CompilerType
    GetLValueReferenceType () const;

    //----------------------------------------------------------------------
    // Return a new CompilerType that is a R value reference to this type if
    // this type is valid and the type system supports R value references,
    // else return an invalid type.
    //----------------------------------------------------------------------
    CompilerType
    GetRValueReferenceType () const;

    //----------------------------------------------------------------------
    // Return a new CompilerType adds a const modifier to this type if
    // this type is valid and the type system supports const modifiers,
    // else return an invalid type.
    //----------------------------------------------------------------------
    CompilerType
    AddConstModifier () const;

    //----------------------------------------------------------------------
    // Return a new CompilerType adds a volatile modifier to this type if
    // this type is valid and the type system supports volatile modifiers,
    // else return an invalid type.
    //----------------------------------------------------------------------
    CompilerType
    AddVolatileModifier () const;

    //----------------------------------------------------------------------
    // Return a new CompilerType adds a restrict modifier to this type if
    // this type is valid and the type system supports restrict modifiers,
    // else return an invalid type.
    //----------------------------------------------------------------------
    CompilerType
    AddRestrictModifier () const;

    //----------------------------------------------------------------------
    // Create a typedef to this type using "name" as the name of the typedef
    // this type is valid and the type system supports typedefs, else return
    // an invalid type.
    //----------------------------------------------------------------------
    CompilerType
    CreateTypedef (const char *name, const CompilerDeclContext &decl_ctx) const;
    
    };
    
Other changes include:
- Removed "CompilerType TypeSystem::GetIntTypeFromBitSize(...)" and CompilerType TypeSystem::GetFloatTypeFromBitSize(...) and replaced it with "CompilerType TypeSystem::GetBuiltinTypeForEncodingAndBitSize(lldb::Encoding encoding, size_t bit_size);"
- Fixed code in Type.h to not request the full type for a type for no good reason, just request the forward type and let the type expand as needed

llvm-svn: 247953
2015-09-17 22:23:34 +00:00
Adrian McCarthy ab59a0f6e7 Get the process ID from a minidump.
llvm-svn: 247939
2015-09-17 20:52:29 +00:00
Zachary Turner 8d8033c3b4 Fix a race condition when terminating inferiors on Windows.
If a breakpoint was hit in the inferior after shutdown had
started but before it was complete, it would cause an unclean
terminate of the inferior, leading to various problems the most
visible of which is that handles to the inferior executable would
remain locked, and the test suite would fail to run subsequent
tests because it could not recompile the inferior.

This fixes a major source of flakiness in the test suite.

llvm-svn: 247929
2015-09-17 20:18:50 +00:00
Paul Herman f6681b4ace Fix caching for clang::Decl in DWARFASTParserClang
Reviewers: sivachandra, chaoren, clayborg, tberghammer

Subscribers: lldb-commits

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

llvm-svn: 247923
2015-09-17 19:32:02 +00:00
Todd Fiala 5493e31be0 Adjustments to syncsource.py.
- renamed sync-source.py to syncsource.py to appease pylint.
- added missing lib/transfer/__init__.py file.  Fumble from
  git to svn.
- adjusted README to call sync-source.py syncsource.py, and
  call .sync-sourcerc .syncsourcerc.
- marked syncsource.py as executable by all.

llvm-svn: 247922
2015-09-17 19:23:50 +00:00
Bruce Mitchener 71d5fe3b11 Remove unused includes from clang in DataFormatters.
Reviewers: granata.enrico

Subscribers: lldb-commits

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

llvm-svn: 247916
2015-09-17 18:46:22 +00:00
Bruce Mitchener 59b5a37db0 DataFormatters: Rename clang_type to compiler_type.
Reviewers: granata.enrico

Subscribers: lldb-commits

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

llvm-svn: 247915
2015-09-17 18:43:40 +00:00
Chaoren Lin 1b2ba431e0 Fix TestMiSymbol for gcc-4.9 test.
llvm-svn: 247914
2015-09-17 18:38:55 +00:00
Bruce Mitchener 40889cd75a [cmake] Build lldb-server on Darwin, set dep on FreeBSD.
Summary:
This switches the decision as to whether or not to lldb-server should
be built to check the same flag that was added that controls whether
or not it is added as a dependency to the 'lldb' target.

It also sets that flag on FreeBSD to maintain parity with the existing
build configuration / situation on FreeBSD.

Reviewers: labath, emaste, tfiala

Subscribers: lldb-commits

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

llvm-svn: 247913
2015-09-17 18:35:33 +00:00
Sean Callanan c608d206c7 Removed a needless cast to ClangExpressionVariable.
llvm-svn: 247910
2015-09-17 18:19:12 +00:00
Sean Callanan 476d252846 Updated the Xcode build to reflect lldb-mi's dependency on LLVM.
llvm-svn: 247909
2015-09-17 18:03:26 +00:00
Dawn Perchik 554a85711c Fix LLDB RSP client to decode '$O' packets incorrectly
Character with ASCII code 0 is incorrectly treated by LLDB as the end of
RSP packet. The left of the debugger server output is silently ignored.

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

llvm-svn: 247908
2015-09-17 17:55:32 +00:00
Todd Fiala 37e56318ec Add sync-source.py utility.
See:
http://reviews.llvm.org/D12940

for more  details.

See utils/sync-source/README.txt for documentation
and a sample .sync-sourcerc file.

llvm-svn: 247903
2015-09-17 17:14:31 +00:00
Dawn Perchik b01310008f [lldb-mi] Fix the handling of files in -data-info-line and -symbol-list-lines.
This fixes -data-info-line and -symbol-list-lines to parse the filename
and line correctly when line entries don't have the optional column
number and the filename contains a Windows drive letter. It also fixes
-symbol-list-lines when code from header files is generated.

Reviewed by: abidh, ki.stfu
Subscribers: lldb-commits
Differential Revision: http://reviews.llvm.org/D12115

llvm-svn: 247899
2015-09-17 16:22:30 +00:00
Tamas Berghammer b4bcbb192f XFAIL step after crash tests on android-aarch64 API 21
Android-aarch64 for API21 uses sa_restore to return from a signal handler
what have no eh_frame specified.

llvm-svn: 247879
2015-09-17 10:05:21 +00:00
Pavel Labath 415b605249 Remove XTIMEOUT from TestAttachDenied on linux
llvm-svn: 247877
2015-09-17 09:24:44 +00:00
Enrico Granata 809aad31a0 Visual Studio seems to consider this invocation ambiguous. Try to clarify what I mean
llvm-svn: 247875
2015-09-17 01:13:12 +00:00
Enrico Granata fa6b278f9c Add the ability for formatter categories to be bound to one or more languages
What that does is it restricts formatters in those categories to only match to types coming from "compatible" source languages

llvm-svn: 247872
2015-09-17 00:14:50 +00:00
Chaoren Lin 88be1ac062 XFAIL TestCppNsImport for gcc-4.9 inclusive.
llvm-svn: 247863
2015-09-16 23:36:41 +00:00
Chaoren Lin d761a9532b Fix Makefile for Windows to Android tests.
Reviewers: zturner

Subscribers: tberghammer, lldb-commits, danalbert

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

llvm-svn: 247857
2015-09-16 21:51:51 +00:00
Chaoren Lin f59497dc92 XFAIL TestCppNsImport for gcc-4.9.
Works for gcc-4.8. A bug in gcc perhaps.

llvm-svn: 247855
2015-09-16 21:32:48 +00:00
Ryan Brown 65d4d5c3c6 Add an OperatingSystem plugin to support goroutines
The Go runtime schedules user level threads (goroutines) across real threads.
This adds an OS plugin to create memory threads for goroutines.
It supports the 1.4 and 1.5 go runtime.

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

llvm-svn: 247852
2015-09-16 21:20:44 +00:00
Zachary Turner 7d7ca2f2ba add a dependency on terminfo library if llvm uses it
Ncurses related symbols can either all be found in libnurses or split
between libncurses and libtinfo. The main LLVM cmake scripts look for the
setupterm symbol and stores the library that has it in TERMINFO_LIBS. This
covers the split and unified ncurses case. LLDB uses symbols that can end
up in libtinfo so this library should be pulled in if it is found.

There is still an exotic case left where LLDB is configured with
-DLLDB_DISABLE_CURSES=NO and LLVM with -DLLVM_ENABLE_TERMINFO=NO but
misconfigurations will always be possible. Possibly a diagnostic could be
added for that.

This fixes bug 24693.

Differential Revision: http://reviews.llvm.org/D12672
Patch by Jeremi Piotrowski

llvm-svn: 247842
2015-09-16 20:14:01 +00:00
Zachary Turner ddf0661b38 Fix log disable command in ProcessWindowsLog.
The implications of this bug where that "log disable windows" would
not actually disable the log, and worse it would lock the file handle
making it impossible to delete the file until lldb was shut down.

This was then causing the test suite to fail, because the test suite
tries to delete log files in certain situations.

llvm-svn: 247841
2015-09-16 20:13:53 +00:00
Paul Herman ea188fc318 Add using directives to the clang::DeclContext and fix decls for variables inside namespaces
Summary: Supports the parsing of the "using namespace XXX" and "using XXX::XXX" directives. Added ambiguity errors when it two decls with the same name are encountered (see comments in TestCppNsImport). Fixes using directives being duplicated for anonymous namespaces. Fixes GetDeclForUID for specification DIEs.

Reviewers: sivachandra, chaoren, clayborg

Subscribers: lldb-commits

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

llvm-svn: 247836
2015-09-16 18:48:30 +00:00
Enrico Granata 7cb59e1a0f Move hardcoded formatters from the FormatManager to the Language plugins
llvm-svn: 247831
2015-09-16 18:28:11 +00:00
Zachary Turner b33bac9a70 Remove XFAIL from TestCppNsImport.
This test seems to be working now, probably due to r244764.

llvm-svn: 247830
2015-09-16 18:19:06 +00:00
Adrian McCarthy d9dbae599d Add first tests for mini-dump debugging.
Differential Revision: http://reviews.llvm.org/D12888

llvm-svn: 247829
2015-09-16 18:17:11 +00:00
Zachary Turner dd07e00dbc Silence compiler warnings about unhandled switch cases.
llvm-svn: 247826
2015-09-16 18:08:45 +00:00
Zachary Turner 4a58dd3035 Last set of XFAILs for Windows.
llvm-svn: 247825
2015-09-16 18:08:33 +00:00
Greg Clayton 62c01ff9ca Add newline at end of file to avoid compiler warning.
llvm-svn: 247823
2015-09-16 18:05:08 +00:00
Ed Maste 1a6ddd5149 Decorate flaky FreeBSD test
ExprCommandWithTimeoutsTestCase::expectedFailureFreeBSD had an
expectedFailureFreeBSD decorator, removed in r247799. It had been flakey
on the FreeBSD buildbot but passed locally. John Wolfe has since
observed a local failure, so add expectedFlakeyFreeBSD until we can
investigate and likely increase the timeout in the test.

llvm.org/pr19605 (FreeBSD)
llvm.org/pr20275 (equivalent Linux issue)

llvm-svn: 247822
2015-09-16 18:00:09 +00:00
Oleksiy Vyalov eff9ad2e6e Add plugin.jit-loader.gdb.enable-jit-breakpoint property to make JIT loader breakpoint optional.
http://reviews.llvm.org/D12890

llvm-svn: 247821
2015-09-16 17:38:36 +00:00
Todd Fiala 509300d94c cmake fixes for lldb target.
ninja lldb now does the following:
* forces the python post-build step to fire, which sets up the python lldb module properly.
* on Darwin and Linux, requires the lldb-server target to be built.
* on Darwin, requires the debugserver target to be built.

See http://reviews.llvm.org/D12899 for details.

llvm-svn: 247810
2015-09-16 15:34:06 +00:00
Pavel Labath 5ef13dc8bd Upgrading TestCreateDuringInstructionStep from XFLAKY to XFAIL on android arm
the test is very often failing two times in a row, causing noise on the buildbots.

llvm-svn: 247805
2015-09-16 14:52:36 +00:00
Ed Maste 9d3d7131ad Remove expectedFailureFreeBSD from passing watchpoint tests
llvm.org/pr18832

llvm-svn: 247801
2015-09-16 14:05:20 +00:00
Ed Maste e84f409453 Remove expectedFailureFreeBSD from passing test
ExprCommandCallUserDefinedFunction::test_with_dwarf

llvm.org/pr21142

llvm-svn: 247800
2015-09-16 13:59:16 +00:00
Ed Maste d8ac5b41fc Remove expectedFailureFreeBSD from passing test
ExprCommandWithTimeoutsTestCase::expectedFailureFreeBSD

This test passes locally but was marked XFAIL due to failures on the
FreeBSD buildbot. That buildbot has been retired as it was overloaded,
and we will investigate again if this fails once a new buildbot is in
place.

llvm.org/pr19605

llvm-svn: 247799
2015-09-16 13:55:15 +00:00
Tamas Berghammer 1f5e4483a4 Add support for the DWARFLocationList used by split-dwarf
Split-dwarf uses a different header format to specify the address range
for the elements of the location lists.

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

llvm-svn: 247789
2015-09-16 12:37:06 +00:00
Tamas Berghammer 6127f03358 Fix prologue end handling when code compiled by gcc
GCC don't use the is_prologue_end flag to mark the first instruction
after the prologue. Instead of it it is issuing a line table entry for
the first instruction of the prologue and one for the first instruction
after the prologue. If the size of the prologue is 0 instruction then
the 2 line entry will have the same file address.

We remove these duplicates entries as they are violating the dwarf spec
and can cause confusion in the debugger. To prevent the lost of
information about the end of prologue we should set the prologue end
flag for the line entries what are representing more then 1 entry.

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

llvm-svn: 247788
2015-09-16 12:36:37 +00:00
Pavel Labath 11bb848ddc Revert "[LLDB][MIPS] Debug bare-iron targets lacking support for qC /qfThreadInfo"
This reverts commit r247773, because it breaks remote debugging support for lldb-server.

llvm-svn: 247783
2015-09-16 10:27:57 +00:00
Ewan Crawford 54782db7bc Add names to RenderScript kernel breakpoints.
Use Breakpoint::AddName to mark all RenderScript kernel breakpoints with the name 'RenderScriptKernel'.
Also update logging channels to include LIBLLDB_LOG_BREAKPOINT where appropriate. 

llvm-svn: 247782
2015-09-16 10:02:57 +00:00
Jaydeep Patil 003615b772 [LLDB][MIPS] Debug bare-iron targets lacking support for qC /qfThreadInfo
SUMMARY:
    Refer to http://lists.llvm.org/pipermail/lldb-dev/2015-August/008024.html for discussion
    on this topic. Bare-iron target like YAMON gdb-stub does not support qProcessInfo, qC,
    qfThreadInfo, Hg and Hc packets. Reply from ? packet is as simple as S05. There is no 
    packet which gives us process or threads information. In such cases, assume pid=tid=1.

    Reviewers: clayborg
    Subscribers: nitesh.jain, mohit.bhakkad, sagar, bhushan and lldb-commits
    Differential Revision: http://reviews.llvm.org/D12876

llvm-svn: 247773
2015-09-16 04:04:01 +00:00
Chaoren Lin 3ca7a3eb41 Fix off-by-one size check.
llvm-svn: 247766
2015-09-16 01:20:34 +00:00
Greg Clayton 4947b21cb9 Fix MacOSX since "imported" and "Imported::imported" are ambiguous. Test that we can read the global when specified with the global namespace and test that we can read "Imported::imported" correctly. The commented out test should be testing for ambiguity when just "imported" is evaluated as an expression, but that doesn't work yet.
llvm-svn: 247764
2015-09-16 00:42:50 +00:00
Paul Herman 92775baa5d Fix double include in CompilerDeclContext.h
llvm-svn: 247760
2015-09-16 00:29:10 +00:00
Paul Herman 82aa6f1ab5 Fix missing include in CompilerDeclContext.h
llvm-svn: 247759
2015-09-16 00:26:12 +00:00
Greg Clayton 64277a9e27 Fix Xcode project by adding CompilerDecl.cpp and .h.
llvm-svn: 247756
2015-09-16 00:03:14 +00:00
Bruce Mitchener 778e7ab5a3 Return false, not 0, for bools.
Reviewers: clayborg

Subscribers: lldb-commits

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

llvm-svn: 247755
2015-09-16 00:00:16 +00:00
Greg Clayton 5747dd158b Fix the MacOSX build.
llvm-svn: 247754
2015-09-15 23:59:41 +00:00
Greg Clayton 648267c29c Avoid a missing override warning.
llvm-svn: 247753
2015-09-15 23:59:25 +00:00
Jason Molenda 9878e3b4b5 A partner to the cleanup in r247741, change the variables names in
debugserver to match.  "gcc" is now "ehframe" and "gdb" is now
"debugserver".  Because this is debugserver, what we call the Process
Plugin register numbers up in lldb are the debugserver register
numbers down here - they are the register numbers that debugserver
will use to refer to these registers over the gdb-remote protocol.

debugserver was already reporting the registers with the key
"ehframe"; this change is just cleaning up the internal variable
names to match.

llvm-svn: 247751
2015-09-15 23:49:57 +00:00
Paul Herman d628cbb999 Search variables based on clang::DeclContext and clang::Decl tree
Summary: SymbolFileDWARF now creates VarDecl and BlockDecl and adds them to the Decl tree. Then, in ClangExpressionDeclMap it uses the Decl tree to search for a variable. This fixes lots of variable scoping problems.

Reviewers: sivachandra, chaoren, spyffe, clayborg

Subscribers: tberghammer, jingham, lldb-commits

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

llvm-svn: 247746
2015-09-15 23:44:17 +00:00
Jason Molenda 63bd0db071 Clean up register naming conventions inside lldb.
"gcc" register numbers are now correctly referred to as "ehframe"
register numbers.  In almost all cases, ehframe and dwarf register
numbers are identical (the one exception is i386 darwin where ehframe
regnums were incorrect).

The old "gdb" register numbers, which I incorrectly thought were
stabs register numbers, are now referred to as "Process Plugin"
register numbers.  This is the register numbering scheme that the
remote process controller stub (lldb-server, gdbserver, core file
support, kdp server, remote jtag devices, etc) uses to refer to the
registers.  The process plugin register numbers may not be contiguous
- there are remote jtag devices that have gaps in their register
numbering schemes.

I removed all of the enums for "gdb" register numbers that we had
in lldb - these were meaningless - and I put LLDB_INVALID_REGNUM
in all of the register tables for the Process Plugin regnum slot.

This change is almost entirely mechnical; the one actual change in
here is to ProcessGDBRemote.cpp's ParseRegisters() which parses the
qXfer:features:read:target.xml response.  As it parses register
definitions from the xml, it will assign sequential numbers as the
eRegisterKindLLDB numbers (the lldb register numberings must be
sequential, without any gaps) and if the xml file specifies register
numbers, those will be used as the eRegisterKindProcessPlugin
register numbers (and those may have gaps).  A J-Link jtag device's
target.xml does contain a gap in register numbers, and it only 
specifies the register numbers for the registers after that gap.
The device supports many different ARM boards and probably selects
different part of its register file as appropriate.

http://reviews.llvm.org/D12791
<rdar://problem/22623262> 

llvm-svn: 247741
2015-09-15 23:20:34 +00:00
Enrico Granata c1c9896ff4 Teach the ObjC data formatters to use the correct language when printing strings
llvm-svn: 247727
2015-09-15 22:11:20 +00:00
Todd Fiala 68615ce606 Add JUnit/XUnit-formatted output to the lldb test run system
Also introduces the test event system into our test runner framework.
See the following for details:
http://reviews.llvm.org/D12831

llvm-svn: 247722
2015-09-15 21:38:04 +00:00
Jim Ingham 151c032c86 This patch makes Clang-independent base classes for all the expression types that lldb currently vends.
Before we had:

ClangFunction
ClangUtilityFunction
ClangUserExpression

and code all over in lldb that explicitly made Clang-based expressions. This patch adds an Expression 
base class, and three pure virtual implementations for the Expression kinds:

FunctionCaller
UtilityFunction
UserExpression

You can request one of these expression types from the Target using the Get<ExpressionType>ForLanguage. 
The Target will then consult all the registered TypeSystem plugins, and if the type system that matches 
the language can make an expression of that kind, it will do so and return it.

Because all of the real expression types need to communicate with their ExpressionParser in a uniform way, 
I also added a ExpressionTypeSystemHelper class that expressions generically can vend, and a ClangExpressionHelper 
that encapsulates the operations that the ClangExpressionParser needs to perform on the ClangExpression types. 
Then each of the Clang* expression kinds constructs the appropriate helper to do what it needs.

The patch also fixes a wart in the UtilityFunction that to use it you had to create a parallel FunctionCaller 
to actually call the function made by the UtilityFunction. Now the UtilityFunction can be asked to vend a 
FunctionCaller that will run its function. This cleaned up a lot of boiler plate code using UtilityFunctions.

Note, in this patch all the expression types explicitly depend on the LLVM JIT and IR, and all the common 
JIT running code is in the FunctionCaller etc base classes. At some point we could also abstract that dependency 
but I don't see us adding another back end in the near term, so I'll leave that exercise till it is actually necessary.

llvm-svn: 247720
2015-09-15 21:13:50 +00:00
Jim Ingham 0ca778eb2e Make the source-map help grammatical.
llvm-svn: 247709
2015-09-15 18:03:00 +00:00
Daniel Sanders 32764b5917 Fix build after llvm r247683 was reverted.
llvm-svn: 247703
2015-09-15 16:33:17 +00:00
Tamas Berghammer f304d5eb2b Skip TestGoASTContext on remote targets as it it not remote compatible
llvm-svn: 247690
2015-09-15 14:04:52 +00:00
Pavel Labath 360a543d04 Fix build after llvm r247683
llvm-svn: 247687
2015-09-15 13:49:10 +00:00
Bruce Mitchener 7dd8c12d84 [lldb-mi] Clean up CMICmdArgSet usage.
Summary:
CMICmdArgSet stores a vector of non-const pointers to the arguments
that it is validating. It owns them and is responsible for deleting
them.

We don't need to pass a const reference to the argument to
CMICmdArgSet::Add and then take the address and const_cast it
when we can just pass the argument pointer in directly.

This lets us remove some noise at every call site for CMICmdArgSet::Add
and then clean up a couple of bits inside CMICmdArgSet to remove
const_casts.

Reviewers: abidh, ki.stfu, domipheus

Subscribers: lldb-commits

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

llvm-svn: 247677
2015-09-15 12:00:08 +00:00
Bruce Mitchener 3be88564e9 [lldb-mi] Simplify CMICmnLLDBDebugSessionInfo::Shutdown.
Summary:
* SharedDataDestroy couldn't fail, so no need to return a status.
* No need for status, so can remove error message. The error message
  wasn't displayed or used anywhere anyway.

Reviewers: abidh, ki.stfu

Subscribers: lldb-commits

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

llvm-svn: 247673
2015-09-15 10:36:08 +00:00
Tamas Berghammer 41b1f73122 Add support for DW_OP_GNU_const_index to dwarf expression
DW_OP_GNU_const_index is a new opcode used when split dwarf is enabled

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

llvm-svn: 247672
2015-09-15 10:33:54 +00:00