[Lldb-commits] [lldb] r347817 - [driver] Some NFC cleanup
Jonas Devlieghere via lldb-commits
lldb-commits at lists.llvm.org
Wed Nov 28 14:39:17 PST 2018
Author: jdevlieghere
Date: Wed Nov 28 14:39:17 2018
New Revision: 347817
URL: http://llvm.org/viewvc/llvm-project?rev=347817&view=rev
Log:
[driver] Some NFC cleanup
This patch includes some small things I noticed while refactoring the
driver but didn't want to include in that patch.
Modified:
lldb/trunk/tools/driver/Driver.cpp
lldb/trunk/tools/driver/Driver.h
Modified: lldb/trunk/tools/driver/Driver.cpp
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/tools/driver/Driver.cpp?rev=347817&r1=347816&r2=347817&view=diff
==============================================================================
--- lldb/trunk/tools/driver/Driver.cpp (original)
+++ lldb/trunk/tools/driver/Driver.cpp Wed Nov 28 14:39:17 2018
@@ -26,9 +26,11 @@
#include "llvm/ADT/StringRef.h"
#include "llvm/Support/ConvertUTF.h"
+#include "llvm/Support/Format.h"
#include "llvm/Support/Path.h"
#include "llvm/Support/PrettyStackTrace.h"
#include "llvm/Support/Signals.h"
+#include "llvm/Support/WithColor.h"
#include "llvm/Support/raw_ostream.h"
#include <algorithm>
@@ -280,8 +282,7 @@ bool Driver::GetDebugMode() const { retu
// indicating whether or not to start up the full debugger (i.e. the Command
// Interpreter) or not. Return FALSE if the arguments were invalid OR if the
// user only wanted help or version information.
-SBError Driver::ProcessArgs(const opt::InputArgList &args, FILE *out_fh,
- bool &exiting) {
+SBError Driver::ProcessArgs(const opt::InputArgList &args, bool &exiting) {
SBError error;
ResetOptionValues();
@@ -497,15 +498,12 @@ SBError Driver::ProcessArgs(const opt::I
for (auto value : arg->getValues())
m_option_data.m_args.push_back(value);
}
- } else {
- if (args.getLastArgNoClaim()) {
- ::fprintf(out_fh,
- "Warning: program arguments are ignored when attaching.\n");
- }
+ } else if (args.getLastArgNoClaim()) {
+ WithColor::warning() << "program arguments are ignored when attaching.\n";
}
if (m_option_data.m_print_version) {
- ::fprintf(out_fh, "%s\n", m_debugger.GetVersionString());
+ llvm::outs() << m_debugger.GetVersionString() << '\n';
exiting = true;
return error;
}
@@ -516,11 +514,11 @@ SBError Driver::ProcessArgs(const opt::I
char python_path[PATH_MAX];
size_t num_chars = python_file_spec.GetPath(python_path, PATH_MAX);
if (num_chars < PATH_MAX) {
- ::fprintf(out_fh, "%s\n", python_path);
+ llvm::outs() << python_path << '\n';
} else
- ::fprintf(out_fh, "<PATH TOO LONG>\n");
+ llvm::outs() << "<PATH TOO LONG>\n";
} else
- ::fprintf(out_fh, "<COULD NOT FIND PATH>\n");
+ llvm::outs() << "<COULD NOT FIND PATH>\n";
exiting = true;
return error;
}
@@ -544,11 +542,13 @@ static ::FILE *PrepareCommandsForSourcin
if (err == 0) {
ssize_t nrwr = write(fds[WRITE], commands_data, commands_size);
if (nrwr < 0) {
- fprintf(stderr,
- "error: write(%i, %p, %" PRIu64 ") failed (errno = %i) "
- "when trying to open LLDB commands pipe\n",
- fds[WRITE], static_cast<const void *>(commands_data),
- static_cast<uint64_t>(commands_size), errno);
+ WithColor::error()
+ << format(
+ "write(%i, %p, %" PRIu64
+ ") failed (errno = %i) when trying to open LLDB commands pipe",
+ fds[WRITE], static_cast<const void *>(commands_data),
+ static_cast<uint64_t>(commands_size), errno)
+ << '\n';
} else if (static_cast<size_t>(nrwr) == commands_size) {
// Close the write end of the pipe so when we give the read end to
// the debugger/command interpreter it will exit when it consumes all
@@ -568,15 +568,15 @@ static ::FILE *PrepareCommandsForSourcin
// descriptor Hand ownership if the FILE * over to the
// debugger for "commands_file".
} else {
- fprintf(stderr,
- "error: fdopen(%i, \"r\") failed (errno = %i) when "
- "trying to open LLDB commands pipe\n",
- fds[READ], errno);
+ WithColor::error() << format("fdopen(%i, \"r\") failed (errno = %i) "
+ "when trying to open LLDB commands pipe",
+ fds[READ], errno)
+ << '\n';
}
}
} else {
- fprintf(stderr,
- "error: can't create pipe file descriptors for LLDB commands\n");
+ WithColor::error()
+ << "can't create pipe file descriptors for LLDB commands\n";
}
return commands_file;
@@ -724,9 +724,9 @@ int Driver::MainLoop() {
if (error.Fail()) {
const char *error_cstr = error.GetCString();
if (error_cstr && error_cstr[0])
- fprintf(stderr, "error: %s\n", error_cstr);
+ WithColor::error() << error_cstr << '\n';
else
- fprintf(stderr, "error: %u\n", error.GetError());
+ WithColor::error() << error.GetError() << '\n';
}
} else {
// Check if we have any data in the commands stream, and if so, save it to a
@@ -940,6 +940,11 @@ main(int argc, char const *argv[])
return 0;
}
+ for (auto *arg : input_args.filtered(OPT_UNKNOWN)) {
+ WithColor::warning() << "ignoring unknown option: " << arg->getSpelling()
+ << '\n';
+ }
+
SBDebugger::Initialize();
SBHostOS::ThreadCreated("<lldb.driver.main-thread>");
@@ -958,12 +963,11 @@ main(int argc, char const *argv[])
Driver driver;
bool exiting = false;
- SBError error(driver.ProcessArgs(input_args, stdout, exiting));
+ SBError error(driver.ProcessArgs(input_args, exiting));
if (error.Fail()) {
exit_code = 1;
- const char *error_cstr = error.GetCString();
- if (error_cstr)
- ::fprintf(stderr, "error: %s\n", error_cstr);
+ if (const char *error_cstr = error.GetCString())
+ WithColor::error() << error_cstr << '\n';
} else if (!exiting) {
exit_code = driver.MainLoop();
}
Modified: lldb/trunk/tools/driver/Driver.h
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/tools/driver/Driver.h?rev=347817&r1=347816&r2=347817&view=diff
==============================================================================
--- lldb/trunk/tools/driver/Driver.h (original)
+++ lldb/trunk/tools/driver/Driver.h Wed Nov 28 14:39:17 2018
@@ -42,8 +42,7 @@ public:
/// @return The exit code that the process should return.
int MainLoop();
- lldb::SBError ProcessArgs(const llvm::opt::InputArgList &args, FILE *out_fh,
- bool &do_exit);
+ lldb::SBError ProcessArgs(const llvm::opt::InputArgList &args, bool &do_exit);
const char *GetFilename() const;
More information about the lldb-commits
mailing list