Summary: | Base lldb 9 crashes compared to devel/llvm90 | ||
---|---|---|---|
Product: | Base System | Reporter: | Jan Beich <jbeich> |
Component: | bin | Assignee: | freebsd-toolchain (Nobody) <toolchain> |
Status: | Closed FIXED | ||
Severity: | Affects Only Me | CC: | dim, emaste |
Priority: | --- | ||
Version: | CURRENT | ||
Hardware: | Any | ||
OS: | Any | ||
URL: | https://reviews.llvm.org/D68723 |
Description
Jan Beich
2019-10-08 20:18:24 UTC
A commit references this bug: Author: dim Date: Wed Oct 9 19:51:42 UTC 2019 New revision: 353363 URL: https://svnweb.freebsd.org/changeset/base/353363 Log: Put in a band-aid fix for lldb 9 exiting with "Expected<T> must be checked before access or destruction" when launching executables, while we sort this out with upstream. Reported by: jbeich 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 A commit references this bug: Author: dim Date: Thu Oct 10 20:30:55 UTC 2019 New revision: 353415 URL: https://svnweb.freebsd.org/changeset/base/353415 Log: Revert r353363 in preparation for applying upstream fix: Put in a band-aid fix for lldb 9 exiting with "Expected<T> must be checked before access or destruction" when launching executables, while we sort this out with upstream. 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 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 I think this is resolved now? |