clayborg added a comment.

Seems weird that we are a C++ codebase and we fall back to C macros. We 
currently need the macro only for file + line and to also not have to worry 
about doing "if (log) log->". I am not a big fan of macros, but I am open to it 
if everyone else wants it.



================
Comment at: include/lldb/Core/Log.h:218-219
+          << llvm::formatv(                                                    
\
+                 "{0,-60}: ",                                                  
 \
+                 (llvm::sys::path::filename(__FILE__) + "::" + __FUNCTION__)   
\
+                     .str())                                                   
\
----------------
This is hard coding in the file + line all the time. I would like this to be an 
option. We also need to be able to optionally enable the pid/tid, thread name, 
stack backtrace and all the other options that are currently supported by "log 
enable". Seems like we need a log function that exists in Log.cpp to take a log 
mutex, add the extra log prefix stuff (file + line, pid/tid, thread name, 
timestamp, delta since last log time, stack etc) and then call the 
llvm::formatv() one or more times and then release the mutex.


================
Comment at: include/lldb/Host/FileSpec.h:675-677
+  void format(llvm::raw_ostream &Stream, llvm::StringRef Options) const {
+    Stream << this->GetCString();
+  }
----------------
For a good example of what objects can do to help sell this proposal we should 
handle different values for the Options string. Maybe this to support the 
following:

Options is empty -> print out full path
Options == "filename" -> print out file name only with extension
Options == "basename" -> print out file name only without extension
Options == "directory" -> print out file directory only
Options == "extension" -> print out file extension only
Options == "volume" -> print out file volume only which will probably only work 
on windows paths currently
Options == "fullname" -> print out volume + directory + filename, same as 
default empty string

Then we can format like:


```
FileSpec file("/tmp/foo.txt");
llvm::formatv("{0; filename}", file);
```


https://reviews.llvm.org/D27459



_______________________________________________
lldb-commits mailing list
lldb-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits

Reply via email to