Commit Graph

2417 Commits

Author SHA1 Message Date
Ed Maste e63b5125e0 Add decorator for FreeBSD DynamicValueTestCase failure
Not yet root-caused, but I presume it is the same issue that affects
Linux.

llvm-svn: 205712
2014-04-07 13:42:05 +00:00
Ed Maste 99ed6dfa00 Add failure decorators
These tests started failing on FreeBSD after r205497 "Make the fail
messages"

llvm.org/pr19347

llvm-svn: 205652
2014-04-04 21:16:39 +00:00
Jim Ingham 6c9ed91cca Make the fail messages
llvm-svn: 205497
2014-04-03 01:26:14 +00:00
Jim Ingham 6cc0d2f61d Print the new eStopReasonExec in stop_reason_to_str.
llvm-svn: 205496
2014-04-03 01:25:28 +00:00
Jim Ingham 24e84d2c87 I removed SetCallback from the Python API's since it wasn't actually useful, and added SetScriptCallbackFunction,
and SetScriptCallbackBody.  So add these to the default constructor test case.

llvm-svn: 205494
2014-04-03 00:50:56 +00:00
Ed Maste abd482a650 Add decorator for pr19311 on FreeBSD
A breakpoint at the resume address for "continue" is skipped.  This is
presumably the root cause for the Linux failure as well.

llvm-svn: 205482
2014-04-02 23:01:04 +00:00
Enrico Granata c1fb7bd33e rdar://16424649
Clean up the DynamicValueTestCase

Namely, I split off the part of the test that validates child counts to a separate test

llvm-svn: 205450
2014-04-02 18:55:29 +00:00
Ed Maste e7f59bb04d Add annotation for failure from new Attach/Resume test case on FreeBSD
llvm-svn: 205427
2014-04-02 14:45:46 +00:00
Andrew MacPherson 82aae0d835 Use getpgid() with waitpid() in case the process pgid is not equal to its pid, as is the case with a forked subprocess. Also a couple of fixes for unit test failures from Todd Fiala.
llvm-svn: 205405
2014-04-02 06:57:45 +00:00
Jim Ingham 7d8f86ceae Test case for the previous commit.
llvm-svn: 205381
2014-04-02 01:05:27 +00:00
Enrico Granata a4d5fc3841 Use continue instead of next
llvm-svn: 205354
2014-04-01 19:37:14 +00:00
Ed Maste c97323ea8b Use libc++ on FreeBSD as on Darwin
llvm-svn: 205345
2014-04-01 18:47:58 +00:00
Ed Maste 1087f2980d Add errno import missed in r205246
llvm-svn: 205306
2014-04-01 12:49:21 +00:00
Ed Maste ce5ac7d776 Workaround test trace output dir creation race condition
Since dosep.ty started invoking multiple tests in parallel, the FreeBSD
buildbot occasionally has a failure due to os.mkdir returning EEXIST.
Silently ignore that exception, but reraise any other.

llvm-svn: 205246
2014-03-31 20:36:38 +00:00
Jason Molenda a332978b2a lldb arm64 import.
These changes were written by Greg Clayton, Jim Ingham, Jason Molenda.

It builds cleanly against TOT llvm with xcodebuild.  I updated the
cmake files by visual inspection but did not try a build.  I haven't
built these sources on any non-Mac platforms - I don't think this
patch adds any code that requires darwin, but please let me know if
I missed something.

In debugserver, MachProcess.cpp and MachTask.cpp were renamed to
MachProcess.mm and MachTask.mm as they picked up some new Objective-C
code needed to launch processes when running on iOS.

llvm-svn: 205113
2014-03-29 18:54:20 +00:00
Jim Ingham 914f4e7092 Add the ability from the SB API's to set the "one thread" timeout
for expression evaluations that try one and then all threads.

<rdar://problem/15598528>

llvm-svn: 205060
2014-03-28 21:58:28 +00:00
Ed Maste fdb85d8dc3 Remove annotation for llvm.org/pr19241
The issue has been fixed by r204745 and r204750

llvm-svn: 204779
2014-03-26 02:45:44 +00:00
Enrico Granata dd75b8556d Add a test case for the previous commit
llvm-svn: 204763
2014-03-25 22:09:24 +00:00
Enrico Granata f6601d0498 Make sure this test has a looser dependency on the exact class generated here.. it is going to be some sort of NS-provided String, but let's not bet on the details
llvm-svn: 204761
2014-03-25 21:59:40 +00:00
Todd Fiala e373b68977 Fixed up intermittently failing tests to skip on Linux.
Also added 'import sys' on some tests that are using non-standard
unittest2.skipUnless blocks with code that is intended to do things
that we have more specializes @* attributes for.  These skip
conditions were failing to execute due to missing import, causing
darwin-only tests to run on Linux regardless.  Will file a bug for
that separately.

llvm-svn: 204747
2014-03-25 18:55:48 +00:00
Ed Maste 03c9207c34 Update 'running threaded' messages after option parsing change
"Running multithreaded with n threads (from LLDB_TEST_THREADS)" is
incorrect in the common case, because the thread count is now obtained
from a --threads option, or a default of multiprocessing.cpu_count().

I left the messages in for now as there are some intermittent issues
that happen while running tests multithreaded and it may help in
triaging those.  We may wish to just remove them later on.

llvm-svn: 204725
2014-03-25 15:17:23 +00:00
Ed Maste 8c3e9b2515 Add expected failure annotation for llvm.org/pr19241
llvm-svn: 204718
2014-03-25 13:15:21 +00:00
Greg Clayton 2256d0dced Add a "--threads N" option instead of having to use an environment variable. It also now defaults to running with the number of CPUs on the machine.
llvm-svn: 204681
2014-03-24 23:01:57 +00:00
Ed Maste b04fb08c8a Add annotation for test failure due to clang 3.4
FreeBSD recently updated to Clang 3.4 and the TestFormatters test case
started failing as it omits the C1 complete object constructor when not
needed.

llvm.org/pr19011

llvm-svn: 204652
2014-03-24 18:30:59 +00:00
Jim Ingham 74287f4a12 Adapt test to avoid short string types.
llvm-svn: 204295
2014-03-20 02:21:17 +00:00
Jim Ingham c81a99eb48 More recent compilers emit debug info for the length property of NSString, so the length will be correctly
reported as NSUInteger.  Adopt the test case to handle either possibility.

llvm-svn: 204288
2014-03-20 01:08:27 +00:00
Jim Ingham 4e2084d792 expectedFailureDarwin for this test case.
llvm-svn: 204287
2014-03-20 00:19:16 +00:00
Jim Ingham c49d0d4fe6 I changed the logging test to just test that logging doesn't crash and does produce output. That's
about all it is useful to test.

llvm-svn: 204284
2014-03-19 23:55:54 +00:00
Jim Ingham a7d63fc610 These logging tests depend on the exact output of lldb logging, which is brittle
and not particularly useful.  Skipping till we get a chance to make a test that 
actually tests something we care about.

