Commit Graph

9936 Commits

Author SHA1 Message Date
Ed Maste 2ec8e1bd20 Temporarily disable test on FreeBSD that is asserting
llvm.org/pr21325

llvm-svn: 220871
2014-10-29 20:02:54 +00:00
Ed Maste e95d9d2c04 Skip test that's hanging on FreeBSD until it can be investigated
llvm.org/pr21411

llvm-svn: 220856
2014-10-29 15:09:27 +00:00
Enrico Granata b6d7cba141 Shuffle a couple of formatters around. This should fix the bug that never dies, aka rdar://15154623
llvm-svn: 220836
2014-10-29 01:03:09 +00:00
Enrico Granata e0afce767a Add a few functions to SBType to handle arrays and typedefs. Fixes rdar://12675166
llvm-svn: 220824
2014-10-28 21:44:06 +00:00
Enrico Granata 90ff6428c9 Add a few words of documentation for the the $\{var.script:\} feature
llvm-svn: 220823
2014-10-28 21:13:31 +00:00
Enrico Granata 88282c69f3 Add a feature where a string data formatter can now be partially composed of Python summary functions
This works similarly to the {thread/frame/process/target.script:...} feature - you write a summary string, part of which is

${var.script:someFuncName}
someFuncName is expected to be declared as
def someFuncName(SBValue,otherArgument) - essentially the same as a summary function

Since . -> [] are the only allowed separators, and % is used for custom formatting, .script: would not be a legitimate symbol anyway, which makes this non-ambiguous

llvm-svn: 220821
2014-10-28 21:07:00 +00:00
Sean Callanan e17428acfa Added the ability to add attributes to inline
testcases.  Also fixed one of the testcases to
not run on the platforms that don't support
Objective-C.

We want to do better with the Objective-C attribute
but we'll do that in a future commit.

llvm-svn: 220820
2014-10-28 20:23:20 +00:00
Enrico Granata 4f2fe82b6d When trying to get the element type of an array type, do not go to the canonical type, since that will strip typedefs where we want them to be preserved. Fixes rdar://15453076
llvm-svn: 220810
2014-10-28 18:25:50 +00:00
Jason Molenda 2586e94bfb Add breakpoint instruction byte sequences for arm to
PlatformLinux::GetSoftwareBreakpointTrapOpcode.

Patch by Stephane Sezer.
http://reviews.llvm.org/D5923

llvm-svn: 220762
2014-10-28 03:43:54 +00:00
Jason Molenda 0f7828cf6d Clarify the launch style for debugserver to use.
<rdar://problem/18786645> 

llvm-svn: 220761
2014-10-28 03:15:33 +00:00
Jim Ingham c891d86349 Add a test for setting and hitting the C++ Exception throw breakpoint.
llvm-svn: 220743
2014-10-28 00:53:20 +00:00
Greg Clayton dc574df04f Make sure OTHER_CFLAGS and OTHER_LDFLAGS are inherited from the Xcode project so you can easily add to the flags of all targets.
llvm-svn: 220720
2014-10-27 21:14:34 +00:00
Enrico Granata e9afaf71f7 This looks like the actual path under which the builder looks for LLDB headers, so use this path instead
llvm-svn: 220718
2014-10-27 20:31:12 +00:00
Hafiz Abid Qadeer f289628178 Stub out 'close' call on m_master_fd for Windows.
PseudoTerminal.cpp uses a dummy implementation of posix_openpt for Windows. This
implementation just returns 0. So m_master_fd is 0. But destructor calls 'close'
on m_master_fd. This 'close' calls seems un-necessary as m_master_fd was never
opened in first place and calling 'close' on 0 can have other un-intended 
consequences.

I am committing it as obvious as it is only a one-liner. Long term, we may want
to refactor this class.

llvm-svn: 220705
2014-10-27 19:27:00 +00:00
Ed Maste 49e4068781 Skip ObjC test on FreeBSD that does not build
llvm-svn: 220681
2014-10-27 15:01:59 +00:00
Todd Fiala 479f230032 Fix the TestCreateAfterAttach test for llgs-local on ptracer lock-down.
llvm-svn: 220661
2014-10-27 00:58:27 +00:00
Todd Fiala 0135e236b6 Fix TestProcessAttach for Linux ptracer lock-down and llgs-local.
llvm-svn: 220660
2014-10-27 00:31:05 +00:00
Todd Fiala 789d29df34 Fix up TestRegisters for Linux ptracer lock-down.
All of these test fixups are prep work for when llgs is
running with llgs for local process debugging, where these
tests fail without the ptracer lock-down suppression.

llvm-svn: 220656
2014-10-26 22:25:33 +00:00
Todd Fiala 25a0ad9707 Fix TestAttachResume test so it doesn't hang on Linux with ptrace lockdown.
Similar to previous fix, this augments the test inferior to
immediately indicate it may be ptraced by any Linux process
when the appropriate symbols are defined.

This seems to indicate we need to fix our lldb attach logic to
catch when an attach fails, and trigger an appropriate error
instead of the current behavior of hanging indefinitely.

llvm-svn: 220654
2014-10-26 22:08:56 +00:00
Hafiz Abid Qadeer 01db53848e Added a missing call to 'Reset'.
HostThreadWindows::Join() did not call the Reset as is done by
the HostThreadPosix::Join(). As a result, future call to 
IsJoinable() can fail.

Committed as obvious.
 

llvm-svn: 220651
2014-10-26 21:38:43 +00:00
Todd Fiala f183754779 Fix HelloWorld attach test for Linux kernels with ptrace ancestor lockdown.
Similar to a recent test I fixed for gdb-remote attach scenarios, this
fix is for Linux kernels, such as Ubuntu's stock setup on 11.04-ish and
later, where ptrace starts requiring a ptracer to be an ancestor of the
inferior to be ptraced.  This change checks for Linux and the ptrace-related
flags.  If they're found, it tries to switch on the "allow any ptracer" mode
for the inferior as the first statements in the program.  It's a best-effort
solution - if the prctl call fails, the failure is ignored, and probably will
lead to the test failing.

The ptrace security behavior can be modified system-wide, but is outside the
scope of the test to address.  Hence I went with this particular solution.

llvm-svn: 220650
2014-10-26 21:37:46 +00:00
Jim Ingham fa39bb4a56 Setting breakpoints with name mask eFunctionNameTypeBase was broken for straight C names by 220432. Get
that working again.

llvm-svn: 220602
2014-10-25 00:33:55 +00:00
Zachary Turner 7c2896a234 Implement explicit thread stack size specification on Windows.
llvm-svn: 220596
2014-10-24 22:06:29 +00:00
Ed Maste 40dc7eb150 Remove duplicated new file content
llvm-svn: 220591
2014-10-24 20:49:50 +00:00
Jim Ingham 65b3f547cd Patch from ovyalov@google.com:
Handle pexpect exceptions correctly so that processes spawned with 
pexpect are always reaped.

llvm-svn: 220583
2014-10-24 18:51:57 +00:00
Zachary Turner 047a070f7c Make ProcessWindows just use Host::LaunchProcess.
llvm-svn: 220574
2014-10-24 17:51:56 +00:00
Enrico Granata ecbe7c03a0 This test case should not rely on stepping behavior because that might chance due to inlining. Set breakpoints where you want them instead. Fixes rdar://18724175
llvm-svn: 220513
2014-10-23 21:35:18 +00:00
Enrico Granata 249d639786 Fix a problem where an SBType was advertising its static type class even though a dynamic type was available. Solves rdar://18744420
llvm-svn: 220511
2014-10-23 21:15:20 +00:00
Ed Maste e1b25368f0 Disable dsym tests on !Darwin hosts
This was missing from r219984

