/[base]
ViewVC logotype

Revision 353416


Jump to revision: Previous Next
Author: dim
Date: Thu Oct 10 20:33:55 2019 UTC (4 years, 8 months ago)
Changed paths: 2
Log Message:
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


Changed paths

Path Details
Directoryhead/contrib/llvm/tools/lldb/source/Plugins/Process/FreeBSD/ProcessMonitor.cpp modified , text changed
Directoryhead/contrib/llvm/tools/lldb/source/Plugins/Process/FreeBSD/ProcessMonitor.h modified , text changed

  ViewVC Help
Powered by ViewVC 1.1.27