commit | 84556f946ecc28ee9b7bf3d2f8da5413dcdcf8e4 | [log] [tgz] |
---|---|---|
author | Brett Wilson <brettw@fuchsia.infra.roller.google.com> | Sat Feb 03 02:36:11 2024 +0000 |
committer | Copybara-Service <copybara-worker@google.com> | Fri Feb 02 18:37:37 2024 -0800 |
tree | 2d24950dcd9028bd2acb226e604cb60343877fa8 | |
parent | 266cc098d2f3cbdc4a7e1a49e774598de3368e6c [diff] |
[roll] Roll fuchsia [debugger] Look up addresses in DWO files. Implement DwarfUnitImpl::FunctionDieOffsetForRelativeAddress for symbols stored in .dwo files. Previously this code used LLVM address -> DIE lookup "getSubroutineForAddress" but this doesn't work for our Debug Fission (.dwo file) implementation because the address generation requires looking across DWARF binaries which LLVM doesn't know about. This re-implementes FunctionDieOffsetForRelativeAddress using our own code. It lazily constructs an address->DIE mapping for the unit the first time this is needed. This new mapping is used for all lookups, not just for DWO files. Implements ModuleSymbolsImpl lookup in the correct unit for the address. This implementation still does not provide correct symbols for DWO files. The current issue is how FunctionDieOffsetForRelativeAddress is used. Most uses end up constructing a symbol using the result of this call using the main SymbolFactory, while to make this work properly, it needs to use the DWO-specific symbol factory. The solution is to make FunctionDieOffsetForRelativeAddress return a LazySymbol instead which is unambiguous and cleaner from a caller perspective, which in turn requires some nontrivial updates to the callers, especially line lookup. Original-Reviewed-on: https://fuchsia-review.googlesource.com/c/fuchsia/+/965063 Original-Revision: f93377a4a065dbc596cfbfaef89a4db174c9bdce GitOrigin-RevId: d3e913974b4dc57d33633d4661996b1012a587db Change-Id: I44582fe5c187cebe7907f137e86df0f7a4ff070a
This repository contains Fuchsia's Global Integration manifest files.
All changes should be made to the internal version of this repository. Our infrastructure automatically updates this version when the internal one changes.
Currently all changes must be made by a Google employee. Non-Google employees wishing to make a change can ask for assistance via the IRC channel #fuchsia
on Freenode.
First install Jiri.
Next run:
$ jiri init $ jiri import minimal https://fuchsia.googlesource.com/integration $ jiri update
Third party projects should have their own subdirectory in ./third_party
.