[Lldb-commits] [PATCH] D56543: DWARF: Add some support for non-native directory separators

Greg Clayton via Phabricator via lldb-commits lldb-commits at lists.llvm.org
Tue Jan 15 08:21:07 PST 2019


clayborg added inline comments.


================
Comment at: source/Plugins/SymbolFile/DWARF/DWARFUnit.cpp:769-774
+FileSpec::Style DWARFUnit::GetPathStyle() {
+  if (!m_comp_dir)
+    ComputeCompDirAndGuessPathStyle();
+  return m_comp_dir->GetPathStyle();
+}
+
----------------
Remove?


================
Comment at: source/Plugins/SymbolFile/DWARF/DWARFUnit.cpp:777
+  if (!m_comp_dir)
+    ComputeCompDirAndGuessPathStyle();
+  return *m_comp_dir;
----------------
Just move contents of ComputeCompDirAndGuessPathStyle() to this function now that we don't have GetPathStyle?


================
Comment at: source/Plugins/SymbolFile/DWARF/DWARFUnit.cpp:818
+
+void DWARFUnit::ComputeCompDirAndGuessPathStyle() {
+  m_comp_dir = FileSpec();
----------------
Move contents to DWARFUnit::GetCompilationDirectory?


================
Comment at: source/Plugins/SymbolFile/DWARF/DWARFUnit.h:173
+  const lldb_private::FileSpec &GetCompilationDirectory();
+  lldb_private::FileSpec::Style GetPathStyle();
+
----------------
Is GetPathStyle() needed? Seems like we should be able to grab the style from:

```
auto style = unit->GetCompilationDirectory().GetPathStyle();
```



================
Comment at: source/Plugins/SymbolFile/DWARF/DWARFUnit.h:256
 
+  void ComputeCompDirAndGuessPathStyle();
+
----------------
If we remove GetPathStyle above, should this be removed and just put into the code for GetCompilationDirectory() now that we don't have two accessors?


================
Comment at: source/Plugins/SymbolFile/DWARF/SymbolFileDWARF.cpp:757
           if (cu_die) {
-            FileSpec cu_file_spec(cu_die.GetName());
+            FileSpec cu_file_spec(cu_die.GetName(), dwarf_cu->GetPathStyle());
             if (cu_file_spec) {
----------------
Not sure how we would resolve this one. What if dwarf_cu doesn't have a DW_AT_comp_dir? Maybe we add a FileSpec constructor that takes a string and a FileSpec &relative_dir so this would would just become:

```
FileSpec cu_fs(cu_die.GetName(), dwarf_cu->GetCompilationDirectory());
```

The proto would be something like:
```
explicit FileSpec::FileSpec(llvm::StringRef path, const FileSpec &relative_root);
```

Then the if statement below goes away.


================
Comment at: source/Utility/FileSpec.cpp:560
 
+void FileSpec::MakeAbsolute(const FileSpec &dir) {
+  if (IsRelative())
----------------
Should this be "bool FileSpec::ResolveRelativePath(const FileSpec &dir)"? Returns true if this path was relative and it was resolved, and false otherwise?


CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D56543/new/

https://reviews.llvm.org/D56543





More information about the lldb-commits mailing list