llvm-svn: 204283
2014-03-19 23:50:48 +00:00
Jim Ingham 040e26a945 Remember to run ranlib after ar to make useful archive files.
llvm-svn: 204282
2014-03-19 23:38:22 +00:00
Jim Ingham 1b15136b52 Remove unnecessary dependence on vecLib.
llvm-svn: 204281
2014-03-19 23:25:11 +00:00
Jim Ingham 7675035235 Check if "golden_output.txt" exists before trying to delete it rather than just raising an uncaught error.
llvm-svn: 204258
2014-03-19 19:45:37 +00:00
Jim Ingham 3a520a9373 Put a workaround for flaky unwinder behavior on Darwin (<rdar://problem/16363195>).
llvm-svn: 204254
2014-03-19 17:50:46 +00:00
Jim Ingham 3a0bcc032a Add a test to check the C's constructor's name is C::C, which will fail everywhere now,
so mark as expected fail.  And find another way to check that we hit our constructor
breakpoint, so we don't need to expected fail the Disassembly tests.

llvm-svn: 204209
2014-03-19 01:54:41 +00:00
Jim Ingham ac57f43072 Don't use the Disassembly test to report the fact that we don't decorate up
constructors with their class name, that seems inessential.  We can make another
test specifically for this if we want to.

llvm-svn: 204208
2014-03-19 01:41:19 +00:00
Jim Ingham 39771db637 Work around clang's ignoring __attribute ( align(16) ) in this test case.
llvm-svn: 204207
2014-03-19 00:50:08 +00:00
Jim Ingham 8e522094b2 Expected failure printing std::string::c_str() due to flubbing the typedef lookup.
llvm-svn: 204206
2014-03-19 00:30:31 +00:00
Steve Pucci 44ba171ae3 Inform users when *not* running dosep.ty multithreaded.
The gain with multithreading is large, but turning it on requires
an environment variable and so is hard for users to discover.  This
gives users a way to discover the feature by printing out a message
when the environment variable is not set.

llvm-svn: 204018
2014-03-16 18:23:59 +00:00
Jim Ingham 20e1458795 Test cases for stepping out past frames with no debug info if that is turned on.
llvm-svn: 203993
2014-03-15 00:57:48 +00:00
Jason Molenda b00cc1f92f Refactor the Queues test case a little based on feedback from Jim.
Add queues tests for when libBacktraceRecording is absent.

llvm-svn: 203864
2014-03-13 23:04:22 +00:00
Jason Molenda 846952f5d4 Also check if the queues are serial or concurrent.
llvm-svn: 203755
2014-03-13 05:43:18 +00:00
Jason Molenda 7f8b9111a5 Add a quick test case for some of the queues debugging support.
It should only run on Darwin systems, and only when a couple of
libraries are available.

llvm-svn: 203754
2014-03-13 05:37:51 +00:00
Jim Ingham 4b4b2478fc This commit reworks how the thread plan's ShouldStopHere mechanism works, so that it is useful not only
for customizing "step-in" behavior (e.g. step-in doesn't step into code with no debug info), but also 
the behavior of step-in/step-out and step-over when they step out of the frame they started in.

I also added as a proof of concept of this reworking a mode for stepping where stepping out of a frame
into a frame with no debug information will continue stepping out till it arrives at a frame that does
have debug information.  This is useful when you are debugging callback based code where the callbacks
are separated from the code that initiated them by some library glue you don't care about, among other
things.

llvm-svn: 203747
2014-03-13 02:47:14 +00:00
Jason Molenda 53b8ea1c89 Need to use rm -rf on dSYM bundle directories.
llvm-svn: 203332
2014-03-08 01:53:27 +00:00
Ed Maste c5a3c9f483 Use predefined $(RM) in clean rule, and -r only for (expected) directories
llvm-svn: 203271
2014-03-07 19:11:00 +00:00
Ed Maste 49f359aea4 Fix malloc thread step-out test on FreeBSD
After hitting the malloc() breakpoint on FreeBSD our top frame is actually
an inlined function malloc_init.

  * frame #0: 0x0000000800dcba19 libc.so.7`malloc [inlined] malloc_init at malloc.c:5397
    frame #1: 0x0000000800dcba19 libc.so.7`malloc(size=1024) + 9 at malloc.c:5949
    frame #2: 0x00000000004006e5 test_step_out_of_malloc_into_function_b_with_dwarf`b(val=1) + 37 at main2.cpp:29

Add a heuristic to keep stepping out until we come to a non-malloc caller,
before checking if it is our desired caller from the test code.

llvm.org/pr17944

llvm-svn: 203268
2014-03-07 19:02:20 +00:00
Ed Maste 0990e05d43 Fix test 'make clean' target for empty $(DSYM) on FreeBSD
A freebsd issue with rm prevents '[g]make clean' from working if $(DSYM)
is empty (fts_open(3) fails if passed an empty argument).

To work around this, simplify the clean target by using three separate
rm invocations: one for the common files, one for the case of non-empty
$(DYLIB_NAME), and one for non-empty $(DSYM).

Issue diagnosed (and reported to FreeBSD) by John Wolfe.

llvm.org/pr17933

llvm-svn: 203253
2014-03-07 17:20:50 +00:00
Ed Maste 11cbb11611 Add decorator for recent FreeBSD failure
llvm.org/pr19075

llvm-svn: 203245
2014-03-07 14:50:29 +00:00
Steve Pucci befe2b1c48 This commit provides support for running the dosep.ty test driver with multiple threads.
It speeds up running the full test suite on my HP z620 Ubuntu machine with 32 hyperthreaded CPUs from 11 minutes to about 1m13s (about 9x).

The default behavior is to run single-threaded as before.  If the environment variable LLDB_TEST_THREADS is set, a Python work queue is set up with that many worker threads.

To avoid collisions within a test directory where multiple tests make use of the same prebuilt executable, the unit of work for the worker threads is a single directory (that is, all tests within a directory are processed in the normal serial way by a single thread).

tfiala & I have run this way a number of times; the only issue I found was that the TestProcessAttach.py test failed once, when attempting to attach to the process "a.out" by name.  I assume this is because some other thread was running an executable of that name at the same time, and we were attempting to attach to the wrong one, so I changed that test to use a different executable name (that change is also included in this commit).

llvm-svn: 203180
2014-03-07 00:01:11 +00:00
Todd Fiala c25fd190ef Modified some test annotations so that tests on Linux that should be skipped don't show up as XFAIL.
The following two tests showed up as XFAIL even though they should
always be skipped on Linux, due to the @unittest2.expectedFailure
annotation appearing above the @dsym_test annotation:

TestObjCNewSyntax.ObjCNewSyntaxTestCase.test_expr_with_dsym
TestBlocks.BlocksTestCase.test_expr_with_dsym.

For those two, I simply moved the @dsym_test annotation to the top so
that it would be marked for skip ahead of being marked for XFAIL.

TestObjCNewSyntax.ObjCNewSyntaxTestCase.test_expr_with_dwarf I marked
as @skipIfLinux since my understanding is that isn't a valid test to
run on Linux. So rather than categorize as a fail (i.e. something
wrong to be fixed), just skip it. (My recent changes to Linux tests
have been following that model: if it could never work, skip; if it's
broken, mark XFAIL so we can easily track, fix, notice the fix and
adjust accordingly).

TestDeadStrip.DeadStripTestCase.test_with_dwarf I had previously
marked as XFAIL but this would never work on Linux with the current
linker AFAICT.  Marked it as skip.

llvm-svn: 202788
2014-03-04 05:28:24 +00:00
Ed Maste aa954d1188 Update test class name and comment to match test
llvm-svn: 202718
2014-03-03 15:01:28 +00:00
Todd Fiala d6ed44f926 Converted TestDeadStrip.py to be expected failure on Linux.
llvm-svn: 202522
2014-02-28 18:16:50 +00:00
Todd Fiala bae1d15491 Adjust TestExprDoesntBlock.py to be expected failure on Linux.
I suspect I may have misrun the test previously for check-in
r202456 re: pr15258.  This test fails consistently on my end.
I changed the test to expected failure on Linux.

llvm-svn: 202517
2014-02-28 17:49:20 +00:00
Todd Fiala 163bc1da1b Enabled TestSetWatchlocation.py on Linux.
This worked 25 out of 25 times for me on Ubuntu 12.04 LTS x86_64 built
with gcc 4.8.2 and the July 2013 libedit.

llvm-svn: 202516
2014-02-28 17:28:44 +00:00
Todd Fiala 4112545855 Converted TestRegisterVariables to run on Linux and skip with clang.
TestRegisterVariables.test_with_dwarf_and_run_command was being
skipped on Linux due to issues with clang. I converted it to a
@expectedFailureClang and no longer skip on Linux.

llvm-svn: 202515
2014-02-28 17:19:20 +00:00
Todd Fiala 319758af88 Converted TestConstVariables expected failure to @expectedFailureClang.
TestConstVariables.py was disabled on Linux and marked as
unconditional expected failure. This change removes the Linux disable
and makes the expected failure conditional on using clang. The test
runs fine on gcc-built lldb.

llvm-svn: 202514
2014-02-28 17:13:42 +00:00
Ed Maste c71f60f4a1 Restore signal delivery to the inferior on FreeBSD
This was broken in the threaded inferior implementation for FreeBSD
(r196787) and caused FreeBSD to resume always with no signal.

llvm-svn: 202513
2014-02-28 17:13:39 +00:00
Todd Fiala 4c523d3f8d Enable TestExitDuringBreak.test_with_dwarf on Linux.
This test passed 50 out of 50 times for me on Unbuntu 12.04 LTS x86_64
with lldb built using gcc 4.8.2 and July 2013 libedit.

This is related to:
http://llvm.org/bugs/show_bug.cgi?id=16170

llvm-svn: 202512
2014-02-28 17:04:04 +00:00
Todd Fiala 9ce4a73c89 Adjust TestConcurrentEvents.py test running for Linux.
Related to this bug:
http://llvm.org/bugs/show_bug.cgi?id=16714

On TOT lldb svn r202507, I found several of the tests disabled within
TestConcurrentEvents.py to run fine, and several of them to fail 100%
of the time on my system (25 out of 25 times).

This changes the following tests for Linux:

Enables (these all work consistently):
* test_many_watchpoints_dwarf
* test_signal_watch_break_dwarf (line 250)
* test_signal_watch_break_dwarf (line 260 - same named test?)
* test_crash_with_watchpoint_dwarf
* test_crash_with_watchpoint_breakpoint_signal_dwarf
* test_delayed_crash_with_breakpoint_watchpoint_dwarf

Marks as expected failure (these all fail consistently):
* test_many_watchpoints_dwarf
* test_watch_break_dwarf
* test_delay_watch_break_dwarf
* test_watch_break_dwarf_delay
* test_signal_watch_dwarf
* test_delay_signal_watch_dwarf
* test_signal_delay_watch_dwarf
* test_two_breakpoints_one_watchpoint_dwarf
* test_breakpoints_delayed_breakpoint_one_watchpoint_dwarf
* test_two_watchpoint_threads_dwarf
* test_watchpoint_with_delay_watchpoint_threads_dwarf
* test_two_watchpoints_one_breakpoint_dwarf
* test_two_watchpoints_one_delay_breakpoint_dwarf
* test_watchpoint_delay_watchpoint_one_breakpoint_dwarf
* test_two_watchpoints_one_signal_dwarf
* test_signal_watch_break_dwarf

llvm-svn: 202511
2014-02-28 16:50:05 +00:00
Todd Fiala 722311edc8 Enabled TestBreakAfterJoin.py on Linux.
This is related to:
http://llvm.org/bugs/show_bug.cgi?id=16170

This test ran successfully 40 out of 40 times on Ubuntu 12.04 LTS
x86_64.

llvm-svn: 202508
2014-02-28 15:54:36 +00:00
Todd Fiala f9dc4b7373 Change TestStopHookMechanism to @expectedFailureLinux.
Similar to my previous check-in related to:
http://llvm.org/bugs/show_bug.cgi?id=15037

10 out of 10 runs of this failed.  Mark it XFAIL.

llvm-svn: 202507
2014-02-28 15:47:48 +00:00
Todd Fiala 71c53fb25b Marked linux TestStopHookMultipleThreads as expected failure.
Related to this bug:
http://llvm.org/bugs/show_bug.cgi?id=15037

Previously this was marked as skipped. I tried running it 10 times in
a row and it failed every time. Switched it to XFAIL.

llvm-svn: 202506
2014-02-28 15:26:10 +00:00
Todd Fiala 550b1a298a Re-enable TestExprDoesntBlock.py on Linux.
This is related to:
http://llvm.org/bugs/show_bug.cgi?id=15258

I ran this test 10 times successfully against Ubuntu 12.04 LTS x86_64
with lldb built with gcc 4.8.2 and July 2013 libedit.

llvm-svn: 202456
2014-02-28 00:46:57 +00:00
Todd Fiala 7ffb2b0b53 Enable TestCallThatRestarts test on Linux.
This is related to:
http://llvm.org/bugs/show_bug.cgi?id=15278

I ran this 20 times in a row without failure at svn r202440 on Ubuntu
12.04 LTS x86_64 using July 2013 libedit and gcc 4.8.2.

llvm-svn: 202448
2014-02-28 00:20:10 +00:00
Todd Fiala 347284f82d Re-enable TestMultithreaded.py test on Linux.
I could not get http://llvm.org/bugs/show_bug.cgi?id=16016)
to fail on my end running 10 times in a row.  Re-enabling
the test.

llvm-svn: 202446
2014-02-28 00:13:00 +00:00
Enrico Granata dc598febe4 Make TestStdCXXDisassembly.StdCXXDisassembleTestCase work with libc++
<rdar://problem/16115219>

llvm-svn: 202180
2014-02-25 18:47:23 +00:00
Ed Maste c00c6e661f Remove TestConnectRemote decorator for FreeBSD
Failure is not reproducible on ToT LLDB locally or on the buildbot.

llvm.org/pr18313

llvm-svn: 202043
2014-02-24 15:10:00 +00:00
Ed Maste 9cd270e26e Stop skipping test on FreeBSD that no longer fails
llvm.org/pr17232

llvm-svn: 201928
2014-02-22 03:13:12 +00:00
Ed Maste 4fe0aba12b On FreeBSD "x86_64" is spelled "amd64"
llvm-svn: 201802
2014-02-20 18:40:01 +00:00
Ed Maste c30e764942 Treat 'amd64' as 'x86_64' as done for other tests
And add a decorator for llvm.org/pr18200

Patch by John Wolfe.

llvm-svn: 201708
2014-02-19 18:55:39 +00:00
Ed Maste a4be2c5dcd FreeBSD hardware watchpoint implementation
Implement x86_64 debug register read/write in support of hardware
watchpoints. Hoist LinuxThread::TraceNotify code back into
POSIXThread::TraceNotify()

Patch by John Wolfe.

We still need to rework this later to avoid the #ifdef FreeBSD.

llvm-reviews.chandlerc.com/D2572
llvm.org/pr16706

llvm-svn: 201706
2014-02-19 18:34:06 +00:00
Ed Maste 01fd1c60cd Update decorator for test that still fails with FreeBSD Watchpoint support
llvm.org/pr18832

llvm-svn: 201705
2014-02-19 18:26:48 +00:00
Enrico Granata 08a04327a9 <rdar://problem/15960553>
Fix a bug where calling SBFrame::FindValue() would cause a copy of all variables in the block to be inserted in the frame's variable list, regardless of whether those same variables were there or not - which means one could end up with a frame with lots of duplicate copies of the same variables

llvm-svn: 201614
2014-02-18 23:48:11 +00:00
Ed Maste 63f358baad Eliminate kernel warning when running tests on FreeBSD
pexpect had a hack to work around some old buggy platforms, and as a
result of the hack running the tests on FreeBSD produced a stream of
kernel warnings in the system log:

  Feb 5 17:19:11 feynman kernel: WARNING pid 11323 (python2.7):
    ioctl sign-extension ioctl ffffffff80087467

The hack has now been removed upstream, so remove it here too.

llvm.org/pr18749

llvm-svn: 201603
2014-02-18 21:33:10 +00:00
Enrico Granata 465f4bc287 <rdar://problem/16006373>
Revert the spirit of r199857 - a convincing case can be made that overriding a summary's format markers behind its back is not the right thing to do
This commit reverts the behavior of the code to the previous model, and changes the test case to validate the opposite of what it was validating before

llvm-svn: 201455
2014-02-15 01:24:44 +00:00
Ed Maste 96d7f449b1 Adjust logging test case after r201372
The final "HandleCommand, command succeeded" for "log disable lldb"
doesn't make it to the log file before the command takes effect.

llvm-svn: 201422
2014-02-14 16:06:35 +00:00
Ed Maste 96430645eb Update decorators for tests that still fail with FreeBSD Watchpoint support
llvm.org/pr18832

Reported by John Wolfe

llvm-svn: 201418
2014-02-14 14:52:10 +00:00
Todd Fiala 6bb55ba42b Re-enable TestAbbreviations.py on Linux after test fix.
See http://llvm.org/bugs/show_bug.cgi?id=18816.

llvm-svn: 201357
2014-02-13 19:21:13 +00:00
Greg Clayton 8b963bbd07 Fixed a test suite failure on Darwin due to logging issues.
llvm-svn: 201356
2014-02-13 18:30:23 +00:00
Ed Maste 2a798d9c05 Remove decorator for fixed test
llvm.org/pr18805 fixed by r201270

llvm-svn: 201284
2014-02-13 01:10:20 +00:00
Greg Clayton c7d8885be4 Fixed the TestLogging test.
llvm-svn: 201273
2014-02-12 23:46:08 +00:00
Greg Clayton fdde7ccf37 Fixed the functionalities/abbreviation/TestAbbreviations.py test case.
llvm-svn: 201270
2014-02-12 23:40:31 +00:00
Todd Fiala 027baff8a0 Change TestAbbreviations test to expected failure on Linux.
See http://llvm.org/bugs/show_bug.cgi?id=18816.
Likely the same issue as http://llvm.org/bugs/show_bug.cgi?id=18805.

llvm-svn: 201244
2014-02-12 17:50:26 +00:00
Ed Maste 197305e916 Remove decorator for llvm.org/pr17233
This test was skipped as it used to segfault on FreeBSD.  It seems
the original issue has since been fixed, so have the test run again.

llvm-svn: 201169
2014-02-11 18:55:19 +00:00
Ed Maste acbfbbb20f Remove FreeBSD decorator for llvm.org/pr17499 (no longer fails)
llvm-svn: 201168
2014-02-11 18:36:26 +00:00
Ed Maste 65edfe3ed1 Remove decorators for llvm.org/pr17920 fixed by r200646
llvm-svn: 201167
2014-02-11 18:34:26 +00:00
Ed Maste 8744d38ee8 Update decorator for FreeBSD failure pr18066
The test expects the inferior to have exited, but it is still stopped.

llvm.org/pr18066

llvm-svn: 201166
2014-02-11 18:28:18 +00:00
Ed Maste 3fb0a9cc6f Add decorator for llvm.org/pr18805 until root cause is identified
llvm-svn: 201153
2014-02-11 13:50:45 +00:00
Sean Callanan c5c3a3c92c Added a test case for variables in registers, with
clang -O1.

<rdar://problem/15767528>

llvm-svn: 201005
2014-02-07 23:04:57 +00:00
Sean Callanan d6be7085c2 Removed spurious lookup of the $__lldb_expr
selector when compiling an expression in an
Objective-C context.

<rdar://problem/15797390>

llvm-svn: 200950
2014-02-06 22:24:11 +00:00
Ed Maste cc8068f2ac Remove failure decorators for FreeBSD bug
The issue described in llvm.org/pr18065 is actually due to FreeBSD bug
theads/186309 [1], which is now fixed in FreeBSD SVN r261354 [2] and will
be merged to release branches shortly.

Diagnosed and fixed by John Wolfe.

[1] http://www.freebsd.org/cgi/query-pr.cgi?pr=186309
[2] http://svnweb.freebsd.org/base?view=revision&revision=261354

llvm-svn: 200648
2014-02-02 19:29:50 +00:00
Ed Maste dbd5950b63 Use libc++ on FreeBSD as on Darwin
This could use some refinement still, but the previous behaviour of adding
-stdlib=libstc++ on FreeBSD w/ Clang is the least likely case to work.

llvm.org/pr17910

llvm-svn: 200646
2014-02-02 19:24:15 +00:00
Todd Fiala 31cb474e2d Fix for failure to unwind Linux stack frames with call in final position.
Fixes http://llvm.org/bugs/show_bug.cgi?id=18656.

Note this exposes a failure on Linux of
TestInferiorAssert.test_inferior_asserting_disassemble, similar to how
it fails on FreeBSD. I'll file a bug for this next. We're now getting
another frame beyond where we used to prior to this fix, so the fix is
exposing failures in previosly not-reachable frames.

Much thanks to Jason Molenda, who had much to do with helping figure
out where unwinding was breaking.

llvm-svn: 200600
2014-02-01 00:48:34 +00:00
Todd Fiala 3452df6723 Fixed b18655: cleaned up script interpreter file reference handling.
This change addresses shutdown crashes in the python lldb module when
the script interpreter was hanging on to saved file references after
leaving a session.  It also gets rid of extra references to the
stdin/stdout/stderr python file objects that are created when entering
the session.

This change also moves the bundled pyexpect 2.4 library to the front
of the python library path so that a python distribution default
pyexpect (2.3 in Ubuntu 12.04) is not picked up first.

llvm-svn: 200486
2014-01-30 20:19:22 +00:00
Greg Clayton 44d937820b Merging the iohandler branch back into main.
The many many benefits include:
1 - Input/Output/Error streams are now handled as real streams not a push style input
2 - auto completion in python embedded interpreter
3 - multi-line input for "script" and "expression" commands now allow you to edit previous/next lines using up and down arrow keys and this makes multi-line input actually a viable thing to use
4 - it is now possible to use curses to drive LLDB (please try the "gui" command)

We will need to deal with and fix any buildbot failures and tests and arise now that input/output and error are correctly hooked up in all cases.

llvm-svn: 200263
2014-01-27 23:43:24 +00:00
Enrico Granata 5000ee16f6 <rdar://problem/15776874>
ValueObjectPrinter could enter an infinite loop while trying to display an aptly formed ValueObject: a reference, with a child of some pointer type, such that the pointees chain ended up pointing back to some part of itself - a pointer to itself being the simplest such case

Fixed here by only setting a pointer depth when needed, and ensuring that we won't overflow and wrap the pointer depth when it's zero.

llvm-svn: 200247
2014-01-27 21:31:26 +00:00
Greg Clayton bc8911807c Fixed a test suite exception that was cause by bad python (sys.unlink instead of os.unlink).
llvm-svn: 199952
2014-01-23 22:53:05 +00:00
Enrico Granata 90890bba04 If a user specifies a format option to frame variable or expression, that format should prevail over whatever format(s) a summary specifies
(see test case for an example)

llvm-svn: 199857
2014-01-23 01:21:18 +00:00
Ed Maste e108405aaf Relax alias test for failing command
The alias test "exprf x 1234" expands to "expr -f x 1234" and is
expected to fail: it ends up trying to evaluate the invalid expression

    void
    $__lldb_expr(void *$__lldb_arg)
    {
        -f x 1234;
    }

On FreeBSD LLDB ends up finding a static function f() in a math library,
and thus the error produced does not include "use of undeclared
identifier 'f'".

We will report failure to parse the expression in any case, so require
only that error message.

llvm-svn: 199623
2014-01-20 03:45:47 +00:00
Ed Maste c5efc526c8 Remove decorators for now-fixed pr18191
llvm-svn: 199557
2014-01-18 17:03:41 +00:00
Ed Maste f170add239 Add decorator for failing FreeBSD test
llvm-svn: 199551
2014-01-18 16:23:30 +00:00
Ed Maste c787822545 Add decorator for FreeBSD test failure pr18522
llvm-svn: 199550
2014-01-18 14:29:57 +00:00
Ed Maste e8b2ef56e1 Handle LLDB_LIB_DIR on FreeBSD as on Linux
Diagnosed and tested by Mike Ma.
http://llvm.org/pr18191

llvm-svn: 199549
2014-01-18 14:22:28 +00:00
Ed Maste cbcf8ac51a Undo r199448, already implemented in r199426
llvm-svn: 199449
2014-01-17 00:53:01 +00:00
Ed Maste 1318b854a4 Link thread-specific breakpoint test against libpthread
llvm-svn: 199448
2014-01-17 00:48:11 +00:00
Todd Fiala a475693947 Fix bug in Linux remote dynamic loader setup and fix test.
Part 1 changes PlatformLinux::CreateInstance to always create with
is_host=false; that method is only used as the plug-in creator method
associated with the remote-linux platform plugin, and should therefore
always be remote.

Part 1 patch by Steve Pucci.

Part 2: fix a test break on linux.

In test/functionalities/thread/thread_specific_break, when using gcc,
either C99 mode would need to be enabled, or the code would need to
change.  I changed a couple loop variable definitions to conform
to pre-C99 to simplify testing the fix.  The second issue was
the necessity to include -lpthread as a linker option in the Makefile.

Any issues with that part are due to me (Todd Fiala).

llvm-svn: 199426
2014-01-16 21:22:11 +00:00
Jim Ingham 39fdae7f6a Fix a bug where if we stop but nobody says there was a reason for the stop, we would return
control to the user anyway.  This was put in to handle monitors that would say there was no
stop reason when you first attached to them.  But it broke the case where you hit a thread specific
breakpoint on many threads, but NOT the one specified in the breakpoint.  I work around this
by only doing the junky override when the StopID is 0 - i.e. on first attach.

This commit also adds a test for thread specific breakpoints.

llvm-svn: 199290
2014-01-15 03:32:42 +00:00
Jim Ingham 4746a90d66 Change the name of the test class for this test (was copy/paste value...)
llvm-svn: 199251
2014-01-14 19:48:23 +00:00
Jim Ingham 0f7e294d65 Remove a compilation warning in the test case main.c file.
llvm-svn: 199243
2014-01-14 18:46:15 +00:00
Jim Ingham fc4a4e4e51 This is a macosx specific test case for stepping & setting breakpoints on indirect
and re-exported symbols.  I don't know if Linux has the latter, if it does, we could
probably make this a generic test.  Somebody who knows how to make these gadgets on 
Linux can maybe take a look...

llvm-svn: 199134
2014-01-13 20:44:26 +00:00
Greg Clayton fd6e4b91b7 Make sure to cleanup the "dwarf-lookups.txt" log file.
llvm-svn: 198984
2014-01-11 00:54:56 +00:00
Greg Clayton c26e63e986 We are doing spurious name lookups when running expressions in objective C methods.
<rdar://problem/15797390>

This new test case will detect this and make sure we don't regress on global name lookups that search all DWARF for everything when we don't need to.

llvm-svn: 198982
2014-01-11 00:29:50 +00:00
Greg Clayton 9485dcfb1a Fixed the assertion test case.
llvm-svn: 198962
2014-01-10 22:22:44 +00:00
Greg Clayton 14aa26bbb5 Fixed the connect remote test.
llvm-svn: 198961
2014-01-10 22:21:12 +00:00
Enrico Granata 29726a94ce Alignment fix
llvm-svn: 198731
2014-01-08 03:14:18 +00:00
Enrico Granata 30f287fde5 Add a new way to bind a format to a type: by enum type
The "type format add" command gets a new flag --type (-t). If you pass -t <sometype>, upon fetching the value for an object of your type,
LLDB will display it as-if it was of enumeration type <sometype>
This is useful in cases of non-contiguous enums where there are empty gaps of unspecified values, and as such one cannot type their variables as the enum type,
but users would still like to see them as-if they were of the enum type (e.g. DWARF field types with their user-reserved ranges)

The SB API has also been improved to handle both types of formats, and a test case is added

llvm-svn: 198105
2013-12-28 08:44:02 +00:00
Ed Maste 4d31d5499f Add decorator for GDB connect test failing on FreeBSD
llvm.org/pr18313

llvm-svn: 197910
2013-12-23 15:22:07 +00:00
Greg Clayton c694751a06 Correctly set the working directory when launching processes for both local and remote targets.
llvm-svn: 197266
2013-12-13 19:18:59 +00:00
Greg Clayton d3b16b3c03 Fixed the size of the malloc buffer to match the size of the string that is memcpy'ed so we don't crash in a fiery ball of death when running the test suite on darwin.
llvm-svn: 197200
2013-12-13 02:02:44 +00:00
Ed Maste ccc2ebcc83 test: Skip failure on FreeBSD from test infrastructure issue
test_convenience_registers_16bit_with_process_attach fails due to
pr18200.  The test has a @expectedFailureFreeBSD decorator, but it
appears this does not catch a RuntimError exception raised in the test
infrastructure, so the test still reports failure.  For now just skip
it.

llvm-svn: 197174
2013-12-12 20:26:08 +00:00
Enrico Granata 601ec50ac9 Actually initialize the magic pointer to NULL safely
llvm-svn: 197107
2013-12-12 01:47:35 +00:00
Enrico Granata 739050236e Having binary files in a repository is not a good thing
With this checkin, we use the installed clang compiler to build crashinfo.so from crashinfo.c upon every test suite execution
We also try to cleanup after ourselves, which of course will only work if the test suite does not actually crash

llvm-svn: 197106
2013-12-12 01:42:17 +00:00
Enrico Granata 2c3f140551 <rdar://problem/15640353>
Add an hook for the test suite into the OSX-only CrashReporter "App-specific info"

This allows the test suite to set the crash info to the name and file location of every test as the test gets executed
If the test suite crashes, the crash log will then report which test is the culprit, even when not using verbose mode

This only works on OSX, and defaults to not doing anything on other platforms, but OS/platform-specific invocations
can be devised by each individual platform

llvm-svn: 197095
2013-12-12 00:02:05 +00:00
Greg Clayton 7cff313335 Make this test an expected fail on darwin until we can fix this bug.
llvm-svn: 197087
2013-12-11 23:08:25 +00:00
Greg Clayton 4570d3eba0 Massive test suite cleanup to stop everyone from manually having to compute "mydir" inside each test case.
This has led to many test suite failures because of copy and paste where new test cases were based off of other test cases and the "mydir" variable wasn't updated.

Now you can call your superclasses "compute_mydir()" function with "__file__" as the sole argument and the relative path will be computed for you. 

llvm-svn: 196985
2013-12-10 23:19:29 +00:00
Ed Maste 8f46ed79bd test: Skip register test hanging on FreeBSD buildbot
llvm-svn: 196941
2013-12-10 18:35:19 +00:00
Ed Maste 0508125cd4 test: FreeBSD calls the 64-bit x86 platform amd64
Also add decorator for an issue that this uncovered: llvm.org/pr18200

llvm-svn: 196920
2013-12-10 14:25:28 +00:00
Ed Maste 687a0c043a test: Fix match string to work with st0 or stmm0
llvm-svn: 196919
2013-12-10 14:20:50 +00:00
Ed Maste 1d981a9606 test: Update decorators for FreeBSD failures with threaded inferior support
llvm.org/pr18190
llvm.org/pr18191

llvm-svn: 196792
2013-12-09 17:27:18 +00:00
Ed Maste f369dba051 test: Add annotation for FreeBSD failures w/ threaded inferiors
llvm.org/pr17944
llvm.org/pr17946

llvm-svn: 196786
2013-12-09 15:25:37 +00:00
Ed Maste a4786e0d92 Add decorator for FreeBSD watchpoint failure
llvm.org/pr16706

llvm-svn: 196781
2013-12-09 14:24:09 +00:00
Greg Clayton 1251456028 Added two new test case decorator functions: @skipIfRemote and @skipIfRemoteDueToDeadlock.
@skipIfRemote is used to decorate test cases that don't make sense to run remotely.

@skipIfRemoteDueToDeadlock indicates these tests need to be looked at and currently deadlock the running of the test suite when run on remote systems. These issues should be fixed soon.

llvm-svn: 196543
2013-12-05 22:22:32 +00:00
Greg Clayton fd9acf6a48 Fix test to compile and run on iOS.
llvm-svn: 196313
2013-12-03 20:55:25 +00:00
Greg Clayton aec167d79e Remove print statement when successfully setting the platform's working directory.
llvm-svn: 196308
2013-12-03 19:22:45 +00:00
Greg Clayton 5fb8f79738 Fixed internal code to not link against and code from "lldb/API/*".
lldb_private::Debugger was #including some "lldb/API" header files which causes tools (lldb-platform and lldb-gdbserver) that link against the internals only (no API layer) to fail to link depending on which calls were being used.

Also fixed the current working directory so that it gets set correctly for remote test suite runs. Now the remote working directory is set to: "ARCH/TESTNUM/..." where ARCH is the current architecture name and "TESTNUM" is the current test number. 

Fixed the "lldb-platform" and "lldb-gdbserver" to not warn about mismatched visibility settings by having each have their own exports file which contains nothing. This forces all symbols to not be exported, and also quiets the linker warnings.

llvm-svn: 196141
2013-12-02 19:35:49 +00:00
Ed Maste 094e1653cb test: Decorators for pr17910
A number of tests fail to build on FreeBSD because the test build script
defaults to libstdc++ for clang.  On FreeBSD the libstdc++ is rather old
and libc++ should be used instead.

(These tests previously had an @expectedFailureFreeBSD decorator for
pr16696, the umbrella PR for the lack of threaded inferior support on
FreeBSD.  The work to add that support will be committed soon.)

llvm-svn: 196101
2013-12-02 14:26:57 +00:00
Ed Maste 0d092a446b Add decorator for FreeBSD failing test due to pr18061
The test code locks mutexes from one thread and unlocks them from a
different one, which is not valid (it's either undefined behaviour or is
required to return an error).

See http://pubs.opengroup.org/onlinepubs/9699919799/functions/pthread_mutex_lock.html

llvm-svn: 195707
2013-11-26 01:11:14 +00:00
Ed Maste a2b2465e45 test: Fix punctuation in exceptions for log env vars
The Exception text was missing a closing parenthesis, and for consistency
with other Exceptions it should not end with a period.

llvm-svn: 195659
2013-11-25 16:57:16 +00:00
Ed Maste 07b8d259dd test: Add decorator for FreeBSD watchpoint failure
Watchpoints have not yet been implemented for FreeBSD.
llvm.org/pr16706

llvm-svn: 195649
2013-11-25 15:38:26 +00:00
Greg Clayton fb90931b60 Improved platform support.
Improved the detection of a valid GDB server where we actually can connect to a socket, but then it doesn't read or write anything (which happens with some USB mux software).

Host::MakeDirectory() now can make as many intermediate directories as needed.

The testsuite now has very initial support for remote test suite running. When running on a remote platform, the setUp function for the test will make a new directory and select it as the working directory on the remote host. 

Added a common function that can be used to create the short option string for getopt_long calls.

llvm-svn: 195541
2013-11-23 01:58:15 +00:00
Greg Clayton b39751bc9f Patch from Todd Fiala for http://llvm.org/bugs/show_bug.cgi?id=17961
llvm-svn: 195500
2013-11-22 21:05:25 +00:00
Ed Maste bf9b24edc3 Disable stop-hook test on FreeBSD as on Linux
It fails on the buildbot, so skip for now to reduce the noise.

llvm.org/pr15037

llvm-svn: 195459
2013-11-22 13:54:58 +00:00
Ed Maste 53ae4b1433 Remove decorators for llvm.org/pr17225
This issue is no longer reproducible, presumably due to changes in clang.

llvm-svn: 195458
2013-11-22 13:46:43 +00:00
Ed Maste f9c2c989de Annotate test that fails on the FreeBSD buildbot
llvm.org/pr17807

llvm-svn: 195361
2013-11-21 14:23:15 +00:00
Ed Maste 21ad67b4ef test: Remove annotation for now-fixed FreeBSD issue pr15302
The failure to demangle 'anonymous namespace' on FreeBSD is fixed (twice)

- the failure in FreeBSD's in-tree __cxa_demangle has been addressed

- FreeBSD now uses the copy of the demangler built into lldb, due to other
  remaining limitations in the in-tree __cxa_demangle

llvm.org/pr15302

llvm-svn: 194855
2013-11-15 21:33:30 +00:00
Ed Maste ddb573063d Remove FreeBSD test failure annotations for llvm.org/pr17213
This was a FreeBSD kernel issue, now fixed.

llvm-svn: 194842
2013-11-15 19:15:43 +00:00
Ed Maste af12ff28a1 Remove annotations for pr17184 (now fixed)
This failure was due to a limitation in the FreeBSD kernel that has now been
addressed.  (llvm.org/pr17226 has the details.)

llvm-svn: 194731
2013-11-14 21:29:58 +00:00
Ed Maste 4ae8c9e507 Update failing FreeBSD test annotations (pr17932, pr17933)
After solving the issue in llvm.org/pr17226 these two tests still fail,
now for other reasons.

llvm-svn: 194729
2013-11-14 21:27:34 +00:00
Ed Maste 1e46620b4f Mark two FreeBSD tests failing due to llvm.org/pr15989
After solving llvm.org/pr17226 these two tests now fail for the same reason
they do on Linux.

llvm-svn: 194726
2013-11-14 20:25:29 +00:00
Jim Ingham 6fbc48bc42 This patch does a couple of things.
It completes the job of using EvaluateExpressionOptions consistently throughout
the inferior function calling mechanism in lldb begun in Greg's patch r194009. 

It removes a handful of alternate calls into the ClangUserExpression/ClangFunction/ThreadPlanCallFunction which
were there for convenience.  Using the EvaluateExpressionOptions removes the need for them.

Using that it gets the --debug option from Greg's patch to work cleanly.

It also adds another EvaluateExpressionOption to not trap exceptions when running expressions.  You shouldn't
use this option unless you KNOW your expression can't throw beyond itself.  This is:

<rdar://problem/15374885>

At present this is only available through the SB API's or python.

It fixes a bug where function calls would unset the ObjC & C++ exception breakpoints without checking whether
they were set by somebody else already.

llvm-svn: 194182
2013-11-07 00:11:47 +00:00
Greg Clayton 095eeaa025 <rdar://problem/15367122>
Fixed the test case for "test/functionalities/exec/TestExec.py" on Darwin.

The issue was breakpoints were persisting and causing problems. When we exec, we need to clear out the process and target and start fresh with nothing and let the breakpoints populate themselves again. This patch correctly clears out the breakpoints and also flushes the process so that the objects (process/thread/frame) give out valid information.

llvm-svn: 194106
2013-11-05 23:28:00 +00:00
Enrico Granata e397a94c5d <rdar://problem/15368142>
For this test case, one needs to get the name of the symbol since we don't have debug info to generate an SBFunction

llvm-svn: 193879
2013-11-01 18:48:03 +00:00
Enrico Granata e615d20041 Use 0x00... as the magic constant to write in st0. That should be reliably 0 regardless of OS/hardware
llvm-svn: 193877
2013-11-01 18:19:05 +00:00
Enrico Granata 4c379c2b8d Skip this test case pending figuring out why it fails
llvm-svn: 193844
2013-11-01 01:00:57 +00:00
Enrico Granata 03e474bcef This only fails on Darwin ; thanks Jim for pointing that out
llvm-svn: 193843
2013-11-01 00:57:53 +00:00
Enrico Granata 60bd35012a This test is expected to fail pending proper support
llvm-svn: 193831
2013-10-31 23:43:42 +00:00
Enrico Granata 3a48185f79 Thread::SetState() is not being called upon hitting the breakpoint
Given that, this test will never pass
Marking as expected failure pending a fix

llvm-svn: 193830
2013-10-31 23:36:47 +00:00
Enrico Granata 2dba1135db Fix this test to work with either st0 or stmm0
llvm-svn: 193829
2013-10-31 23:25:47 +00:00
Enrico Granata 667a911901 This test is failing because expressions involving dlopen() currently do not work
Mark it as expected to fail pending a fix

llvm-svn: 193828
2013-10-31 23:19:13 +00:00
Enrico Granata 7eeda58588 Fix this test to be consistent in whether a process will or will not be there
llvm-svn: 193827
2013-10-31 23:14:48 +00:00
Enrico Granata 7037b3f915 Another instance of the same test failing
llvm-svn: 193826
2013-10-31 23:07:41 +00:00
Enrico Granata 4510a159c2 Another instance of the same test failing
llvm-svn: 193825
2013-10-31 23:06:54 +00:00
Enrico Granata 4a2dc3b01b Mark this as an expected failure
llvm-svn: 193824
2013-10-31 23:05:35 +00:00
Enrico Granata c955ac3723 This test is currently expected to fail, mark it as such pending fixes
llvm-svn: 193822
2013-10-31 22:55:55 +00:00
Enrico Granata 0ede1094bf Workaround the DWARF info is anticipating the derived class assignment issue in this test case for now
llvm-svn: 193821
2013-10-31 22:49:31 +00:00
Andrew Kaylor 70ce6d2e62 Marking dynamic value test as expected failure on Linux.
llvm-svn: 193809
2013-10-31 22:07:11 +00:00
Andrew Kaylor 7268e6ef9d Fix dynamic value test to build correctly on Linux with C++11 features.
llvm-svn: 193793
2013-10-31 19:42:35 +00:00
Ed Maste fb15ba6879 Tls test fails on FreeBSD due to llvm.org/pr16696
(Threaded inferior debugging not yet available on FreeBSD.)

llvm-svn: 193771
2013-10-31 17:21:15 +00:00
Andrew Kaylor ba8ce0414e Removing expected failure decorator for a test that's passing.
llvm-svn: 193715
2013-10-30 21:05:36 +00:00
Enrico Granata 38c546320c <rdar://problem/15045059>
One of the things that dynamic typing affects is the count of children a type has
Clear out the flag that makes us blindly believe the children count when a dynamic type change is detected

llvm-svn: 193663
2013-10-30 00:04:29 +00:00
Enrico Granata df7c7f99ba Fixing an issue in yesterday's dynamic type changes where we would not craft a valid SBType given debug information
Added a test case to help us detect regression in this realm

llvm-svn: 193631
2013-10-29 17:42:02 +00:00
Andrew Kaylor 2c206688db Fixing TestAnonymous to build dwarf where it says it will.
llvm-svn: 193628
2013-10-29 17:09:59 +00:00
Enrico Granata dc4db5a6eb <rdar://problem/15144376>
This commit reimplements the TypeImpl class (the class that backs SBType) in terms of a static,dynamic type pair

This is useful for those cases when the dynamic type of an ObjC variable can only be obtained in terms of an "hollow" type with no ivars
In that case, we could either go with the static type (+iVar information) or with the dynamic type (+inheritance chain)

With the new TypeImpl implementation, we try to combine these two sources of information in order to extract as much information as possible
This should improve the functionality of tools that are using the SBType API to do extensive dynamic type inspection

llvm-svn: 193564
2013-10-29 00:28:35 +00:00
Jim Ingham be40554915 ValueObject and SBValue's GetChildMemberWithName should look through anonymous structs
and unions the same way that C would.

<rdar://problem/11987906>

llvm-svn: 193016
2013-10-18 23:53:55 +00:00
Enrico Granata 52b4b6cddc This is the last piece of work for "formats in categories": we now cache formats as well as summaries and synthetics
llvm-svn: 192928
2013-10-17 22:27:19 +00:00
Richard Mitton 0a55835755 Added support for reading thread-local storage variables, as defined using the __thread modifier.
To make this work this patch extends LLDB to:

- Explicitly track the link_map address for each module. This is effectively the module handle, not sure why it wasn't already being stored off anywhere. As an extension later, it would be nice if someone were to add support for printing this as part of the modules list.

- Allow reading the per-thread data pointer via ptrace. I have added support for Linux here. I'll be happy to add support for FreeBSD once this is reviewed. OS X does not appear to have __thread variables, so maybe we don't need it there. Windows support should eventually be workable along the same lines.

- Make DWARF expressions track which module they originated from.

- Add support for the DW_OP_GNU_push_tls_address DWARF opcode, as generated by gcc and recent versions of clang. Earlier versions of clang (such as 3.2, which is default on Ubuntu right now) do not generate TLS debug info correctly so can not be supported here.

- Understand the format of the pthread DTV block. This is where it gets tricky. We have three basic options here:

  1) Call "dlinfo" or "__tls_get_addr" on the inferior and ask it directly. However this won't work on core dumps, and generally speaking it's not a good idea for the debugger to call functions itself, as it has the potential to not work depending on the state of the target.

  2) Use libthread_db. This is what GDB does. However this option requires having a version of libthread_db on the host cross-compiled for each potential target. This places a large burden on the user, and would make it very hard to cross-debug from Windows to Linux, for example. Trying to build a library intended exclusively for one OS on a different one is not pleasant. GDB sidesteps the problem and asks the user to figure it out.

  3) Parse the DTV structure ourselves. On initial inspection this seems to be a bad option, as the DTV structure (the format used by the runtime to manage TLS data) is not in fact a kernel data structure, it is implemented entirely in useerland in libc. Therefore the layout of it's fields are version and OS dependent, and are not standardized.

  However, it turns out not to be such a problem. All OSes use basically the same algorithm (a per-module lookup table) as detailed in Ulrich Drepper's TLS ELF ABI document, so we can easily write code to decode it ourselves. The only question therefore is the exact field layouts required. Happily, the implementors of libpthread expose the structure of the DTV via metadata exported as symbols from the .so itself, designed exactly for this kind of thing. So this patch simply reads that metadata in, and re-implements libthread_db's algorithm itself. We thereby get cross-platform TLS lookup without either requiring third-party libraries, while still being independent of the version of libpthread being used.