llvm.org/pr21324

llvm-svn: 220485
2014-10-23 15:21:45 +00:00
Hafiz Abid Qadeer ae9446088b Fix code where goto jumped over local variable initialization.
llvm-svn: 220473
2014-10-23 10:36:53 +00:00
Enrico Granata 2809b98c0e Reverting r220435. Jim Ingham and I discussed this for a bit, and we came up with a better command model for this feature
llvm-svn: 220437
2014-10-22 22:33:08 +00:00
Enrico Granata 83f231854a Add a 'type info' command, which can be fed one or more local variables - and it will spew out the list of formatters that apply to each of those variables, if any
llvm-svn: 220435
2014-10-22 22:04:40 +00:00
Enrico Granata 6714a0fd09 More cleanup of the CXXFormatterFunctions header
llvm-svn: 220433
2014-10-22 21:47:27 +00:00
Greg Clayton c3795409c9 Fixed name lookups for names that contain "::" but aren't actually C++ qualified C++ names.
To do this, I fixed the  CPPLanguageRuntime::StripNamespacesFromVariableName() function to use a regular expression that correctly determines if the name passed to it is a qualfied C++ name like "a:🅱️:c" or "b::c". The old version of this function was treating '__54-[NSUserScriptTask executeWithInterpreter:arguments::]_block_invoke' as a match with a basename of ']_block_invoke'.

Also fixed a case in the by name lookup of functions where we wouldn't look for the full name if we actually tried to call CPPLanguageRuntime::StripNamespacesFromVariableName() and got an empty basename back.

<rdar://problem/18527866>

llvm-svn: 220432
2014-10-22 21:47:13 +00:00
Greg Clayton fa226b74d1 Re-use the GetMatchAtIndex() that uses the StringRef to avoid code duplication and properly detect when a capture is invalid and return false.
llvm-svn: 220431
2014-10-22 21:43:15 +00:00
Zachary Turner b5c4971a4c Fix CMake build broken after r220421.
llvm-svn: 220430
2014-10-22 21:18:29 +00:00
Enrico Granata e85fe3a4d1 Reorganize some of the data formatters code to simplify CXXFormattersFunction.h. Also, add a synthetic child provider for libc++'s version of std::initializer_list<T>
llvm-svn: 220421
2014-10-22 20:34:38 +00:00
Enrico Granata 4bd54a1544 Fixed a problem in the lldbinline logic where C++ files could not be validly compiled
llvm-svn: 220420
2014-10-22 20:33:34 +00:00
Enrico Granata 50bed5e86f Fix a problem where summary strings could not use a synthetically generated value as part of themselves
llvm-svn: 220414
2014-10-22 20:14:09 +00:00
Shawn Best 13491c4f24 Sort unit test failures by name - submitted for Vince Harron http://reviews.llvm.org/D5904
llvm-svn: 220406
2014-10-22 19:29:00 +00:00
Matthew Gardiner c928de3e8e Added functions to the C++ API, for the benefit of non-8-bit byte architectures.
New functions to give client applications to tools to discover target byte sizes
for addresses prior to ReadMemory. Also added GetPlatform and ReadMemory to the
SBTarget class, since they seemed to be useful utilities to have.

Each new API has had a test case added.

http://reviews.llvm.org/D5867

llvm-svn: 220372
2014-10-22 07:22:56 +00:00
Jim Ingham a672ecefef The breakpoint location hit counts were getting incremented in
BreakpointLocation::ShouldStop.  That worked but wasn't really right,
since there's nothing to guarantee that won't get called more than
once.  So this change moves that responsibility to the StopInfoBreakpoint
directly, and then it uses the BreakpointSite to actually do the bumping.

Also fix a test case that was assuming if you had many threads running some 
code with a breakpoint in it, the hit count when you stopped would always be
1.  Many of the threads could have hit it at the same time...

<rdar://problem/18577603>

llvm-svn: 220358
2014-10-22 01:54:17 +00:00
Enrico Granata 622be238eb Expose the type-info flags at the public API layer. These flags provide much more informational content to consumers of the LLDB API than the existing TypeClass. Part of the fix for rdar://18517593
llvm-svn: 220322
2014-10-21 20:52:14 +00:00
Eric Christopher 098f898fd2 Move anonymous types declared in an anonymous union to
outside the anonymous union as it's a language extension
we don't normally support.

llvm-svn: 220320
2014-10-21 20:39:34 +00:00
Eric Christopher f75b0ee2ab Remove unused variable.
llvm-svn: 220319
2014-10-21 20:36:17 +00:00
Eric Christopher a2b05d0441 Fix implicit conversion of NULL constant to 'bool'.
llvm-svn: 220318
2014-10-21 20:35:35 +00:00
Enrico Granata dd86f33902 Add typemaps to handle the transformation of Python list of strings into a 'char const **'. This fixes zephyr's issue with SBTarget::Launch without splitting the API into multiple names
llvm-svn: 220306
2014-10-21 17:49:24 +00:00
Greg Clayton dc6224e0a3 Make the "synchronous" mode actually work without race conditions.
There were many issues with synchronous mode that we discovered when started to try and add a "batch" mode. There was a race condition where the event handling thread might consume events when in sync mode and other times the Process::WaitForProcessToStop() would consume them. This also led to places where the Process IO handler might or might not get popped when it needed to be.

llvm-svn: 220254
2014-10-21 01:00:42 +00:00
Sean Callanan 35e678c7e0 Don't allow the expression parser to magically
look through 'self' at its ivars.  It produces
surprising results.

<rdar://problem/18698760>

llvm-svn: 220220
2014-10-20 18:36:58 +00:00
Ed Maste 1b102650cb Skip dsym test on !Darwin
r219978 fixed this test to work on Darwin, and removed the expected
failure decorator, but it then started running (and failing) on FreeBSD.

I'd think @dsym_test should skip the test on all non-Darwin operating
systems. It seems not to be the case, so for now skip it the same way as
done for other @dsym_test tests.

llvm-svn: 220219
2014-10-20 18:12:46 +00:00
Zachary Turner cb5742b828 Don't use mkstemp, as it doesn't exist on Windows.
Differential Revision: http://reviews.llvm.org/D5849
Reviewed by: Jason Molenda

llvm-svn: 220218
2014-10-20 17:46:56 +00:00
Zachary Turner 10687b0ea5 Remove LLDB_DEFAULT_SHELL #define, and determine this at runtime.
Differential Revision: http://reviews.llvm.org/D5805
Reviewed by: Greg Clayton

llvm-svn: 220217
2014-10-20 17:46:43 +00:00
Todd Fiala 30846cd941 Fix 4 failing llgs-related tests on a stock Ubuntu 14.04 x86_64 system./
This fix addresses a requirement on some Linux kernels that limits
a PTRACER to be an ancestor of the ptraced process.  The fix in this
case is to have the inferior test exe explicitly allow any ptracer
to attach.

This fixes several ptrace-related issues that I did not see on a modified
kernel we used internally on my team.

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

This fixes these previously failing tests on stock Ubuntu systems:

