From 274060b6f110c6023fc63e4803d120949750867f Mon Sep 17 00:00:00 2001 From: Greg Clayton Date: Wed, 20 Oct 2010 20:54:39 +0000 Subject: 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 --- lldb/source/Commands/CommandObjectImage.cpp | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) (limited to 'lldb/source/Commands/CommandObjectImage.cpp') diff --git a/lldb/source/Commands/CommandObjectImage.cpp b/lldb/source/Commands/CommandObjectImage.cpp index ebbc0f1c840..53db6dfbeb4 100644 --- a/lldb/source/Commands/CommandObjectImage.cpp +++ b/lldb/source/Commands/CommandObjectImage.cpp @@ -656,7 +656,7 @@ public: const char *arg_cstr; for (int arg_idx = 0; (arg_cstr = command.GetArgumentAtIndex(arg_idx)) != NULL; ++arg_idx) { - FileSpec image_file(arg_cstr); + FileSpec image_file(arg_cstr, false); ModuleList matching_modules; size_t num_matching_modules = target->GetImages().FindModules(&image_file, NULL, NULL, NULL, matching_modules); @@ -861,7 +861,7 @@ public: const char *arg_cstr; for (int arg_idx = 0; (arg_cstr = command.GetArgumentAtIndex(arg_idx)) != NULL; ++arg_idx) { - FileSpec image_file(arg_cstr); + FileSpec image_file(arg_cstr, false); ModuleList matching_modules; size_t num_matching_modules = target->GetImages().FindModules(&image_file, NULL, NULL, NULL, matching_modules); @@ -969,7 +969,7 @@ public: const char *arg_cstr; for (int arg_idx = 0; (arg_cstr = command.GetArgumentAtIndex(arg_idx)) != NULL; ++arg_idx) { - FileSpec image_file(arg_cstr); + FileSpec image_file(arg_cstr, false); ModuleList matching_modules; size_t num_matching_modules = target->GetImages().FindModules(&image_file, NULL, NULL, NULL, matching_modules); @@ -1062,7 +1062,7 @@ public: const char *arg_cstr; for (int arg_idx = 0; (arg_cstr = command.GetArgumentAtIndex(arg_idx)) != NULL; ++arg_idx) { - FileSpec file_spec(arg_cstr); + FileSpec file_spec(arg_cstr, false); const uint32_t num_modules = target->GetImages().GetSize(); if (num_modules > 0) { @@ -1381,7 +1381,7 @@ public: break; case 'f': - m_file.SetFile (option_arg); + m_file.SetFile (option_arg, false); m_type = eLookupTypeFileLine; break; @@ -1627,7 +1627,7 @@ public: const char *arg_cstr; for (i = 0; (arg_cstr = command.GetArgumentAtIndex(i)) != NULL && syntax_error == false; ++i) { - FileSpec image_file(arg_cstr); + FileSpec image_file(arg_cstr, false); ModuleList matching_modules; size_t num_matching_modules = target->GetImages().FindModules(&image_file, NULL, NULL, NULL, matching_modules); -- cgit v1.2.3