Test case included.

llvm-svn: 192922
2013-10-17 21:14:00 +00:00
Richard Mitton ec8b282bde Rearranged linker flags for test suite.
Some linkers (GNU ld) are picky about library order, so if we import libraries as part of our LDFLAGS then that needs to come after any DYLIB_NAME which might require that library.

llvm-svn: 192917
2013-10-17 20:09:33 +00:00
Enrico Granata ce451cc300 <rdar://problem/15235492>
Extend DummySyntheticProvider to actually use debug-info vended children as the source of information
Make Python synthetic children either be valid, or fallback to the dummy, like their C++ counterparts

This allows LLDB to actually stop bailing out upon encountering an invalid synthetic children provider front-end, and still displaying the non synthetized ivar info

llvm-svn: 192741
2013-10-15 22:42:14 +00:00
Ed Maste 795d2b9f95 Expected FreeBSD failure due to pr 17430
llvm-svn: 192467
2013-10-11 17:24:16 +00:00
Michael Sartain 15c07b90c0 Re-enable test_convenience_registers_16bit_with_process_attach test for Linux.
Remove 32-bit POSIX register hack in ConvertBetweenRegisterKinds.

llvm-svn: 192306
2013-10-09 17:44:52 +00:00
Michael Sartain 704bf8912e Clean up RegisterContextPOSIX i386 code.
Use 32-bit register enums without gaps on 64-bit hosts.
Don't show 64-bit registers when debugging 32-bit targets.
Add psuedo gpr registers (ax, ah, al, etc.)
Add mmx registers.
Fix TestRegisters.py to not read ymm15 register on 32-bit targets.
Fill out and move gcc/dwarf/gdb register enums to RegisterContext_x86.h

