hanchenye-llvm-project/lldb
Aaron Smith a642f8f343 PDB support of function-level linking and splitted functions
Summary:
The patch adds support of splitted functions (when MSVC is used with PGO) and function-level linking feature.

SymbolFilePDB::ParseCompileUnitLineTable function relies on fact that ranges of compiled source files in the binary are continuous and don't intersect each other. The function creates LineSequence for each file and inserts it into LineTable, and implementation of last one relies on continuity of the sequence. But it's not always true when function-level linking enabled, e.g. in added input test file test-pdb-function-level-linking.exe there is xstring's std__basic_string_char_std__char_traits_char__std__allocator_char_____max_size (.00454820) between test-pdb-function-level-linking.cpp's foo (.00454770) and main (.004548F0).

To fix the problem this patch renews the sequence on each address gap.

Reviewers: asmith, zturner

Reviewed By: asmith

Subscribers: mgorny, lldb-commits

Differential Revision: https://reviews.llvm.org/D47708

llvm-svn: 334030
2018-06-05 17:19:21 +00:00
..
cmake Fix typo in CMake comments 2018-05-25 18:59:21 +00:00
docs Enable AUTOBRIEF in doxygen configuration. 2018-05-02 16:55:16 +00:00
examples Added a BSD archive tool. 2018-04-02 17:20:21 +00:00
include/lldb Remove dependency from Host to clang. 2018-06-04 17:41:00 +00:00
lit [lit, pdb] Fix func-symbols.test (on Windows) 2018-06-05 16:20:36 +00:00
lldb.xcodeproj Add ClangHost.cpp to the Xcode project. 2018-06-05 00:19:03 +00:00
lldb.xcworkspace Fix a typo in the gtest build target for Debug configuration. 2018-04-10 17:49:56 +00:00
packages/Python/lldbsuite dotest: make inline tests compatible with -f 2018-06-05 10:58:44 +00:00
resources
scripts Change SWIG output directory when building LLDB.framework with CMake 2018-06-04 23:47:36 +00:00
source PDB support of function-level linking and splitted functions 2018-06-05 17:19:21 +00:00
test [test] Fix --framework argument passed to dotest. 2018-05-29 12:30:27 +00:00
third_party/Python/module
tools [IRMemoryMap] Use labels in the "malloc" and "free" lldb-test commands 2018-06-04 17:11:15 +00:00
unittests PDB support of function-level linking and splitted functions 2018-06-05 17:19:21 +00:00
utils [CMake] Unify and relayer testing 2018-05-03 16:54:10 +00:00
www Typo fixes. 2018-05-29 09:10:46 +00:00
.arcconfig
.clang-format
.gitignore [dotest] Remove crashinfo hook 2018-01-10 10:18:47 +00:00
CMakeLists.txt Change SWIG output directory when building LLDB.framework with CMake 2018-06-04 23:47:36 +00:00
CODE_OWNERS.txt Remove Sean Callanan from the CODE_OWNERS, he won't have time 2017-11-01 01:38:42 +00:00
INSTALL.txt Changed builld-llvm.py to use .json files 2017-02-23 02:21:34 +00:00
LICENSE.TXT
use_lldb_suite_root.py