FAIL: LLDB (suite) :: TestGdbRemoteProcessInfo.py (Linux vagrant 3.13.0-32-generic #57-Ubuntu SMP Tue Jul 15 03:51:08 UTC 2014 x86_64 x86_64)

FAIL: LLDB (suite) :: TestGdbRemoteAttach.py (Linux vagrant 3.13.0-32-generic #57-Ubuntu SMP Tue Jul 15 03:51:08 UTC 2014 x86_64 x86_64)

FAIL: LLDB (suite) :: TestLldbGdbServer.py (Linux vagrant 3.13.0-32-generic #57-Ubuntu SMP Tue Jul 15 03:51:08 UTC 2014 x86_64 x86_64)

FAIL: LLDB (suite) :: TestGdbRemoteKill.py (Linux vagrant 3.13.0-32-generic #57-Ubuntu SMP Tue Jul 15 03:51:08 UTC 2014 x86_64 x86_64)
llvm-svn: 220181
2014-10-20 03:56:46 +00:00
Greg Clayton a6cffdecde Fixed python API event test cases.
Issues were:
1 - It isn't good to have more than one listener for the process events, just supply a listener at launch instead of making a one then have the process broadcaster add a new listener
2 - run in async mode

llvm-svn: 220113
2014-10-17 23:58:27 +00:00
Sean Callanan 766cf60961 Make the registerEHFrame function do nothing,
because the default implementation isn't meant
to run against a target process.

<rdar://problem/16639561>

llvm-svn: 220100
2014-10-17 23:02:41 +00:00
Enrico Granata 39e4bb3bc5 Do not delete the class, or else multiple tests that try to rely on lldbinline will fail
llvm-svn: 220095
2014-10-17 21:50:42 +00:00
Sean Callanan 5e3bdbff3f Fixed the expression parser to handle cases where
GetValueForVariableExpressionPath returns NULL and
doesn't set an error.

<rdar://problem/18682916>

llvm-svn: 220070
2014-10-17 18:16:04 +00:00
Enrico Granata 0e478f5aa3 Make a general helper function on the AST context to retrieve a type by identifier in the fashion needed by data formatters
llvm-svn: 220059
2014-10-17 17:56:59 +00:00
Jason Molenda 8e96e6b6f2 Break out of the command word parsing loop if we hit
an invalid combination of words; don't accidentally
continue trying to parse the command line.
clang static analysis fixit.

llvm-svn: 220026
2014-10-17 02:10:33 +00:00
Jason Molenda 81926c3ffe Add #if 0 around unreachable block of code to suppress warnings.
clang warnings.

llvm-svn: 220025
2014-10-17 01:56:57 +00:00
Jason Molenda 9bdc4e1a59 Add null-checks around getter/setter before using them.
clang static analyzer fixit.

llvm-svn: 220024
2014-10-17 01:55:08 +00:00
Jason Molenda 84843ed536 A << operation would be undefined for a bit-selecting
function because of a '1u' making it a 32-bit value
when it really needed to be a 64-bit value.  Trivial to fix
once I figured out what was going on.
clang static analzyer fixit.

llvm-svn: 220022
2014-10-17 01:52:30 +00:00
Jason Molenda 5b94115d50 Remove always-true part of a conditional expression.
clang warning.

llvm-svn: 220018
2014-10-17 01:38:10 +00:00
Jason Molenda 61e0a3ef1f Put #if 0 blocks around three sections of code that are intentionally
unreachable so we don't get warnings about them.

Completely initialize a structure instead of leaving some of its fields
potentially indeterminate (although in reality they would all be set 
before use -- but the compiler warning doesn't know that).

clang warning.

llvm-svn: 220017
2014-10-17 01:36:20 +00:00
Enrico Granata cf3ab58e47 Making all @expectedFailure markers take an explicit bugnumber annotation. This used to be optional, but that makes it harder to track what tests are failing for what reason. So, make it mandatory, in the form of refusing to run the test suite if annotations are missing
llvm-svn: 220012
2014-10-17 01:11:29 +00:00
Enrico Granata 4b2f7456ad Don't enable the log here. It was just me debugging
llvm-svn: 220011
2014-10-17 01:09:06 +00:00
Enrico Granata ed1d075d78 Add a few more bug IDs for x'fail test cases
llvm-svn: 220003
2014-10-17 00:47:44 +00:00
Sean Callanan d950fa7165 Made multi-line test case actions possible in
the inline test cases.  This makes them much
more readable.

llvm-svn: 220001
2014-10-17 00:39:37 +00:00
Enrico Granata e2669ba6d4 Attach a bug number to these failures
llvm-svn: 219986
2014-10-16 23:17:46 +00:00
Enrico Granata d15ad22048 Split this test case to handle each literal kind uniquely
llvm-svn: 219985
2014-10-16 23:16:13 +00:00
Sean Callanan 816cb3eed4 Added a new kind of test case: the "inline" test
case.  This test case style attempts to shed all
of the boilerplate that is required for test
cases, and let 80% of test cases use a much terser
syntax.

Inline testcases have much simplified python files
(the corresponding .py file should contain two
lines of code) and require no Makefile, because the
Makefile is generated automatically.  Breakpoints
are set automatically and the indicated breakpoint
actions (specified after a magic //% comment) are
executed when the breakpoint is hit.

All other testcases are unaffected.

One thing I'm not really happy with yet is the way
multiple actions for the same line are specified.
I'm going to use lang/c/struct_types as a guinea
pig to develop this further.

llvm-svn: 219984
2014-10-16 23:15:22 +00:00
Jason Molenda bc464ee614 Change a use of mktemp() to mkstemp() for better security.
We have two more uses of mktemp still in the source base
but they'll take a little more consideration.
clang static analyzer fixit.

llvm-svn: 219983
2014-10-16 23:10:03 +00:00
Enrico Granata 511247188f The number '5' triggers a bug unrelated to LLDB, and is not instrumental to this test in any way. Use another, randomly chosen, number to make the test pass again and provide useful actionable feedback about things that truly matter
llvm-svn: 219982
2014-10-16 23:06:40 +00:00
Enrico Granata 82909b9f1d Some more test marking
llvm-svn: 219981
2014-10-16 23:03:06 +00:00
Enrico Granata d2657c53ac This test needs the SB headers to make sense
llvm-svn: 219980
2014-10-16 23:02:45 +00:00
Jim Ingham da3a386622 Add a test for the -b (batch mode) option to the lldb driver.
llvm-svn: 219979
2014-10-16 23:02:14 +00:00
Enrico Granata a0524bd159 Fix this test case to actually work - it was relying on a certain 'po' output which wasn't occurring
llvm-svn: 219978
2014-10-16 23:02:03 +00:00
Enrico Granata 83e7f68d39 Some more failure to bug tracking
llvm-svn: 219973
2014-10-16 22:27:17 +00:00
Enrico Granata 0d976f0699 Associate a bug tracking ID with this test case
llvm-svn: 219972
2014-10-16 22:06:26 +00:00
Enrico Granata be7d285e73 This test actually works alright - we were just checking for the wrong string
llvm-svn: 219971
2014-10-16 22:04:05 +00:00
Enrico Granata d116f4a0a0 I see this test case crash - skip for now
llvm-svn: 219970
2014-10-16 21:42:34 +00:00
Jason Molenda e5d8eaf042 Only call RemovePersistentVariable on expr_result if that shared
pointer contains something.

llvm-svn: 219966
2014-10-16 21:25:43 +00:00
Enrico Granata 8d9c2da2d1 Rework this code so that it does not trigger a compiler warning. NFC
llvm-svn: 219964
2014-10-16 21:18:58 +00:00
Jason Molenda 48c0440d97 Fix MemoryHistory plugin to check whether the plugin
was able to create itself before returning the shared
pointer to it.
clang warning.

llvm-svn: 219936
2014-10-16 16:59:23 +00:00
Jason Molenda 823d8f6246 Most of this function checks to see if m_process is non-null before
dereferencing it, except for this one section of code.  Add a null
check around it.
clang static analyzer fix.

llvm-svn: 219920
2014-10-16 08:43:27 +00:00
Jason Molenda 9bc86593a2 Another logical-or vrs. bitwise-or mixup in ClangUserExpression.
clang unreachable code warning.

llvm-svn: 219918
2014-10-16 08:27:27 +00:00
Jason Molenda b3795a4f5e Enable warnings in the debugserver project file..
llvm-svn: 219917
2014-10-16 08:16:29 +00:00
Jason Molenda 0060a38e7b A series of bit-flag values should be bitwise-or'ed not logical-or'ed.
clang unreachable code warning.

llvm-svn: 219916
2014-10-16 08:15:11 +00:00
Jason Molenda f8a7cfad6d Remove unreachable code.
llvm-svn: 219915
2014-10-16 08:08:13 +00:00
Jason Molenda 637822e3d1 Remove unreachable code.
llvm-svn: 219914
2014-10-16 08:07:54 +00:00
Jason Molenda 97e704b2af Add /* DISABLES CODE */ annotation before if (0) to mark it as intentional.
llvm-svn: 219913
2014-10-16 08:07:20 +00:00
Jason Molenda a68e4dcd7e Remove unreachable code.
llvm-svn: 219912
2014-10-16 08:05:49 +00:00
Jason Molenda 665f12a870 Remove unreachable code.
llvm-svn: 219911
2014-10-16 08:05:22 +00:00
Jason Molenda ecafcb867a Xcode recommended these changes to the project file. It recommended
a number of warnings to be enabled.  The one making the most noise
across the code base right now is CLANG_WARN_UNREACHABLE_CODE = YES.

llvm-svn: 219910
2014-10-16 08:04:28 +00:00
Jason Molenda 60b5da6c3c Remove unused initialization.
clang static analyzer fixit.

llvm-svn: 219909
2014-10-16 07:53:46 +00:00
Jason Molenda 18f5fd3a43 Remove dead store.
clang static analyzer fixit.

llvm-svn: 219908
2014-10-16 07:52:17 +00:00
Jason Molenda 8b5f2cfc19 Remove dead store.
clang static analyzer fixit.

llvm-svn: 219907
2014-10-16 07:49:27 +00:00
Jason Molenda 1e6cf05763 Remove dead store.
clang static analyzer fixit.

llvm-svn: 219905
2014-10-16 07:47:37 +00:00
Jason Molenda 5cf1e237f0 Remove unused variable.
clang static analyzer fixit.

llvm-svn: 219904
2014-10-16 07:41:32 +00:00
Jason Molenda 275746d768 Ryan Brown's patch to handle DW_OP_call_frame_cfa addresses
as load addreses instead of host addresses.
http://reviews.llvm.org/D5735

llvm-svn: 219896
2014-10-16 02:56:12 +00:00
Jason Molenda 42f4c7e720 Fix accidental over-checking of args in launcherXPCService.
llvm-svn: 219895
2014-10-16 02:53:57 +00:00
Jason Molenda 4ecbc44f79 Fix a potential null pointer deref & a potential memory leak,
also reformat to conform to the usual lldb coding conventions
a little better.
clang static analyzer fixit.

llvm-svn: 219893
2014-10-16 02:08:11 +00:00
Jason Molenda 3206b1e077 Remove unnecessary update of 'name' local.
clang static analyzer fixit.

llvm-svn: 219892
2014-10-16 01:55:21 +00:00
Jason Molenda 3c86c7e3a2 Remove unused change to argc/argv after long option parsing has been completed.
clang static analyzer fixit.

llvm-svn: 219891
2014-10-16 01:50:14 +00:00
Jason Molenda 1446881254 Ensure that user_exe_path is non-NULL before derferencing.
We've already created a FileSpec based on this local and 
this code path would never be executed if it is an invalid
FilePath - but the static analyzer doesn't know this and I
want to placate it.
clang static analyzer fixit.

llvm-svn: 219890
2014-10-16 01:42:11 +00:00
Jason Molenda 60db6e43ca Guard against NULL derefs.
clang static analyzer fixits.

llvm-svn: 219889
2014-10-16 01:40:16 +00:00
Jason Molenda d31c800ce0 Ah, accidentally committed a patch I didn't mean to.
llvm-svn: 219888
2014-10-16 01:27:31 +00:00
Jason Molenda 320e7b3897 It's possible for long_options[long_options_index].definition to be null
from the previous for() loop - check that it is non-null before trying
to deref it.
clang static analyzer fixit.

llvm-svn: 219887
2014-10-16 01:26:51 +00:00
Jason Molenda aee7eb5ed1 Check that process is non-null before calling a method in it.
clang static analyzer fixit.

llvm-svn: 219886
2014-10-16 01:23:06 +00:00
Jason Molenda 4c9bd87916 It's possible for this function to not be passed a CompUnit*; add
guards around a few additional uses of the cu local pointer.
clang static analyzer fixit.

llvm-svn: 219885
2014-10-16 01:21:25 +00:00
Jason Molenda 76513fd9bc Give old_state a default value so we won't try to restore
an uninitialized value.  In reality the code block that 
initializes it and the code block that restores it will always
match up - but the analyzer doesn't know that and I want to 
quiet it, so...
clang static analyzer fixit.

llvm-svn: 219869
2014-10-15 23:39:31 +00:00
Jason Molenda 900dbdc4d9 Give user_id a default invalid value so we don't
possibly use it uninitialized in a log message later.
clang static analyzer fixit.

llvm-svn: 219865
2014-10-15 23:27:12 +00:00
Jason Molenda aeb9a06ff5 Fix unused-variable warnings from the clang static analyzer.
llvm-svn: 219863
2014-10-15 23:13:51 +00:00
Jason Molenda 026aa4962a Mechanical change to FastDemangle to make it closer to the lldb
coding conventions.  Lots of whitespace et al changes but no
content changes.

llvm-svn: 219856
2014-10-15 22:11:15 +00:00
Enrico Granata de4de39c9d This should keep the non-Xcode-based builds happy
llvm-svn: 219853
2014-10-15 21:39:17 +00:00
Enrico Granata 5510a5762c Add synthetic children support for NSIndexPath
llvm-svn: 219852
2014-10-15 21:38:32 +00:00
Enrico Granata db2ecad3cd The NSDate formatter should use GMT instead of the local timezone. Fixes rdar://13416848
llvm-svn: 219841
2014-10-15 20:18:58 +00:00
Enrico Granata b0c5b8f228 Make this test case more resilient in the face of line-table and inlining changes
llvm-svn: 219828
2014-10-15 18:42:45 +00:00
Greg Clayton 807b6b326d Allow ThreadLauncher::LaunchThread() to specify a minimum stack byte size when launching threads.
This defaults to zero, which means to use the system default.

NOTE: Windows will need to implement this.

<rdar://problem/18644448>

llvm-svn: 219821
2014-10-15 18:03:59 +00:00
Zachary Turner cb37ddda0d Remove some unnecessary headers from Host.cpp
After the recent migration of code out of Host.cpp, many
unnecessary headers were still being included.  This prunes the
include list down to only what is still necessary.

llvm-svn: 219814
2014-10-15 17:27:11 +00:00
Matthew Gardiner 6e7b0a088e Improve the handling of kalimba ELF file section type recognition.
Recognise the SHT_NOBITS property in kalimba ELF, and determine this to be
of type zerofilled. Subsequently recognise this type to represent bytes
on the target's DATA address space, and therefore be sized accordingly.

llvm-svn: 219782
2014-10-15 08:21:54 +00:00
Jason Molenda 270c52c8dc Be more consistent about null checks for the Process and ABI
in GetFullUnwindPlanForFrame() - the code was mostly checking
that we had an active Process and ABI but not always.
clang static analyzer fixit.

llvm-svn: 219772
2014-10-15 03:11:37 +00:00
Jason Molenda d91a662a2e Make sure local var cu is non-NULL before dereferencing.
(it was checked for NULL-ness in some places, not in others)
clang static analyzer fixit.

llvm-svn: 219771
2014-10-15 03:07:39 +00:00
Jason Molenda 4d9f3b0e50 Remove unneeded local var initialization.
clang static analyzer fixit.

llvm-svn: 219770
2014-10-15 03:06:23 +00:00
Jason Molenda 9aae9fcbaf Make sure is_indirect local var is initialized; there
exists a code path where it could be used while uninitialized.
clang static analyzer fixit.

llvm-svn: 219769
2014-10-15 03:05:38 +00:00
Jason Molenda 68c8521e71 Ensure that m_syntax is initialized in all the FileSpec
constructors.
clang static analyzer fixit.

llvm-svn: 219768
2014-10-15 03:04:33 +00:00
Eric Christopher cba08bd9b2 Remove unused variable.
llvm-svn: 219751
2014-10-15 00:15:26 +00:00
Zachary Turner 172d37d3b9 Create a process launcher abstraction.
This implements Host::LaunchProcess for windows, and in doing so
does some minor refactor to move towards a more modular process
launching design.

The original motivation for this is that launching processes on
windows needs some very windows specific code, which would live
most appropriately in source/Host/windows somewhere.  However,
there is already some common code that all platforms use when
launching a process before delegating to the platform specific
stuff, which lives in source/Host/common/Host.cpp which would
be nice to reuse without duplicating.

This commonality has been abstracted into MonitoringProcessLauncher,
a class which abstracts out the notion of launching a process using
an arbitrary algorithm, and then monitoring it for state changes.

The windows specific launching code lives in ProcessLauncherWindows,
and the posix specific launching code lives in ProcessLauncherPosix.
When launching a process MonitoringProcessLauncher is created, and
then an appropriate delegate launcher is created and given to the
MonitoringProcessLauncher.

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

llvm-svn: 219731
2014-10-14 21:55:08 +00:00
Zachary Turner 756acbaa0e Fix a path concatenation issue related to windows paths.
llvm-svn: 219730
2014-10-14 21:54:14 +00:00
Jason Molenda 63ba883d4b When PlatformDarwinKernel::ExamineKextForMatchingUUID is given
a FileSpec, UUID, and ArchSpec, and it's opening all the kexts
with the same bundle id to see if they're a match, don't set
the Arch in the ModuleSpec.  If Module::GetObjectFile() sees
that the architecture of the kext is a mismatch for the arch
we're looking for, it'll spew a warning message to the dev (r217251).

Rely on the UUID match to get the correct file if we have
a UUID -- we'll get no warning if it's a mismatch.

<rdar://problem/18641477> 

llvm-svn: 219728
2014-10-14 21:47:45 +00:00
Greg Clayton b8e9b8b703 Fixed stdio redirection within LLDB to "do the right thing" in all cases.
The main issue was if you didn't specify all three (stdin/out/err), you would get file actions added to the launch that would always use the pseudo terminal. This is now fixed.

Also fixed the test suite test that handles IO to test redirecting things individually and all together and in other combinations to make sure we don't regress.

<rdar://problem/18638226>

llvm-svn: 219711
2014-10-14 20:18:05 +00:00
Ed Maste c08a563292 Skip asan test on FreeBSD
The build fails due to missing asan runtime in the FreeBSD base system.
Instead of marking it expected fail, just skip until we have the runtime
available.

llvm.org/pr21136

llvm-svn: 219701
2014-10-14 18:04:47 +00:00
Todd Fiala d7e27eac19 Fix dotest.py test runner exit code to return non-zero on failure/error.
This addresses this bug:
http://www.llvm.org/bugs/show_bug.cgi?id=21267

Which has been broken since svn r215256 on Aug 8 2014.

DO NOT REVERT THIS COMMIT EVEN IF IT CREATES TEST FAILURES.

The test failures are a result of accumulation of hidden failures
that were masked by the bug this change fixes.  Most of our test
runners as part of build testing rely on dotest.py returning non-zero to indicate
some kind of errant test run.  Thus, we have been flying blind
since Aug 8 2014.

llvm-svn: 219689
2014-10-14 16:17:02 +00:00
Eric Christopher 1b9eb1a13a Use PARALLEL_DIRS instead of DIRS in the Makefile
based build since the subdirectories all appear to
have no inter-directory dependencies. This speeds
up parallel makefile builds greatly.

llvm-svn: 219660
2014-10-14 06:26:33 +00:00
Jim Ingham ffc9f1de34 This adds a "batch mode" to lldb kinda like the gdb batch mode. It will quit the debugger
after all the commands have been executed except if one of the commands was an execution control
command that stopped because of a signal or exception.

Also adds a variant of SBCommandInterpreter::HandleCommand that takes an SBExecutionContext.  That
way you can run an lldb command targeted at a particular target, thread or process w/o having to 
select same before running the command.

Also exposes CommandInterpreter::HandleCommandsFromFile to the SBCommandInterpreter API, since that
seemed generally useful.

llvm-svn: 219654
2014-10-14 01:20:07 +00:00
Sean Callanan 0809b2ddc3 Resolve non-pointer isas for metaclasses.
Patch by Enrico Granata.
<rdar://problem/18618298>

llvm-svn: 219641
2014-10-13 23:03:49 +00:00
Greg Clayton e5bbe10d9e Don't lock the IOHandlerList::m_mutex in Debugger::RunIOHandler(...) since if a process is resumed or halted, it will try to push/pop the process IOHandler and it will deadlock.
<rdar://problem/18610852>

llvm-svn: 219620
2014-10-13 16:54:26 +00:00
Todd Fiala 75f47c3a5d llgs: fixes to PTY/gdb-remote inferior stdout/stderr handling, logging addtions.
With this change, both local-process llgs and remote-target llgs stdout/stderr
handling from inferior work correctly.

Several log lines have been added around PTY and stdout/stderr redirection
logic on the lldb client side.

Regarding remote llgs execution, see the following:

With these changes, remote llgs with $O now works properly:

$ lldb
(lldb) platform select remote-linux
(lldb) target create ~/some/inferior/exe
(lldb) gdb-remote {some-target}:{port}
(lldb) run

The sequence above will correctly redirect stdout/stderr over gdb-remote $O,
as is needed for remote debugging.  That sequence assumes there is a lldb-gdbserver
exe running on the target with {some-host}:{port}.

You can replace the gdb-remote command with a '(lldb) platform connect
connect://{target-ip}:{target-port}'.  If you do this and have a
lldb-platform running on the remote end, it will go ahead and launch
llgs for lldb for each target instance that is run/attached.

For local debugging with llgs, the following sequence also works, and
uses local PTYs instead to avoid $O and extra gdb-remote messages:

$ lldb
(lldb) settings set platform.plugin.linux.use-llgs true
(lldb) target create ~/some/inferior/exe
(lldb) run

The above will run the inferior using llgs on the local host, and
will use PTYs rather than $O redirection.

This change also removes the logging that happened after the fork but
before the exec when llgs is launching a new inferior process.  Some
aspect of the file handling during that portion of code would not do
the right thing with log handling.  We might want to go back later
and have that communicate over a pipe from the child to parent to pass
along any messages that previously were logged in that section of code.

llvm-svn: 219578
2014-10-11 21:42:09 +00:00
Todd Fiala 41d96d2d03 Fix cmake build for PluginInstrumentationRuntimeAddressSanitizer.
llvm-svn: 219576
2014-10-11 20:11:18 +00:00
Kuba Brecka 6392754839 Add a IsInstrumentationRuntimePresent SB API
Reviewed at http://reviews.llvm.org/D5738

This adds an SB API into SBProcess:
  bool SBProcess::IsInstrumentationRuntimePresent(InstrumentationRuntimeType type);
which simply tells whether a particular InstrumentationRuntime (read "ASan") plugin is present and active.

llvm-svn: 219560
2014-10-11 01:59:32 +00:00
Kuba Brecka 9b7f36b521 include compiler-rt in build-llvm.pl
Reviewed at http://reviews.llvm.org/D5736

The new test cases for ASan fail if the llvm build that is used with LLDB doesn't have compiler-rt (because the resulting compiler then cannot build with -fsanitize=address). Let's include compiler-rt in build-llvm.pl script and make sure we actually *build* it by removing the NO_RUNTIME_LIBS=1 argument used in the make line. After this, the ASan tests pass on a fresh svn checkout.

llvm-svn: 219555
2014-10-11 00:53:32 +00:00
Eric Christopher e709821359 Fix the build after the recent plugin additions for
AddressSanitizer by adding dependencies and definitions.

llvm-svn: 219554
2014-10-11 00:38:55 +00:00
Jim Ingham 26c7bf9312 Rework the way we pass "run multiple command" options to the various API's that
do that (RunCommandInterpreter, HandleCommands, HandleCommandsFromFile) to gather
the options into an options class.  Also expose that to the SB API's.

Change the way the "-o" options to the lldb driver are processed so:
1) They are run synchronously - didn't really make any sense to run the asynchronously.
2) The stop on error
3) "quit" in one of the -o commands will not quit lldb - not the command interpreter
that was running the -o commands.

I added an entry to the run options to stop-on-crash, but I haven't implemented that yet.

llvm-svn: 219553
2014-10-11 00:38:27 +00:00
Eric Christopher fd1a9362be Reinstate setting addr_width to the result of the computation,
but in the conditional rather than at initialization time.

llvm-svn: 219549
2014-10-11 00:04:42 +00:00
Eric Christopher 53b293e447 Remove default case from a fully covered switch.
llvm-svn: 219548
2014-10-11 00:00:08 +00:00
Eric Christopher baaf079423 Fix unused variable warning from r219544.
llvm-svn: 219547
2014-10-10 23:58:30 +00:00
Kuba Brecka afdf842b3f LLDB AddressSanitizer instrumentation runtime plugin, breakpint on error and report data extraction
Reviewed at http://reviews.llvm.org/D5592

This patch gives LLDB some ability to interact with AddressSanitizer runtime library, on top of what we already have (historical memory stack traces provided by ASan). Namely, that's the ability to stop on an error caught by ASan, and access the report information that are associated with it. The report information is also exposed into SB API.

More precisely this patch...

adds a new plugin type, InstrumentationRuntime, which should serve as a generic superclass for other instrumentation runtime libraries, these plugins get notified when modules are loaded, so they get a chance to "activate" when a specific dynamic library is loaded
an instance of this plugin type, AddressSanitizerRuntime, which activates itself when it sees the ASan dynamic library or founds ASan statically linked in the executable
adds a collection of these plugins into the Process class
AddressSanitizerRuntime sets an internal breakpoint on __asan::AsanDie(), and when this breakpoint gets hit, it retrieves the report information from ASan
this breakpoint is then exposed as a new StopReason, eStopReasonInstrumentation, with a new StopInfo subclass, InstrumentationRuntimeStopInfo
the StopInfo superclass is extended with a m_extended_info field (it's a StructuredData::ObjectSP), that can hold arbitrary JSON-like data, which is the way the new plugin provides the report data
the "thread info" command now accepts a "-s" flag that prints out the JSON data of a stop reason (same way the "-j" flag works now)
SBThread has a new API, GetStopReasonExtendedInfoAsJSON, which dumps the JSON string into a SBStream
adds a test case for all of this
I plan to also get rid of the original ASan plugin (memory history stack traces) and use an instance of AddressSanitizerRuntime for that purpose.

Kuba

llvm-svn: 219546
2014-10-10 23:43:03 +00:00
Jason Molenda aff1b357b0 Add a new disassembly-format specification so that the disassembler
output style can be customized.  Change the built-in default to be
more similar to gdb's disassembly formatting.

The disassembly-format for a gdb-like output is

${addr-file-or-load} <${function.name-without-args}${function.concrete-only-addr-offset-no-padding}>: 

The disassembly-format for the lldb style output is

{${function.initial-function}{${module.file.basename}`}{${function.name-without-args}}:\n}{${function.changed}\n{${module.file.basename}`}{${function.name-without-args}}:\n}{${current-pc-arrow} }{${addr-file-or-load}}: 

The two backticks in the lldb style formatter triggers the sub-expression evaluation in
CommandInterpreter::PreprocessCommand() so you can't use that one as-is ... changing to
use ' characters instead of ` would work around that.

<rdar://problem/9885398> 

llvm-svn: 219544
2014-10-10 23:07:36 +00:00
Enrico Granata 0aa6926d0b When parsing ObjC types from encoded strings (and disallowing any-type), the ^? combination gets resolved to no type, while we could resolve it to void*
I don't think on any of the platforms where ObjC matters sizeof(T*) depends on T, so even if we never figured out the pointee type, the pointer type should still be sane
This might also allow some limited inspection where previously none was possible, so a win

llvm-svn: 219540
2014-10-10 22:45:38 +00:00
Andrew MacPherson 1d33e8d38f Update assertion in DYLDRendezvous.
This accounts for the case where a dlopen() call fails when loading a library with a missing dependency.

llvm-svn: 219520
2014-10-10 17:47:00 +00:00
Todd Fiala 2c77a427ab Reverse out r219169 related to quote handling.
Addresses pr/21190 (http://llvm.org/bugs/show_bug.cgi?id=21190).

r219169 implemented this change list:
http://reviews.llvm.org/D5472 for more details.

llvm-svn: 219461
2014-10-10 01:11:39 +00:00
Todd Fiala 348fb385d5 Enable local llgs debugging on Linux when the use-llgs-for-local setting is enabled.
See http://reviews.llvm.org/D5695 for details.

This change does the following:

Enable lldb-gdbserver (llgs) usage for local-process Linux debugging.
To turn on local llgs debugging support, which is disabled by default, enable this setting:

(lldb) settings set platform.plugin.linux.use-llgs-for-local true
Adds a stream-based Dump() function to FileAction.
Pushes some platform methods that Linux (and FreeBSD) will want to share with MacOSX from PlatformDarwin into PlatformPOSIX.

Reviewed by Greg Clayton.

llvm-svn: 219457
2014-10-10 00:09:16 +00:00
Enrico Granata ca0e5ad3d3 In cases where you'd use an expression to get a value to insert in a command, be ready to use synthetic children if they are there. Those are now a source of values, so worth checking for
llvm-svn: 219452
2014-10-09 23:09:40 +00:00
Enrico Granata 6030e04591 Enhance the libc++ list data formatter so that it does not start looking for loops until asked to actually fetch children. Also, if you're going to read child X, only look for a loop in the first X nodes. Loops further down the road won't really matter. This should speed things up for large lists and fix rdar://18583790
llvm-svn: 219447
2014-10-09 21:56:30 +00:00
Zachary Turner 8ada0b9713 Correctly fix ScriptInterpreterPython::ExecuteOneLine for windows.
llvm-svn: 219435
2014-10-09 20:17:53 +00:00
Enrico Granata ddac7611ee If a ValueObject has a child that vends synthetic children, but only does so to generate a value for itself, that's not a disqualifier from one-line printing. Also, fetch synthetic values if available and requested for children as well while printing them
llvm-svn: 219427
2014-10-09 18:47:36 +00:00
Enrico Granata 538a88aac7 Add an API on ValueObject to retrieve the desired dynamic/synthetic combination all at once, if available, working somewhat hard to avoid returning an invalid ValueObject in the process
llvm-svn: 219423
2014-10-09 18:24:30 +00:00
Todd Fiala 7aafc4a5ff thread state coordinator: fixed bug in thread running state book-keeping.
Adds a test to verify that a thread resume request marks the thread as running
after doing the resume callback.  This test fails without the corresponding
ThreadStateCoordinator.cpp change.

Fixes the code where that state was not maintained.

llvm-svn: 219412
2014-10-09 17:00:55 +00:00
Todd Fiala ac33cc9ce7 logging: added more logging to the Target/Platform launch & attach sequence.
llvm-svn: 219377
2014-10-09 01:02:08 +00:00
Todd Fiala 616b827ad0 Added a bit of logging around GDBRemoteCommunicationClient::SendGDBStoppointTypePacket.
llvm-svn: 219374
2014-10-09 00:55:04 +00:00
Todd Fiala c85d6f741c Fix MacOSX Xcode build for Pipe changes.
Also cleans up the lldb Xcode project's Source > Host > posix directory
to use group-relative file naming.  Also alphabetizes file entries.

llvm-svn: 219373
2014-10-09 00:52:05 +00:00
Todd Fiala 952bccd212 POSIX dynamic loader: add more logging around launch/attach, fix breakpoint handling on entry callback.
This change adds some logging around dynamic loader handling.
It also fixes an issue where the dynamic loader entry breakpoint can end
up being re-inserted, showing the wrong (i.e. software breakpoint) instruction
at the stop location when a backtrace is displayed at program startup.

I discussed with Jim Ingham a few weeks back.  Essentially the
one-hit breakpoints need to make it back to public state handling before
the software breakpoint gets cleared.  The flow I was hitting was that
the breakpoint would get set, it would get hit, it would get cleared to
step over, then it would get reapplied, when we never wanted it reapplied.
Stops at the beginning of execution would then show backtraces with
software breakpoint instructions in it, erroneously.  This change fixes it.
There might be a more elegant way to do this, or a flow change somewhere else
to avoid, but it does fix an issue I experienced in startup breakpoint handling.

llvm-svn: 219371
2014-10-09 00:11:43 +00:00
Enrico Granata f4c1242bd9 Add a SyntheticValueProviderFrontEnd that serves internally the same purpose as lldb.SBSyntheticValueProvider serves on the API layer
llvm-svn: 219352
2014-10-08 22:53:01 +00:00
Zachary Turner 57cfe3405b Fix compile error on posix.
llvm-svn: 219340
2014-10-08 20:59:55 +00:00
Zachary Turner b2df30d652 Fix deadlock in Python one-line execution.
Python one-line execution was using ConnectionFileDescriptor to do
a non-blocking read against a pipe.  This won't work on Windows,
as CFD is implemented using select(), and select() only works with
sockets on Windows.

The solution is to use ConnectionGenericFile on Windows, which uses
the native API to do overlapped I/O on the pipe.  This in turn
requires re-implementing Host::Pipe on Windows using native OS
handles instead of the more portable _pipe CRT api.

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

llvm-svn: 219339
2014-10-08 20:38:41 +00:00
Enrico Granata 8387e2fafe Add a (Python only) lldb.SBSyntheticValueProvider class to our API surface
On a suggestion from Jim Ingham, this class allows you to very easily define synthetic child providers that return a synthetic value (in the sense of r219330), but no children

Also, document this new feature in our www docs

llvm-svn: 219337
2014-10-08 20:10:09 +00:00
Enrico Granata d07cfd3ae4 Extend synthetic children to produce synthetic values (as in, those that GetValueAsUnsigned(), GetValueAsCString() would return)
The way to do this is to write a synthetic child provider for your type, and have it vend the (optional) get_value function.
If get_value is defined, and it returns a valid SBValue, that SBValue's value (as in lldb_private::Value) will be used as the synthetic ValueObject's Value

The rationale for doing things this way is twofold:

- there are many possible ways to define a "value" (SBData, a Python number, ...) but SBValue seems general enough as a thing that stores a "value", so we just trade values that way and that keeps our currency trivial
- we could introduce a new level of layering (ValueObjectSyntheticValue), a new kind of formatter (synthetic value producer), but that would complicate the model (can I have a dynamic with no synthetic children but synthetic value? synthetic value with synthetic children but no dynamic?), and I really couldn't see much benefit to be reaped from this added complexity in the matrix
On the other hand, just defining a synthetic child provider with a get_value but returning no actual children is easy enough that it's not a significant road-block to adoption of this feature

Comes with a test case

llvm-svn: 219330
2014-10-08 18:27:36 +00:00
Ed Maste ef9bc3d857 Add decorator for FreeBSD failure
llvm.org/pr21211

llvm-svn: 219329
2014-10-08 18:16:24 +00:00
Ed Maste c6bd742aed Skip asan test on FreeBSD
The build fails due to missing asan runtime in the FreeBSD base system.
Instead of marking it expected fail, just skip until we have the runtime
available.

llvm.org/pr21136

llvm-svn: 219328
2014-10-08 18:15:48 +00:00
Todd Fiala e231efaee5 llgs: add logging to Native*Protocol breakpoints around byte values replaced and restored.
Useful for verifying what bytes a software breakpoint clobbers/restores.

llvm-svn: 219318
2014-10-08 17:14:53 +00:00
Shawn Best 1ded74a8c4 Minor comment change to test out svn access
llvm-svn: 219269
2014-10-08 01:50:37 +00:00
Jim Ingham 8b91d0cd01 Fix stepping over the inserted breakpoint trap when the NEXT instruction
also contains a breakpoint.

<rdar://problem/18519712>

llvm-svn: 219263
2014-10-08 01:03:54 +00:00
Jason Molenda ac18ea7abb Update TestInlinedBreakpoints to reflect the fact that
the default search method is "always" as of r218405.

For the purposes of this test, set it back to "headers"
to confirm that the file+line breakpoint doesn't work,
then verify that it does work with "always".  Leave it
in "always" setting.
<rdar://problem/18564244> 

llvm-svn: 219251
2014-10-07 23:37:28 +00:00
Enrico Granata 95c39ce2f3 Change this test case so that it no longer fails in the face of Bug 21190. The failure and the bug are entirely unrelated, and it's trivial to write a repro case for that bug anyway, so no need to use this complicated test case
llvm-svn: 219248
2014-10-07 22:57:57 +00:00
Jason Molenda a410679ed6 When we detect a stack unwind loop, before we abort
the backtrace, try falling back to the architecture default
unwind plan and see if we can backtrace a little further.
<rdar://problem/18556719> 

llvm-svn: 219247
2014-10-07 22:55:13 +00:00
Enrico Granata 29551955a9 The type category enable * was implemented assuming a previous disable * had happened. While that will most likely be true in practice, the consequences of this not being the case will be a crash. I fix the crash by doing two things: 1) don't let already-enabled categories be enabled anyway; 2) if a category were disabled but with a bogus last-enabled position - highly highly unlikely - just put it in the first empty slot. I am not so sure 2) is bulletproof perfect, but I also don't think 2) will practically ever happen
llvm-svn: 219245
2014-10-07 22:15:27 +00:00
Jim Ingham b7bee50062 This test case was incorrect, it was relying on the fact
that the function we were calling would continue to sleep
for the requested time even if it was interrupted.  That is
not true of std::this_thread::sleep_for, at least not on OS X.

Fix the test case so that if it wakes up early, it goes back
to sleep till the time is actually greater than the end point.

<rdar://problem/18523742>

llvm-svn: 219234
2014-10-07 20:59:00 +00:00
Zachary Turner 5cbeb850fb Fix compile error on Windows.
llvm-svn: 219232
2014-10-07 20:34:36 +00:00
Greg Clayton 2f547177f8 Improved the TreeItem delegate which simplifies making tree items:
- tree items can define any number of key/value pairs
- creating a tree you specify which columns you want to display and it will pick out the right key/value pairs from the new tree item dictionaries
- added new "tk-target" command to explore the target's images, sections, symbols, compile units and line tables.

llvm-svn: 219219
2014-10-07 17:30:23 +00:00
Todd Fiala f72fa67fc3 Fix spurious output to command line when launching a process on Linux.
See http://reviews.llvm.org/D5632 for details.

Change by Shawn Best.

llvm-svn: 219213
2014-10-07 16:05:21 +00:00
Ed Maste 59cca5dc29 Fix exception text to match function name
llvm-svn: 219181
2014-10-07 01:57:52 +00:00
Todd Fiala a9ae365b2d Add "target.expr-parser-compiler-args" setting.
This setting contains the following:
A list containing all the arguments to be passed to the expression parser compiler.

This change also ensures quoted arguments are handled appropriately.

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

Change by Tong Shen.

llvm-svn: 219169
2014-10-06 23:13:30 +00:00
Jason Molenda 7dd293904d Add another address to check for the kernel's load addr in debug configs.
<rdar://problem/18560328> 

llvm-svn: 219152
2014-10-06 22:23:30 +00:00
Jason Molenda 02ad9378d7 Update xcode project file to match zach's move of connetionfiledescriptor in r219143.
llvm-svn: 219151
2014-10-06 22:15:29 +00:00
Enrico Granata b2c59e9faa And here's another test case that uses the SB API. Skip it too
llvm-svn: 219148
2014-10-06 22:00:35 +00:00
Enrico Granata 91c2d6d642 This test also relies on the SB API headers. Same logic
llvm-svn: 219147
2014-10-06 21:42:22 +00:00
Enrico Granata b633e43d2b In some cases, the LLDB test suite will be run on a built framework with no sources coming along. In those cases, we want to skip the SB API test case. Add a marker for that, and apply it
llvm-svn: 219146
2014-10-06 21:37:06 +00:00
Zachary Turner 12792af026 Create a ConnectionGenericFile class for Windows.
This is the first step in getting ConnectionFileDescriptor ported
to Windows. It implements a connection against a disk file for
windows. This supports connection strings of the form file://PATH
which are currently supported only on posix platforms in
ConnectionFileDescriptor.

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

llvm-svn: 219145
2014-10-06 21:23:09 +00:00
Zachary Turner 2885acee4d Make TimeValue support returning the time in milliseconds.
llvm-svn: 219144
2014-10-06 21:22:48 +00:00
Zachary Turner 93a66fc13a Move ConnectionFileDescriptor to platform-specific Host directory.
As part of getting ConnectionFileDescriptor working on Windows,
there is going to be alot of platform specific work to be done.
As a result, the implementation is moving into Host.  This patch
performs the code move and fixes up call-sites appropriately.

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

llvm-svn: 219143
2014-10-06 21:22:36 +00:00
Enrico Granata 9aceaa1be2 Fix a problem where LLDB was constructing a TypeImpl marking the dynamic type as the static type. Instead use the TypeImpl() constructor correctly
llvm-svn: 219142
2014-10-06 21:00:30 +00:00
Sean Callanan e6553d83aa Made TestCommandScript more robust against new
lines at arbitrary points.

llvm-svn: 219133
2014-10-06 17:58:15 +00:00
Ed Maste cdbb5f08d6 Revert r219102 as it caused significant buildbot breakage
llvm-svn: 219120
2014-10-06 13:40:32 +00:00
Matthew Gardiner 64ee99183b Call SBDebugger::Initialize/Terminate from within Create/Destroy.
The above change permits developers using the lldb C++ API to
code applications in a more logical manner.

llvm-svn: 219102
2014-10-06 05:22:29 +00:00
Enrico Granata 1a3576a450 These two tests were failing on the FreeBSD bot - one has to assume because FreeBSD comes with libc++. Skip them
llvm-svn: 219032
2014-10-03 22:33:03 +00:00
Enrico Granata 0aca4b1aa0 These tests all seem to pass on my machine, marking them as non-Xfail on Darwin, or clang where applicable. Non-Apple folks, if these fail for you, maybe we can put some more helpful markers on them
llvm-svn: 219020
2014-10-03 21:26:37 +00:00
Matthew Gardiner de257b88d9 Remove compiler warnings.
Unused parameter warnings emanated for #inclusion of SBDebugger.h. This change fixes them.

llvm-svn: 218975
2014-10-03 10:57:56 +00:00
Enrico Granata 29ba63d336 Stop enabling the std::vector<bool> data formatter for libstdc++, and for that matter, also skip running the test on Darwin. libstdc++ is more relevant on non-Apple platforms
llvm-svn: 218952
2014-10-03 01:54:10 +00:00
Enrico Granata e7687adc60 Issuing a "type category disable *" command followed by a "type category enable *" command does not honor the order in which categories were previously enabled
While we didn't really promise it would, it seems like it should

This checkin enables just that, and fixes rdar://18527468

llvm-svn: 218949
2014-10-03 01:48:32 +00:00
Ed Maste 85eb12b000 Add FreeBSD test failure decorators
llvm-svn: 218908
2014-10-02 21:11:28 +00:00