llvm-svn: 192263
2013-10-09 01:28:57 +00:00
Enrico Granata 99c8f7ae79 <rdar://problem/15180638>
Making GetNumberOfDirectBaseClasses() work for ObjC pointers, and for classes for which we don't have full debug info

llvm-svn: 192255
2013-10-09 00:13:17 +00:00
Ed Maste 05f5a1d3df Mark tests failing on FreeBSD after r191996
llvm-svn: 192134
2013-10-07 21:25:48 +00:00
Ashok Thirumurthi 52fbac7d90 xfail for gcc tests due to pr17499 (regressions due to r191966).
llvm-svn: 192132
2013-10-07 21:00:29 +00:00
Enrico Granata a29cb0bada <rdar://problem/12042982>
This radar extends the notion of one-liner summaries to automagically apply in a few interesting cases

More specifically, this checkin changes the printout of ValueObjects to print on one-line (as if type summary add -c had been applied) iff:
this ValueObject does not have a summary
its children have no synthetic children
its children are not a non-empty base class without a summary
its children do not have a summary that asks for children to show up
the aggregate length of all the names of all the children is <= 50 characters
you did not ask to see the types during a printout
your pointer depth is 0

This is meant to simplify the way LLDB shows data on screen for small structs and similarly compact data types (e.g. std::pair<int,int> anyone?)

