This change implements the last major piece of functionality missing
from the FreeBSD x86 LLDB port, and presents a good opportunity to
describe the current state of the port. Overall we're not far from
parity with the Linux port. Details can be found on our wiki, at
https://wiki.freebsd.org/lldb
The FreeBSD buildbot has been green since November 22 (LLDB head,
without the threaded patch). It had previously been failing due to
one test (documented in llvm.org/pr15037) which is disabled also on
Linux. The FreeBSD base system currently includes a snapshot of LLDB
at r194122 and will be updated once the threaded inferior patch is
committed.
With the change in D2267 the threaded tests pass on FreeBSD, with the
following exceptions in individual tests:
* llvm.org/pr17944 (TestThreadAPI)
Appears to be due to an implementation detail of our malloc().
* llvm.org/pr17946 (TestExprDoesntBlock)
Not triaged, but test is disabled on Linux due to llvm.org/pr15258
* llvm.org/pr18061 (TestNumThreads)
This is a bug in the test; it relies on undefined pthread mutex behaviour.
* llvm.org/pr18065 (TestConcurrentEvents)
We end up with a second stop with stop reason = signal for the
threaded inferior.
* llvm.org/pr18066 (TestThreadStepOut)
The inferior stops again with stop reason = trace, instead of exiting.
Overall there is one other PR for unimplemented functionality
(pr16706): debug register integration for watchpoints still needs to
be done. There is one PR for an intermittent issue where symbol
addresses end up with an offset after a stop (pr17880). It's not
clear to me what is happening here yet.
Beyond that there are a handful of individual failing tests and a
couple of enhancement requests in the bug database.