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
This commit is contained in:
Jason Molenda 2018-06-11 21:36:40 +00:00
parent c710f5d40a
commit 808490138b
2 changed files with 14 additions and 11 deletions

View File

@ -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()) {

View File

@ -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 =