void Module::ReportWarning (const char *format, ...) { if (format && format[0]) { StreamString strm; strm.PutCString("warning: "); GetDescription(&strm, lldb::eDescriptionLevelFull); strm.PutChar (' '); va_list args; va_start (args, format); strm.PrintfVarArg(format, args); va_end (args); const int format_len = strlen(format); if (format_len > 0) { const char last_char = format[format_len-1]; if (last_char != '\n' || last_char != '\r') strm.EOL(); } Host::SystemLog (Host::eSystemLogWarning, "%s", strm.GetString().c_str()); } }
void ThreadPlanCallFunction::ReportRegisterState (const char *message) { Log *log(lldb_private::GetLogIfAllCategoriesSet (LIBLLDB_LOG_STEP | LIBLLDB_LOG_VERBOSE)); if (log) { StreamString strm; RegisterContext *reg_ctx = m_thread.GetRegisterContext().get(); log->PutCString(message); RegisterValue reg_value; for (uint32_t reg_idx = 0, num_registers = reg_ctx->GetRegisterCount(); reg_idx < num_registers; ++reg_idx) { const RegisterInfo *reg_info = reg_ctx->GetRegisterInfoAtIndex (reg_idx); if (reg_ctx->ReadRegister(reg_info, reg_value)) { reg_value.Dump(&strm, reg_info, true, false, eFormatDefault); strm.EOL(); } } log->PutCString(strm.GetData()); } }
void Module::ReportErrorIfModifyDetected (const char *format, ...) { if (m_first_file_changed_log == false) { if (FileHasChanged ()) { m_first_file_changed_log = true; if (format) { StreamString strm; strm.PutCString("error: the object file "); GetDescription(&strm, lldb::eDescriptionLevelFull); strm.PutCString (" has been modified\n"); va_list args; va_start (args, format); strm.PrintfVarArg(format, args); va_end (args); const int format_len = strlen(format); if (format_len > 0) { const char last_char = format[format_len-1]; if (last_char != '\n' || last_char != '\r') strm.EOL(); } strm.PutCString("The debug session should be aborted as the original debug information has been overwritten.\n"); Host::SystemLog (Host::eSystemLogError, "%s", strm.GetString().c_str()); } } } }