mirror of
https://github.com/intel/llvm.git
synced 2026-01-14 03:50:17 +08:00
Fixed an issue where we were resolving paths when we should have been.
So the issue here was that we have lldb_private::FileSpec that by default was always resolving a path when using the: FileSpec::FileSpec (const char *path); and in the: void FileSpec::SetFile(const char *pathname, bool resolve = true); This isn't what we want in many many cases. One example is you have "/tmp" on your file system which is really "/private/tmp". You compile code in that directory and end up with debug info that mentions "/tmp/file.c". Then you type: (lldb) breakpoint set --file file.c --line 5 If your current working directory is "/tmp", then "file.c" would be turned into "/private/tmp/file.c" which won't match anything in the debug info. Also, it should have been just a FileSpec with no directory and a filename of "file.c" which could (and should) potentially match any instances of "file.c" in the debug info. So I removed the constructor that just takes a path: FileSpec::FileSpec (const char *path); // REMOVED You must now use the other constructor that has a "bool resolve" parameter that you must always supply: FileSpec::FileSpec (const char *path, bool resolve); I also removed the default parameter to SetFile(): void FileSpec::SetFile(const char *pathname, bool resolve); And fixed all of the code to use the right settings. llvm-svn: 116944
This commit is contained in:
@@ -405,9 +405,16 @@ ModuleList::ResolveSymbolContextForAddress (const Address& so_addr, uint32_t res
|
||||
}
|
||||
|
||||
uint32_t
|
||||
ModuleList::ResolveSymbolContextForFilePath (const char *file_path, uint32_t line, bool check_inlines, uint32_t resolve_scope, SymbolContextList& sc_list)
|
||||
ModuleList::ResolveSymbolContextForFilePath
|
||||
(
|
||||
const char *file_path,
|
||||
uint32_t line,
|
||||
bool check_inlines,
|
||||
uint32_t resolve_scope,
|
||||
SymbolContextList& sc_list
|
||||
)
|
||||
{
|
||||
FileSpec file_spec(file_path);
|
||||
FileSpec file_spec(file_path, false);
|
||||
return ResolveSymbolContextsForFileSpec (file_spec, line, check_inlines, resolve_scope, sc_list);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user