Feedback is especially welcome on how the feature feels and corner cases where we should apply this printout and don't (or viceversa, we are applying it when we shouldn't be)

llvm-svn: 191996
2013-10-04 23:14:13 +00:00
Richard Mitton 5c98c9a216 Fixed TestSettings.py to correctly restore the frame format string.
This fixes TestBreakpointCommand.

llvm-svn: 191868
2013-10-03 01:50:35 +00:00
Matt Kopec cc363a78ac Mark watchpoint test as still failing on i386 Linux.
llvm-svn: 191717
2013-10-01 00:02:41 +00:00
Matt Kopec 326bfc5a9e Enabling 32-bit tests for clang on Linux by default (ie. for the buildbot.).
llvm-svn: 191714
2013-09-30 23:33:43 +00:00
Daniel Malea f6dfe33492 Fix race condition in TestConvenienceVariables.py
- test wasn't checking for a stop reason before issuing the 'script' command
- should resolve intermittent failure on the Linux GCC buildbot

llvm-svn: 191708
2013-09-30 22:54:27 +00:00
Daniel Malea f3903a5ced Disable TestStopHookMultipleThreads.py (on Linux) due to llvm.org/pr15037
- stop hooks sometimes fail to fire on Linux

llvm-svn: 191704
2013-09-30 21:32:25 +00:00
Enrico Granata 6ca84e3758 This test uses ObjC so it should not run on anything != Darwin
llvm-svn: 191698
2013-09-30 20:55:00 +00:00
Enrico Granata eff67bc49e Test case for the previous checkin
llvm-svn: 191697
2013-09-30 20:39:21 +00:00
Enrico Granata 4d93b8cdf3 <rdar://problem/14393032>
DumpValueObject() 2.0

