JDevlieghere updated this revision to Diff 247552. JDevlieghere added a comment.
- Rebased. - Tested the cache configuration on macOS. CHANGES SINCE LAST ACTION https://reviews.llvm.org/D73016/new/ https://reviews.llvm.org/D73016 Files: lldb/cmake/caches/Apple-lldb-macOS.cmake lldb/cmake/modules/AddLLDB.cmake lldb/source/API/SBCommandReturnObject.cpp lldb/source/Plugins/ABI/CMakeLists.txt lldb/source/Plugins/Architecture/CMakeLists.txt lldb/source/Plugins/Disassembler/CMakeLists.txt lldb/source/Plugins/DynamicLoader/CMakeLists.txt lldb/source/Plugins/Instruction/CMakeLists.txt lldb/source/Plugins/InstrumentationRuntime/CMakeLists.txt lldb/source/Plugins/JITLoader/CMakeLists.txt lldb/source/Plugins/Language/CMakeLists.txt lldb/source/Plugins/LanguageRuntime/CMakeLists.txt lldb/source/Plugins/MemoryHistory/CMakeLists.txt lldb/source/Plugins/ObjectContainer/CMakeLists.txt lldb/source/Plugins/ObjectFile/CMakeLists.txt lldb/source/Plugins/OperatingSystem/CMakeLists.txt lldb/source/Plugins/Platform/CMakeLists.txt lldb/source/Plugins/Process/CMakeLists.txt lldb/source/Plugins/ScriptInterpreter/CMakeLists.txt lldb/source/Plugins/StructuredData/CMakeLists.txt lldb/source/Plugins/SymbolFile/CMakeLists.txt lldb/source/Plugins/SymbolVendor/CMakeLists.txt lldb/source/Plugins/SystemRuntime/CMakeLists.txt lldb/source/Plugins/TypeSystem/CMakeLists.txt lldb/source/Plugins/UnwindAssembly/CMakeLists.txt
Index: lldb/source/Plugins/UnwindAssembly/CMakeLists.txt =================================================================== --- lldb/source/Plugins/UnwindAssembly/CMakeLists.txt +++ lldb/source/Plugins/UnwindAssembly/CMakeLists.txt @@ -1,2 +1,2 @@ -add_subdirectory(InstEmulation) -add_subdirectory(x86) +add_lldb_plugin_subdirectory(InstEmulation) +add_lldb_plugin_subdirectory(x86) Index: lldb/source/Plugins/TypeSystem/CMakeLists.txt =================================================================== --- lldb/source/Plugins/TypeSystem/CMakeLists.txt +++ lldb/source/Plugins/TypeSystem/CMakeLists.txt @@ -1 +1 @@ -add_subdirectory(Clang) +add_lldb_plugin_subdirectory(Clang) Index: lldb/source/Plugins/SystemRuntime/CMakeLists.txt =================================================================== --- lldb/source/Plugins/SystemRuntime/CMakeLists.txt +++ lldb/source/Plugins/SystemRuntime/CMakeLists.txt @@ -1 +1 @@ -add_subdirectory(MacOSX) +add_lldb_plugin_subdirectory(MacOSX) Index: lldb/source/Plugins/SymbolVendor/CMakeLists.txt =================================================================== --- lldb/source/Plugins/SymbolVendor/CMakeLists.txt +++ lldb/source/Plugins/SymbolVendor/CMakeLists.txt @@ -1,6 +1,6 @@ if (CMAKE_SYSTEM_NAME MATCHES "Darwin") - add_subdirectory(MacOSX) + add_lldb_plugin_subdirectory(MacOSX) endif() -add_subdirectory(ELF) -add_subdirectory(wasm) +add_lldb_plugin_subdirectory(ELF) +add_lldb_plugin_subdirectory(wasm) Index: lldb/source/Plugins/SymbolFile/CMakeLists.txt =================================================================== --- lldb/source/Plugins/SymbolFile/CMakeLists.txt +++ lldb/source/Plugins/SymbolFile/CMakeLists.txt @@ -1,5 +1,5 @@ -add_subdirectory(Breakpad) -add_subdirectory(DWARF) -add_subdirectory(Symtab) -add_subdirectory(NativePDB) -add_subdirectory(PDB) +add_lldb_plugin_subdirectory(Breakpad) +add_lldb_plugin_subdirectory(DWARF) +add_lldb_plugin_subdirectory(Symtab) +add_lldb_plugin_subdirectory(NativePDB) +add_lldb_plugin_subdirectory(PDB) Index: lldb/source/Plugins/StructuredData/CMakeLists.txt =================================================================== --- lldb/source/Plugins/StructuredData/CMakeLists.txt +++ lldb/source/Plugins/StructuredData/CMakeLists.txt @@ -1,2 +1,2 @@ -add_subdirectory(DarwinLog) +add_lldb_plugin_subdirectory(DarwinLog) Index: lldb/source/Plugins/ScriptInterpreter/CMakeLists.txt =================================================================== --- lldb/source/Plugins/ScriptInterpreter/CMakeLists.txt +++ lldb/source/Plugins/ScriptInterpreter/CMakeLists.txt @@ -1,8 +1,8 @@ -add_subdirectory(None) +add_lldb_plugin_subdirectory(None) if (LLDB_ENABLE_PYTHON) - add_subdirectory(Python) + add_lldb_plugin_subdirectory(Python) endif() if (LLDB_ENABLE_LUA) - add_subdirectory(Lua) + add_lldb_plugin_subdirectory(Lua) endif() Index: lldb/source/Plugins/Process/CMakeLists.txt =================================================================== --- lldb/source/Plugins/Process/CMakeLists.txt +++ lldb/source/Plugins/Process/CMakeLists.txt @@ -1,19 +1,19 @@ if (CMAKE_SYSTEM_NAME MATCHES "Linux|Android") - add_subdirectory(Linux) - add_subdirectory(POSIX) + add_lldb_plugin_subdirectory(Linux) + add_lldb_plugin_subdirectory(POSIX) elseif (CMAKE_SYSTEM_NAME MATCHES "FreeBSD") - add_subdirectory(FreeBSD) - add_subdirectory(POSIX) + add_lldb_plugin_subdirectory(FreeBSD) + add_lldb_plugin_subdirectory(POSIX) elseif (CMAKE_SYSTEM_NAME MATCHES "NetBSD") - add_subdirectory(NetBSD) - add_subdirectory(POSIX) + add_lldb_plugin_subdirectory(NetBSD) + add_lldb_plugin_subdirectory(POSIX) elseif (CMAKE_SYSTEM_NAME MATCHES "Windows") - add_subdirectory(Windows/Common) + add_lldb_plugin_subdirectory(Windows/Common) elseif (CMAKE_SYSTEM_NAME MATCHES "Darwin") - add_subdirectory(MacOSX-Kernel) + add_lldb_plugin_subdirectory(MacOSX-Kernel) endif() -add_subdirectory(gdb-remote) -add_subdirectory(Utility) -add_subdirectory(elf-core) -add_subdirectory(mach-core) -add_subdirectory(minidump) +add_lldb_plugin_subdirectory(gdb-remote) +add_lldb_plugin_subdirectory(Utility) +add_lldb_plugin_subdirectory(elf-core) +add_lldb_plugin_subdirectory(mach-core) +add_lldb_plugin_subdirectory(minidump) Index: lldb/source/Plugins/Platform/CMakeLists.txt =================================================================== --- lldb/source/Plugins/Platform/CMakeLists.txt +++ lldb/source/Plugins/Platform/CMakeLists.txt @@ -1,17 +1,17 @@ #if (CMAKE_SYSTEM_NAME MATCHES "Linux") - add_subdirectory(Linux) + add_lldb_plugin_subdirectory(Linux) #elseif (CMAKE_SYSTEM_NAME MATCHES "FreeBSD") - add_subdirectory(FreeBSD) + add_lldb_plugin_subdirectory(FreeBSD) #elseif (CMAKE_SYSTEM_NAME MATCHES "NetBSD") - add_subdirectory(NetBSD) + add_lldb_plugin_subdirectory(NetBSD) #elseif (CMAKE_SYSTEM_NAME MATCHES "OpenBSD") - add_subdirectory(OpenBSD) + add_lldb_plugin_subdirectory(OpenBSD) #elseif (CMAKE_SYSTEM_NAME MATCHES "Darwin") - add_subdirectory(MacOSX) + add_lldb_plugin_subdirectory(MacOSX) #elseif (CMAKE_SYSTEM_NAME MATCHES "Windows") - add_subdirectory(Windows) + add_lldb_plugin_subdirectory(Windows) #endif() -add_subdirectory(POSIX) -add_subdirectory(gdb-server) -add_subdirectory(Android) +add_lldb_plugin_subdirectory(POSIX) +add_lldb_plugin_subdirectory(gdb-server) +add_lldb_plugin_subdirectory(Android) Index: lldb/source/Plugins/OperatingSystem/CMakeLists.txt =================================================================== --- lldb/source/Plugins/OperatingSystem/CMakeLists.txt +++ lldb/source/Plugins/OperatingSystem/CMakeLists.txt @@ -1,3 +1,3 @@ if (LLDB_ENABLE_PYTHON) - add_subdirectory(Python) + add_lldb_plugin_subdirectory(Python) endif() Index: lldb/source/Plugins/ObjectFile/CMakeLists.txt =================================================================== --- lldb/source/Plugins/ObjectFile/CMakeLists.txt +++ lldb/source/Plugins/ObjectFile/CMakeLists.txt @@ -1,6 +1,6 @@ -add_subdirectory(Breakpad) -add_subdirectory(ELF) -add_subdirectory(Mach-O) -add_subdirectory(PECOFF) -add_subdirectory(JIT) -add_subdirectory(wasm) \ No newline at end of file +add_lldb_plugin_subdirectory(Breakpad) +add_lldb_plugin_subdirectory(ELF) +add_lldb_plugin_subdirectory(Mach-O) +add_lldb_plugin_subdirectory(PECOFF) +add_lldb_plugin_subdirectory(JIT) +add_lldb_plugin_subdirectory(wasm) \ No newline at end of file Index: lldb/source/Plugins/ObjectContainer/CMakeLists.txt =================================================================== --- lldb/source/Plugins/ObjectContainer/CMakeLists.txt +++ lldb/source/Plugins/ObjectContainer/CMakeLists.txt @@ -1,2 +1,2 @@ -add_subdirectory(BSD-Archive) -add_subdirectory(Universal-Mach-O) +add_lldb_plugin_subdirectory(BSD-Archive) +add_lldb_plugin_subdirectory(Universal-Mach-O) Index: lldb/source/Plugins/MemoryHistory/CMakeLists.txt =================================================================== --- lldb/source/Plugins/MemoryHistory/CMakeLists.txt +++ lldb/source/Plugins/MemoryHistory/CMakeLists.txt @@ -1 +1 @@ -add_subdirectory(asan) +add_lldb_plugin_subdirectory(asan) Index: lldb/source/Plugins/LanguageRuntime/CMakeLists.txt =================================================================== --- lldb/source/Plugins/LanguageRuntime/CMakeLists.txt +++ lldb/source/Plugins/LanguageRuntime/CMakeLists.txt @@ -1,3 +1,3 @@ -add_subdirectory(CPlusPlus) -add_subdirectory(ObjC) -add_subdirectory(RenderScript) +add_lldb_plugin_subdirectory(CPlusPlus) +add_lldb_plugin_subdirectory(ObjC) +add_lldb_plugin_subdirectory(RenderScript) Index: lldb/source/Plugins/Language/CMakeLists.txt =================================================================== --- lldb/source/Plugins/Language/CMakeLists.txt +++ lldb/source/Plugins/Language/CMakeLists.txt @@ -1,4 +1,4 @@ +add_lldb_plugin_subdirectory(CPlusPlus) +add_lldb_plugin_subdirectory(ObjC) +add_lldb_plugin_subdirectory(ObjCPlusPlus) add_subdirectory(ClangCommon) -add_subdirectory(CPlusPlus) -add_subdirectory(ObjC) -add_subdirectory(ObjCPlusPlus) Index: lldb/source/Plugins/JITLoader/CMakeLists.txt =================================================================== --- lldb/source/Plugins/JITLoader/CMakeLists.txt +++ lldb/source/Plugins/JITLoader/CMakeLists.txt @@ -1 +1 @@ -add_subdirectory(GDB) +add_lldb_plugin_subdirectory(GDB) Index: lldb/source/Plugins/InstrumentationRuntime/CMakeLists.txt =================================================================== --- lldb/source/Plugins/InstrumentationRuntime/CMakeLists.txt +++ lldb/source/Plugins/InstrumentationRuntime/CMakeLists.txt @@ -1,4 +1,4 @@ -add_subdirectory(ASan) -add_subdirectory(MainThreadChecker) -add_subdirectory(TSan) -add_subdirectory(UBSan) +add_lldb_plugin_subdirectory(ASan) +add_lldb_plugin_subdirectory(MainThreadChecker) +add_lldb_plugin_subdirectory(TSan) +add_lldb_plugin_subdirectory(UBSan) Index: lldb/source/Plugins/Instruction/CMakeLists.txt =================================================================== --- lldb/source/Plugins/Instruction/CMakeLists.txt +++ lldb/source/Plugins/Instruction/CMakeLists.txt @@ -1,5 +1,5 @@ -add_subdirectory(ARM) -add_subdirectory(ARM64) -add_subdirectory(MIPS) -add_subdirectory(MIPS64) -add_subdirectory(PPC64) +add_lldb_plugin_subdirectory(ARM) +add_lldb_plugin_subdirectory(ARM64) +add_lldb_plugin_subdirectory(MIPS) +add_lldb_plugin_subdirectory(MIPS64) +add_lldb_plugin_subdirectory(PPC64) Index: lldb/source/Plugins/DynamicLoader/CMakeLists.txt =================================================================== --- lldb/source/Plugins/DynamicLoader/CMakeLists.txt +++ lldb/source/Plugins/DynamicLoader/CMakeLists.txt @@ -1,7 +1,7 @@ -add_subdirectory(Darwin-Kernel) -add_subdirectory(MacOSX-DYLD) -add_subdirectory(POSIX-DYLD) -add_subdirectory(Static) -add_subdirectory(Hexagon-DYLD) -add_subdirectory(Windows-DYLD) -add_subdirectory(wasm-DYLD) +add_lldb_plugin_subdirectory(Darwin-Kernel) +add_lldb_plugin_subdirectory(MacOSX-DYLD) +add_lldb_plugin_subdirectory(POSIX-DYLD) +add_lldb_plugin_subdirectory(Static) +add_lldb_plugin_subdirectory(Hexagon-DYLD) +add_lldb_plugin_subdirectory(Windows-DYLD) +add_lldb_plugin_subdirectory(wasm-DYLD) Index: lldb/source/Plugins/Disassembler/CMakeLists.txt =================================================================== --- lldb/source/Plugins/Disassembler/CMakeLists.txt +++ lldb/source/Plugins/Disassembler/CMakeLists.txt @@ -1 +1 @@ -add_subdirectory(LLVMC) +add_lldb_plugin_subdirectory(LLVMC) Index: lldb/source/Plugins/Architecture/CMakeLists.txt =================================================================== --- lldb/source/Plugins/Architecture/CMakeLists.txt +++ lldb/source/Plugins/Architecture/CMakeLists.txt @@ -1,3 +1,3 @@ -add_subdirectory(Arm) -add_subdirectory(Mips) -add_subdirectory(PPC64) +add_lldb_plugin_subdirectory(Arm) +add_lldb_plugin_subdirectory(Mips) +add_lldb_plugin_subdirectory(PPC64) Index: lldb/source/Plugins/ABI/CMakeLists.txt =================================================================== --- lldb/source/Plugins/ABI/CMakeLists.txt +++ lldb/source/Plugins/ABI/CMakeLists.txt @@ -1,5 +1,5 @@ foreach(target AArch64 ARM ARC Hexagon Mips PowerPC SystemZ X86) if (${target} IN_LIST LLVM_TARGETS_TO_BUILD) - add_subdirectory(${target}) + add_lldb_plugin_subdirectory(${target}) endif() endforeach() Index: lldb/source/API/SBCommandReturnObject.cpp =================================================================== --- lldb/source/API/SBCommandReturnObject.cpp +++ lldb/source/API/SBCommandReturnObject.cpp @@ -15,6 +15,8 @@ #include "lldb/Interpreter/CommandReturnObject.h" #include "lldb/Utility/ConstString.h" #include "lldb/Utility/Status.h" +#include <iostream> +#include <fstream> using namespace lldb; using namespace lldb_private; @@ -93,6 +95,10 @@ LLDB_RECORD_METHOD_NO_ARGS(const char *, SBCommandReturnObject, GetOutput); ConstString output(ref().GetOutputData()); + std::ofstream reproducer_log_file; + reproducer_log_file.open(lldb_private::repro::Reproducer::Instance().IsCapturing() ? "/tmp/capture.log" : "/tmp/replay.log", std::fstream::app); + reproducer_log_file << output.AsCString(/*value_if_empty*/ "") << "\n"; + reproducer_log_file.close(); return output.AsCString(/*value_if_empty*/ ""); } @@ -100,6 +106,10 @@ LLDB_RECORD_METHOD_NO_ARGS(const char *, SBCommandReturnObject, GetError); ConstString output(ref().GetErrorData()); + std::ofstream reproducer_log_file; + reproducer_log_file.open(lldb_private::repro::Reproducer::Instance().IsCapturing() ? "/tmp/capture.log" : "/tmp/replay.log", std::fstream::app); + reproducer_log_file << output.AsCString(/*value_if_empty*/ "") << "\n"; + reproducer_log_file.close(); return output.AsCString(/*value_if_empty*/ ""); } Index: lldb/cmake/modules/AddLLDB.cmake =================================================================== --- lldb/cmake/modules/AddLLDB.cmake +++ lldb/cmake/modules/AddLLDB.cmake @@ -212,6 +212,12 @@ add_llvm_subdirectory(LLDB TOOL ${name}) endmacro() +macro(add_lldb_plugin_subdirectory name) + get_filename_component(plugin ${CMAKE_CURRENT_SOURCE_DIR} NAME) + string(TOUPPER ${plugin} pluginUPPER) + add_llvm_subdirectory(LLDB "PLUGIN_${pluginUPPER}" ${name}) +endmacro() + function(add_lldb_tool name) cmake_parse_arguments(ARG "ADD_TO_FRAMEWORK" "" "" ${ARGN}) if(LLDB_BUILD_FRAMEWORK AND ARG_ADD_TO_FRAMEWORK) Index: lldb/cmake/caches/Apple-lldb-macOS.cmake =================================================================== --- lldb/cmake/caches/Apple-lldb-macOS.cmake +++ lldb/cmake/caches/Apple-lldb-macOS.cmake @@ -17,6 +17,19 @@ # DESTDIR will be an extra prefix. set(LLDB_DEBUGINFO_INSTALL_PREFIX /debuginfo CACHE STRING "") +# Disable platform plugins. +set(LDB_PLUGIN_PLATFORM_ANDROID_BUILD OFF CACHE BOOL "") +set(LDB_PLUGIN_PLATFORM_FREEBSD_BUILD OFF CACHE BOOL "") +set(LDB_PLUGIN_PLATFORM_LINUX_BUILD OFF CACHE BOOL "") +set(LDB_PLUGIN_PLATFORM_NETBSD_BUILD OFF CACHE BOOL "") +set(LDB_PLUGIN_PLATFORM_OPENBSD_BUILD OFF CACHE BOOL "") +set(LDB_PLUGIN_PLATFORM_WINDOWS_BUILD OFF CACHE BOOL "") + +# Disable symbol file formats. +set(LDB_PLUGIN_SYMBOLFILE_BREAKPAD_BUILD OFF CACHE BOOL "") +set(LDB_PLUGIN_SYMBOLFILE_NATIVEPDB_BUILD OFF CACHE BOOL "") +set(LDB_PLUGIN_SYMBOLFILE_PDB_BUILD OFF CACHE BOOL "") + set(LLVM_DISTRIBUTION_COMPONENTS lldb liblldb
_______________________________________________ lldb-commits mailing list lldb-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits