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