This checkin restores pre-Xcode5 functionality to the "po" (expr -O) command:
- expr now has a new --description-verbosity (-v) argument, which takes either compact or full as a value (-v is the same as -vfull)
 When the full mode is on, "po" will show the extended output with type name, persistent variable name and value, as in
(lldb) expr -O -v -- foo
(id) $0 = 0x000000010010baf0 {
    1 = 2;
    2 = 3;
}

 When -v is omitted, or -vcompact is passed, the Xcode5-style output will be shown, as in
(lldb) expr -O -- foo
{
    1 = 2;
    2 = 3;
}

- for a non-ObjectiveC object, LLDB will still try to retrieve a summary and/or value to display
(lldb) po 5
5
-v also works in this mode
(lldb) expr -O -vfull -- 5
(int) $4 = 5 

On top of that, this is a major refactoring of the ValueObject printing code. The functionality is now factored into a ValueObjectPrinter class for easier maintenance in the future
DumpValueObject() was turned into an instance method ValueObject::Dump() which simply calls through to the printer code, Dump_Impl has been removed

Test case to follow

llvm-svn: 191694
2013-09-30 19:11:51 +00:00
Matt Kopec ee969f9f27 Mark 32/64-bit tests as expected fail after root causing and referencing bugzilla.
Fix TestFrames.py error to check against a None pc value.

