[Lldb-commits] [PATCH] D115951: Cache the manual DWARF index out to the LLDB cache directory when the LLDB index cache is enabled.
Greg Clayton via Phabricator via lldb-commits
lldb-commits at lists.llvm.org
Fri Dec 17 10:18:25 PST 2021
clayborg created this revision.
clayborg added reviewers: labath, wallace, aadsm, jingham, JDevlieghere.
Herald added subscribers: arphaman, mgorny.
clayborg requested review of this revision.
Herald added a reviewer: jdoerfert.
Herald added subscribers: lldb-commits, sstefan1.
Herald added a project: LLDB.
This patch add the ability to cache the manual DWARF indexing results to disk for faster subsequent debug sessions. Manual DWARF indexing is time consuming and causes all DWARF to be fully parsed and indexed each time you debug a binary that doesn't have an acceptable accelerator table. Acceptable accelerator tables include .debug_names in DWARF5 or Apple accelerator tables.
This patch breaks up testing by testing all of the encoding and decoding of required C++ objects in a gtest unit test, and then has a test to verify the debug info cache is generated correctly.
This patch also adds the ability to track when a symbol table or DWARF index is loaded or saved to the cache in the "statistics dump" command. This is essential to know in statistics as it can help explain why a debug session was slower or faster than expected.
Repository:
rG LLVM Github Monorepo
https://reviews.llvm.org/D115951
Files:
lldb/include/lldb/Symbol/SymbolFile.h
lldb/include/lldb/Symbol/Symtab.h
lldb/include/lldb/Target/Statistics.h
lldb/source/Plugins/SymbolFile/DWARF/DIERef.cpp
lldb/source/Plugins/SymbolFile/DWARF/DIERef.h
lldb/source/Plugins/SymbolFile/DWARF/ManualDWARFIndex.cpp
lldb/source/Plugins/SymbolFile/DWARF/ManualDWARFIndex.h
lldb/source/Plugins/SymbolFile/DWARF/NameToDIE.cpp
lldb/source/Plugins/SymbolFile/DWARF/NameToDIE.h
lldb/source/Symbol/Symtab.cpp
lldb/source/Target/Statistics.cpp
lldb/test/API/commands/statistics/basic/TestStats.py
lldb/test/API/functionalities/module_cache/debug_index/TestDebugIndexCache.py
lldb/test/API/functionalities/module_cache/debug_index/exe.yaml
lldb/test/API/functionalities/module_cache/simple_exe/TestModuleCacheSimple.py
lldb/unittests/SymbolFile/DWARF/CMakeLists.txt
lldb/unittests/SymbolFile/DWARF/DWARFIndexCachingTest.cpp
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D115951.395159.patch
Type: text/x-patch
Size: 81642 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/lldb-commits/attachments/20211217/3c1942a9/attachment-0001.bin>
More information about the lldb-commits
mailing list