aboutsummaryrefslogtreecommitdiff
path: root/lldb/packages/Python/lldbsuite/test/gdbclientutils.py
diff options
context:
space:
mode:
authorLang Hames <lhames@gmail.com>2024-12-02 11:35:46 +1100
committerLang Hames <lhames@gmail.com>2024-12-02 13:17:19 +1100
commit427fb5cc5ac34414c4682c90d3db0c63c5a1b227 (patch)
tree5b2d5fbbbfeab5571758f3d2f9e6fb43ced00e8d /lldb/packages/Python/lldbsuite/test/gdbclientutils.py
parenta4c3683b665c6ac875b4821f5c6a881fdf5fef70 (diff)
downloadllvm-427fb5cc5ac34414c4682c90d3db0c63c5a1b227.zip
llvm-427fb5cc5ac34414c4682c90d3db0c63c5a1b227.tar.gz
llvm-427fb5cc5ac34414c4682c90d3db0c63c5a1b227.tar.bz2
[ORC] Track all dependencies on symbols that aren't Ready yet.
AsynchronousSymbolQuery tracks the symbols that it depends on in order to (1) detach the query in the event of a failure, and (2) report those dependencies to clients of the ExecutionSession::lookup method (via the RegisterDependencies argument). Previously we tracked only dependencies on symbols that didn't meet the required state (the only symbols that the query needs to be attached to), but this is insufficient to report all necessary dependencies to lookup clients. E.g. A lookup requiring SymbolState::Resolved where some matched symbol is already Resolved but not yet Emitted or Ready would result in the dependency on that symbol not being reported, which could result in illegal access in concurrent JIT setups. (This bug was discovered by @mikaoP on discord with a simple concurrent JIT setup). This patch tracks and reports all dependencies on symbols that aren't Ready yet, correcting the under-reporting issue. AsynchronousSymbolQuery::detach is updated to stop asserting that all depended-upon symbols have a query attached.
Diffstat (limited to 'lldb/packages/Python/lldbsuite/test/gdbclientutils.py')
0 files changed, 0 insertions, 0 deletions