llvm-svn: 191470
2013-09-26 23:30:59 +00:00
Matt Kopec cc64cc1773 Fix the thread jump test case for 32-bit inferiors. A jump was going back to a function call using a source line number. However, the parameters being passed to the function were setup before the instruction we jumped to. In other words, the source line was associated with assembly after the function parameters had been setup for the function to be called.
llvm-svn: 191457
2013-09-26 20:54:17 +00:00
Ashok Thirumurthi 8b5773053b Fix the partial backtrace in a recursive inferior compiled with -fomit-frame-pointer.
- Removes the block in UnwindLLDB::AddOneMoreFrame that tests for a bad stack setup,
since it is neither correct (tests the FP GPR), complete (doesn't consider multi-frame
cycles), nor reachable (the construction of RegisterContextLLDB will fail in the case 
where either of the two (why just two?) previous frames have the same canonical frame
address as the frame that we propose adding to the stack).

llvm-svn: 191430
2013-09-26 14:35:59 +00:00
Richard Mitton 0d40120615 Changed fuzz tests to not print their values (we only need to test if access to them does not crash).
This fixes the 'No value' string appearing in the dotest results.

llvm-svn: 191399
2013-09-25 20:48:03 +00:00
Richard Mitton d36c8d23a5 Added a simple legend to the unit test 'dots' output, to aid understandability.
llvm-svn: 191398
2013-09-25 20:47:51 +00:00
Daniel Malea 46a72bb3bf Enable tests affected by llvm.org/pr14637
- to verify that r191392 has the desired effect

llvm-svn: 191396
2013-09-25 19:43:18 +00:00
Matt Kopec 7663b3a9d0 Add support for TestPluginComands on Linux. Also, rework makefile dsym target.
llvm-svn: 191383
2013-09-25 17:44:00 +00:00