summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJason Molenda <jmolenda@apple.com>2018-06-11 21:36:40 +0000
committerJason Molenda <jmolenda@apple.com>2018-06-11 21:36:40 +0000
commit808490138b8011bffb8ad327bf7e484062885d35 (patch)
tree36bc0b0229e72e54d12dd2ada817a2a836964def
parentc710f5d40ae5f0274f6cbf13837b5b4783ee48ad (diff)
downloadbcm5719-llvm-808490138b8011bffb8ad327bf7e484062885d35.tar.gz
bcm5719-llvm-808490138b8011bffb8ad327bf7e484062885d35.zip
Document how lldb uses the DBGSourcePathRemapping
source path remapping src/dest path pairs with respect to the DBGVersion number in the plist. llvm-svn: 334442
-rw-r--r--lldb/source/Host/macosx/Symbols.cpp9
-rw-r--r--lldb/source/Plugins/SymbolVendor/MacOSX/SymbolVendorMacOSX.cpp16
2 files changed, 14 insertions, 11 deletions
diff --git a/lldb/source/Host/macosx/Symbols.cpp b/lldb/source/Host/macosx/Symbols.cpp
index 7127c5cd334..01f2714fe59 100644
--- a/lldb/source/Host/macosx/Symbols.cpp
+++ b/lldb/source/Host/macosx/Symbols.cpp
@@ -340,8 +340,13 @@ static bool GetModuleSpecInfoFromUUIDDictionary(CFDictionaryRef uuid_dict,
std::string DBGBuildSourcePath;
std::string DBGSourcePath;
- // If DBGVersion value 2 or higher, look for DBGSourcePathRemapping
- // dictionary and append the key-value pairs to our remappings.
+ // If DBGVersion 1 or DBGVersion missing, ignore DBGSourcePathRemapping.
+ // If DBGVersion 2, strip last two components of path remappings from
+ // entries to fix an issue with a specific set of
+ // DBGSourcePathRemapping entries that lldb worked
+ // with.
+ // If DBGVersion 3, trust & use the source path remappings as-is.
+ //
cf_dict = (CFDictionaryRef)CFDictionaryGetValue(
(CFDictionaryRef)uuid_dict, CFSTR("DBGSourcePathRemapping"));
if (cf_dict && CFGetTypeID(cf_dict) == CFDictionaryGetTypeID()) {
diff --git a/lldb/source/Plugins/SymbolVendor/MacOSX/SymbolVendorMacOSX.cpp b/lldb/source/Plugins/SymbolVendor/MacOSX/SymbolVendorMacOSX.cpp
index ec8516b39f6..c69eb7fd51c 100644
--- a/lldb/source/Plugins/SymbolVendor/MacOSX/SymbolVendorMacOSX.cpp
+++ b/lldb/source/Plugins/SymbolVendor/MacOSX/SymbolVendorMacOSX.cpp
@@ -192,16 +192,14 @@ SymbolVendorMacOSX::CreateInstance(const lldb::ModuleSP &module_sp,
->GetValueForKey("DBGSourcePathRemapping")
->GetAsDictionary()) {
- // In an early version of DBGSourcePathRemapping, the
- // DBGSourcePath values were incorrect. If we have a
- // newer style DBGSourcePathRemapping, there will be a
- // DBGVersion key in the plist with version 2 or
- // higher.
+ // If DBGVersion 1 or DBGVersion missing, ignore DBGSourcePathRemapping.
+ // If DBGVersion 2, strip last two components of path remappings from
+ // entries to fix an issue with a specific set of
+ // DBGSourcePathRemapping entries that lldb worked
+ // with.
+ // If DBGVersion 3, trust & use the source path remappings as-is.
//
- // If this is an old style DBGSourcePathRemapping,
- // ignore the value half of the key-value remappings
- // and use reuse the original gloal DBGSourcePath
- // string.
+
bool new_style_source_remapping_dictionary = false;
bool do_truncate_remapping_names = false;
std::string original_DBGSourcePath_value =
OpenPOWER on IntegriCloud