diff --git a/lldb/tools/debugserver/source/debugserver.cpp b/lldb/tools/debugserver/source/debugserver.cpp --- a/lldb/tools/debugserver/source/debugserver.cpp +++ b/lldb/tools/debugserver/source/debugserver.cpp @@ -945,6 +945,21 @@ sigaddset(&sigset, SIGCHLD); sigprocmask(SIG_BLOCK, &sigset, NULL); + // Set up DNB logging by default. If the user passes different log flags or a + // log file, these settings will be modified after processing the command line + // arguments. + auto log_callback = OsLogger::GetLogFunction(); + if (log_callback) { + // if os_log() support is available, log through that. + DNBLogSetLogCallback(log_callback, nullptr); + DNBLog("debugserver will use os_log for internal logging."); + } else { + // Fall back to ASL support. + DNBLogSetLogCallback(ASLLogCallback, nullptr); + DNBLog("debugserver will use ASL for internal logging."); + } + DNBLogSetLogMask(/*log_flags*/ 0); + g_remoteSP = std::make_shared(); RNBRemote *remote = g_remoteSP.get(); @@ -1318,27 +1333,13 @@ // It is ok for us to set NULL as the logfile (this will disable any logging) if (log_file != NULL) { + DNBLog("debugserver is switching to logging to a file."); DNBLogSetLogCallback(FileLogCallback, log_file); // If our log file was set, yet we have no log flags, log everything! if (log_flags == 0) log_flags = LOG_ALL | LOG_RNB_ALL; - - DNBLogSetLogMask(log_flags); - } else { - // Enable DNB logging - - // if os_log() support is available, log through that. - auto log_callback = OsLogger::GetLogFunction(); - if (log_callback) { - DNBLogSetLogCallback(log_callback, nullptr); - DNBLog("debugserver will use os_log for internal logging."); - } else { - // Fall back to ASL support. - DNBLogSetLogCallback(ASLLogCallback, NULL); - DNBLog("debugserver will use ASL for internal logging."); - } - DNBLogSetLogMask(log_flags); } + DNBLogSetLogMask(log_flags); if (DNBLogEnabled()) { for (i = 0; i < argc; i++)