CodeQL / Analyze (actions) (push) Canceled after 0s
CodeQL / Analyze (python) (push) Canceled after 0s
pre-commit / pre-commit (push) Canceled after 0s
Multi-Arch CI / setup (push) Canceled after 0s
Publish build_manylinux_x86_64 images / publish_build_manylinux_x86_64 (push) Canceled after 0s
Setup (Multi-Arch) / setup (push) Canceled after 0s
Multi-Arch CI / Linux::${{ fromJSON(needs.setup.outputs.linux_build_config || '{}').build_variant_label || 'skip' }} (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Publish no_rocm_image_ubi10 image / publish_no_rocm_image_ubi10 (push) Canceled after 0s
Multi-Arch CI / Windows::${{ fromJSON(needs.setup.outputs.windows_build_config || '{}').build_variant_label || 'skip' }} (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Multi-Arch CI / Manifest Diff (push) Canceled after 0s
TheRock Manifest Diff Report / Generate Manifest Diff Report (push) Canceled after 0s
Multi-Arch CI / CI Summary (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04 (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04_ocl_rt images / publish_no_rocm_image_ubuntu24_04_ocl_rt (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04_rocgdb (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04_rocgdb images / publish_no_rocm_image_ubuntu24_04_rocgdb (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04_ocl_rt (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Unit Tests / Unit Tests :: ubuntu-24.04 (push) Canceled after 0s
Unit Tests / Unit Tests :: windows-2022 (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04_media (push) Canceled after 0s
Unit Tests / Unit Tests Summary (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04_openmpi (push) Canceled after 0s
109 lines
3.3 KiB
C++
109 lines
3.3 KiB
C++
//===-- SystemInitializerCommon.cpp ---------------------------------------===//
|
|
//
|
|
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
|
|
// See https://llvm.org/LICENSE.txt for license information.
|
|
// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
|
|
//
|
|
//===----------------------------------------------------------------------===//
|
|
|
|
#include "lldb/Initialization/SystemInitializerCommon.h"
|
|
|
|
#include "Plugins/Process/gdb-remote/ProcessGDBRemoteLog.h"
|
|
#include "lldb/Host/FileSystem.h"
|
|
#include "lldb/Host/Host.h"
|
|
#include "lldb/Host/Socket.h"
|
|
#include "lldb/Target/Statistics.h"
|
|
#include "lldb/Utility/Diagnostics.h"
|
|
#include "lldb/Utility/LLDBLog.h"
|
|
#include "lldb/Utility/Timer.h"
|
|
#include "lldb/Version/Version.h"
|
|
|
|
#if defined(__linux__) || defined(__FreeBSD__) || defined(__NetBSD__) || \
|
|
defined(__OpenBSD__)
|
|
#include "Plugins/Process/POSIX/ProcessPOSIXLog.h"
|
|
#endif
|
|
|
|
#if defined(_WIN32)
|
|
#include "Plugins/Process/Windows/Common/ProcessWindowsLog.h"
|
|
#include "lldb/Host/windows/windows.h"
|
|
#include <crtdbg.h>
|
|
#endif
|
|
|
|
#include "llvm/Support/TargetSelect.h"
|
|
|
|
#include <string>
|
|
|
|
using namespace lldb_private;
|
|
|
|
SystemInitializerCommon::SystemInitializerCommon() = default;
|
|
|
|
SystemInitializerCommon::~SystemInitializerCommon() = default;
|
|
|
|
llvm::Error SystemInitializerCommon::Initialize() {
|
|
#if defined(_WIN32)
|
|
const char *disable_crash_dialog_var = getenv("LLDB_DISABLE_CRASH_DIALOG");
|
|
if (disable_crash_dialog_var &&
|
|
llvm::StringRef(disable_crash_dialog_var).equals_insensitive("true")) {
|
|
// This will prevent Windows from displaying a dialog box requiring user
|
|
// interaction when
|
|
// LLDB crashes. This is mostly useful when automating LLDB, for example
|
|
// via the test
|
|
// suite, so that a crash in LLDB does not prevent completion of the test
|
|
// suite.
|
|
::SetErrorMode(GetErrorMode() | SEM_FAILCRITICALERRORS |
|
|
SEM_NOGPFAULTERRORBOX);
|
|
|
|
_CrtSetReportMode(_CRT_ASSERT, _CRTDBG_MODE_FILE | _CRTDBG_MODE_DEBUG);
|
|
_CrtSetReportMode(_CRT_WARN, _CRTDBG_MODE_FILE | _CRTDBG_MODE_DEBUG);
|
|
_CrtSetReportMode(_CRT_ERROR, _CRTDBG_MODE_FILE | _CRTDBG_MODE_DEBUG);
|
|
_CrtSetReportFile(_CRT_ASSERT, _CRTDBG_FILE_STDERR);
|
|
_CrtSetReportFile(_CRT_WARN, _CRTDBG_FILE_STDERR);
|
|
_CrtSetReportFile(_CRT_ERROR, _CRTDBG_FILE_STDERR);
|
|
}
|
|
#endif
|
|
|
|
LLDBLogChannel::Initialize();
|
|
Diagnostics::Initialize();
|
|
FileSystem::Initialize();
|
|
HostInfo::Initialize();
|
|
|
|
llvm::Error error = Socket::Initialize();
|
|
if (error)
|
|
return error;
|
|
|
|
LLDB_SCOPED_TIMER();
|
|
|
|
process_gdb_remote::ProcessGDBRemoteLog::Initialize();
|
|
|
|
#if defined(__linux__) || defined(__FreeBSD__) || defined(__NetBSD__) || \
|
|
defined(__OpenBSD__)
|
|
ProcessPOSIXLog::Initialize();
|
|
#endif
|
|
#if defined(_WIN32)
|
|
ProcessWindowsLog::Initialize();
|
|
#endif
|
|
|
|
return llvm::Error::success();
|
|
}
|
|
|
|
void SystemInitializerCommon::Terminate() {
|
|
LLDB_SCOPED_TIMER();
|
|
|
|
#if defined(__linux__) || defined(__FreeBSD__) || defined(__NetBSD__) || \
|
|
defined(__OpenBSD__)
|
|
ProcessPOSIXLog::Terminate();
|
|
#endif
|
|
#if defined(_WIN32)
|
|
ProcessWindowsLog::Terminate();
|
|
#endif
|
|
|
|
process_gdb_remote::ProcessGDBRemoteLog::Terminate();
|
|
|
|
Socket::Terminate();
|
|
HostInfo::Terminate();
|
|
Log::DisableAllLogChannels();
|
|
FileSystem::Terminate();
|
|
Diagnostics::Terminate();
|
|
LLDBLogChannel::Terminate();
|
|
}
|