[Bug 241137] Base lldb 9 crashes compared to devel/llvm90

bugzilla-noreply at freebsd.org bugzilla-noreply at freebsd.org
Thu Oct 10 20:34:24 UTC 2019


https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=241137

--- Comment #3 from commit-hook at freebsd.org ---
A commit references this bug:

Author: dim
Date: Thu Oct 10 20:33:56 UTC 2019
New revision: 353416
URL: https://svnweb.freebsd.org/changeset/base/353416

Log:
  Pull in r374444 from upstream lldb trunk (by me):

    Fix process launch failure on FreeBSD after r365761

    Summary:
    After rLLDB365761, and with `LLVM_ENABLE_ABI_BREAKING_CHECKS`
    enabled, launching any process on FreeBSD crashes lldb with:

    ```
    Expected<T> must be checked before access or destruction.
    Expected<T> value was in success state. (Note: Expected<T> values in
    success mode must still be checked prior to being destroyed).
    ```

    This is because `m_operation_thread` and `m_monitor_thread` were
    wrapped in `llvm::Expected<>`, but this requires the objects to be
    correctly initialized before accessing them.

    To fix the crashes, use `llvm::Optional<>` for the members (as
    indicated by labath), and use local variables to store the return
    values of `LaunchThread` and `StartMonitoringChildProcess`.  Then,
    only assign to the member variables after checking if the return
    values indicated success.

    Reviewers: devnexen, emaste, MaskRay, mgorny

    Reviewed By: devnexen

    Subscribers: jfb, labath, krytarowski, lldb-commits

    Differential Revision: https://reviews.llvm.org/D68723

  PR:           241137
  MFC after:    1 month
  X-MFC-With:   r353358

Changes:
 
head/contrib/llvm/tools/lldb/source/Plugins/Process/FreeBSD/ProcessMonitor.cpp
  head/contrib/llvm/tools/lldb/source/Plugins/Process/FreeBSD/ProcessMonitor.h

-- 
You are receiving this mail because:
You are the assignee for the bug.


More information about the freebsd-toolchain mailing list