labath updated this revision to Diff 147286. labath added a comment. This is the version with new symbolic constants. I put them in a new file, as I couldn't think of a better place for them.
I didn't want to put them in a too generic place as I don't think we should encourage their use (we should convert error to one of our standard errors types as soon as possible). On the other hand, they are used in two files, so they can't be internal to a compilation unit. There wasn't anything reasonable in the overlap of the existing includes of the two files, so I created a new file instead. https://reviews.llvm.org/D46934 Files: lit/Modules/lc_version_min.yaml source/Initialization/CMakeLists.txt source/Initialization/SystemInitializerCommon.cpp source/Plugins/Process/Utility/RegisterContextDarwinConstants.h source/Plugins/Process/Utility/RegisterContextDarwin_arm.cpp source/Plugins/Process/Utility/RegisterContextDarwin_arm64.cpp
Index: source/Plugins/Process/Utility/RegisterContextDarwin_arm64.cpp =================================================================== --- source/Plugins/Process/Utility/RegisterContextDarwin_arm64.cpp +++ source/Plugins/Process/Utility/RegisterContextDarwin_arm64.cpp @@ -8,14 +8,8 @@ // //===----------------------------------------------------------------------===// -#if defined(__APPLE__) - #include "RegisterContextDarwin_arm64.h" - -// C Includes -#include <mach/mach_types.h> -#include <mach/thread_act.h> -#include <sys/sysctl.h> +#include "RegisterContextDarwinConstants.h" // C++ Includes // Other libraries and framework includes @@ -221,7 +215,7 @@ int set = GPRRegSet; if (!RegisterSetIsCached(set)) { SetError(set, Write, -1); - return KERN_INVALID_ARGUMENT; + return KERNEL_INVALID_ARGUMENT; } SetError(set, Write, DoWriteGPR(GetThreadID(), set, gpr)); SetError(set, Read, -1); @@ -232,7 +226,7 @@ int set = FPURegSet; if (!RegisterSetIsCached(set)) { SetError(set, Write, -1); - return KERN_INVALID_ARGUMENT; + return KERNEL_INVALID_ARGUMENT; } SetError(set, Write, DoWriteFPU(GetThreadID(), set, fpu)); SetError(set, Read, -1); @@ -243,7 +237,7 @@ int set = EXCRegSet; if (!RegisterSetIsCached(set)) { SetError(set, Write, -1); - return KERN_INVALID_ARGUMENT; + return KERNEL_INVALID_ARGUMENT; } SetError(set, Write, DoWriteEXC(GetThreadID(), set, exc)); SetError(set, Read, -1); @@ -254,7 +248,7 @@ int set = DBGRegSet; if (!RegisterSetIsCached(set)) { SetError(set, Write, -1); - return KERN_INVALID_ARGUMENT; + return KERNEL_INVALID_ARGUMENT; } SetError(set, Write, DoWriteDBG(GetThreadID(), set, dbg)); SetError(set, Read, -1); @@ -274,7 +268,7 @@ default: break; } - return KERN_INVALID_ARGUMENT; + return KERNEL_INVALID_ARGUMENT; } int RegisterContextDarwin_arm64::WriteRegisterSet(uint32_t set) { @@ -293,7 +287,7 @@ break; } } - return KERN_INVALID_ARGUMENT; + return KERNEL_INVALID_ARGUMENT; } void RegisterContextDarwin_arm64::LogDBGRegisters(Log *log, const DBG &dbg) { @@ -313,7 +307,7 @@ if (set == -1) return false; - if (ReadRegisterSet(set, false) != KERN_SUCCESS) + if (ReadRegisterSet(set, false) != KERNEL_SUCCESS) return false; switch (reg) { @@ -545,7 +539,7 @@ if (set == -1) return false; - if (ReadRegisterSet(set, false) != KERN_SUCCESS) + if (ReadRegisterSet(set, false) != KERNEL_SUCCESS) return false; switch (reg) { @@ -642,14 +636,14 @@ default: return false; } - return WriteRegisterSet(set) == KERN_SUCCESS; + return WriteRegisterSet(set) == KERNEL_SUCCESS; } bool RegisterContextDarwin_arm64::ReadAllRegisterValues( lldb::DataBufferSP &data_sp) { data_sp.reset(new DataBufferHeap(REG_CONTEXT_SIZE, 0)); - if (data_sp && ReadGPR(false) == KERN_SUCCESS && - ReadFPU(false) == KERN_SUCCESS && ReadEXC(false) == KERN_SUCCESS) { + if (data_sp && ReadGPR(false) == KERNEL_SUCCESS && + ReadFPU(false) == KERNEL_SUCCESS && ReadEXC(false) == KERNEL_SUCCESS) { uint8_t *dst = data_sp->GetBytes(); ::memcpy(dst, &gpr, sizeof(gpr)); dst += sizeof(gpr); @@ -675,11 +669,11 @@ ::memcpy(&exc, src, sizeof(exc)); uint32_t success_count = 0; - if (WriteGPR() == KERN_SUCCESS) + if (WriteGPR() == KERNEL_SUCCESS) ++success_count; - if (WriteFPU() == KERN_SUCCESS) + if (WriteFPU() == KERNEL_SUCCESS) ++success_count; - if (WriteEXC() == KERN_SUCCESS) + if (WriteEXC() == KERNEL_SUCCESS) ++success_count; return success_count == 3; } @@ -980,7 +974,7 @@ // Read the debug state int kret = ReadDBG(false); - if (kret == KERN_SUCCESS) { + if (kret == KERNEL_SUCCESS) { // Check to make sure we have the needed hardware support uint32_t i = 0; @@ -1007,7 +1001,7 @@ // ("RegisterContextDarwin_arm64::EnableHardwareWatchpoint() // WriteDBG() => 0x%8.8x.", kret); - if (kret == KERN_SUCCESS) + if (kret == KERNEL_SUCCESS) return i; } else { // if (log) log->Printf @@ -1023,7 +1017,7 @@ int kret = ReadDBG(false); const uint32_t num_hw_points = NumSupportedHardwareWatchpoints(); - if (kret == KERN_SUCCESS) { + if (kret == KERNEL_SUCCESS) { if (hw_index < num_hw_points) { dbg.wcr[hw_index] = 0; // if (log) log->Printf @@ -1037,11 +1031,9 @@ kret = WriteDBG(); - if (kret == KERN_SUCCESS) + if (kret == KERNEL_SUCCESS) return true; } } return false; } - -#endif Index: source/Plugins/Process/Utility/RegisterContextDarwin_arm.cpp =================================================================== --- source/Plugins/Process/Utility/RegisterContextDarwin_arm.cpp +++ source/Plugins/Process/Utility/RegisterContextDarwin_arm.cpp @@ -7,13 +7,8 @@ // //===----------------------------------------------------------------------===// -#if defined(__APPLE__) - #include "RegisterContextDarwin_arm.h" - -// C Includes -#include <mach/mach_types.h> -#include <mach/thread_act.h> +#include "RegisterContextDarwinConstants.h" // C++ Includes // Other libraries and framework includes @@ -1040,7 +1035,7 @@ int set = GPRRegSet; if (!RegisterSetIsCached(set)) { SetError(set, Write, -1); - return KERN_INVALID_ARGUMENT; + return KERNEL_INVALID_ARGUMENT; } SetError(set, Write, DoWriteGPR(GetThreadID(), set, gpr)); SetError(set, Read, -1); @@ -1051,7 +1046,7 @@ int set = FPURegSet; if (!RegisterSetIsCached(set)) { SetError(set, Write, -1); - return KERN_INVALID_ARGUMENT; + return KERNEL_INVALID_ARGUMENT; } SetError(set, Write, DoWriteFPU(GetThreadID(), set, fpu)); SetError(set, Read, -1); @@ -1062,7 +1057,7 @@ int set = EXCRegSet; if (!RegisterSetIsCached(set)) { SetError(set, Write, -1); - return KERN_INVALID_ARGUMENT; + return KERNEL_INVALID_ARGUMENT; } SetError(set, Write, DoWriteEXC(GetThreadID(), set, exc)); SetError(set, Read, -1); @@ -1073,7 +1068,7 @@ int set = DBGRegSet; if (!RegisterSetIsCached(set)) { SetError(set, Write, -1); - return KERN_INVALID_ARGUMENT; + return KERNEL_INVALID_ARGUMENT; } SetError(set, Write, DoWriteDBG(GetThreadID(), set, dbg)); SetError(set, Read, -1); @@ -1095,7 +1090,7 @@ default: break; } - return KERN_INVALID_ARGUMENT; + return KERNEL_INVALID_ARGUMENT; } int RegisterContextDarwin_arm::WriteRegisterSet(uint32_t set) { @@ -1116,7 +1111,7 @@ break; } } - return KERN_INVALID_ARGUMENT; + return KERNEL_INVALID_ARGUMENT; } void RegisterContextDarwin_arm::LogDBGRegisters(Log *log, const DBG &dbg) { @@ -1136,7 +1131,7 @@ if (set == -1) return false; - if (ReadRegisterSet(set, false) != KERN_SUCCESS) + if (ReadRegisterSet(set, false) != KERNEL_SUCCESS) return false; switch (reg) { @@ -1224,7 +1219,7 @@ if (set == -1) return false; - if (ReadRegisterSet(set, false) != KERN_SUCCESS) + if (ReadRegisterSet(set, false) != KERNEL_SUCCESS) return false; switch (reg) { @@ -1300,14 +1295,14 @@ default: return false; } - return WriteRegisterSet(set) == KERN_SUCCESS; + return WriteRegisterSet(set) == KERNEL_SUCCESS; } bool RegisterContextDarwin_arm::ReadAllRegisterValues( lldb::DataBufferSP &data_sp) { data_sp.reset(new DataBufferHeap(REG_CONTEXT_SIZE, 0)); - if (data_sp && ReadGPR(false) == KERN_SUCCESS && - ReadFPU(false) == KERN_SUCCESS && ReadEXC(false) == KERN_SUCCESS) { + if (data_sp && ReadGPR(false) == KERNEL_SUCCESS && + ReadFPU(false) == KERNEL_SUCCESS && ReadEXC(false) == KERNEL_SUCCESS) { uint8_t *dst = data_sp->GetBytes(); ::memcpy(dst, &gpr, sizeof(gpr)); dst += sizeof(gpr); @@ -1333,11 +1328,11 @@ ::memcpy(&exc, src, sizeof(exc)); uint32_t success_count = 0; - if (WriteGPR() == KERN_SUCCESS) + if (WriteGPR() == KERNEL_SUCCESS) ++success_count; - if (WriteFPU() == KERN_SUCCESS) + if (WriteFPU() == KERNEL_SUCCESS) ++success_count; - if (WriteEXC() == KERN_SUCCESS) + if (WriteEXC() == KERNEL_SUCCESS) ++success_count; return success_count == 3; } @@ -1543,7 +1538,7 @@ int kret = ReadDBG(false); - if (kret == KERN_SUCCESS) { + if (kret == KERNEL_SUCCESS) { const uint32_t num_hw_breakpoints = NumSupportedHardwareBreakpoints(); uint32_t i; for (i = 0; i < num_hw_breakpoints; ++i) { @@ -1601,7 +1596,7 @@ // ("RegisterContextDarwin_arm::EnableHardwareBreakpoint() // WriteDBG() => 0x%8.8x.", kret); - if (kret == KERN_SUCCESS) + if (kret == KERNEL_SUCCESS) return i; } // else @@ -1620,7 +1615,7 @@ int kret = ReadDBG(false); const uint32_t num_hw_points = NumSupportedHardwareBreakpoints(); - if (kret == KERN_SUCCESS) { + if (kret == KERNEL_SUCCESS) { if (hw_index < num_hw_points) { dbg.bcr[hw_index] = 0; // if (log) log->Printf @@ -1634,7 +1629,7 @@ kret = WriteDBG(); - if (kret == KERN_SUCCESS) + if (kret == KERNEL_SUCCESS) return true; } } @@ -1704,7 +1699,7 @@ // Read the debug state int kret = ReadDBG(false); - if (kret == KERN_SUCCESS) { + if (kret == KERNEL_SUCCESS) { // Check to make sure we have the needed hardware support uint32_t i = 0; @@ -1731,7 +1726,7 @@ // ("RegisterContextDarwin_arm::EnableHardwareWatchpoint() // WriteDBG() => 0x%8.8x.", kret); - if (kret == KERN_SUCCESS) + if (kret == KERNEL_SUCCESS) return i; } else { // if (log) log->Printf @@ -1746,7 +1741,7 @@ int kret = ReadDBG(false); const uint32_t num_hw_points = NumSupportedHardwareWatchpoints(); - if (kret == KERN_SUCCESS) { + if (kret == KERNEL_SUCCESS) { if (hw_index < num_hw_points) { dbg.wcr[hw_index] = 0; // if (log) log->Printf @@ -1760,11 +1755,9 @@ kret = WriteDBG(); - if (kret == KERN_SUCCESS) + if (kret == KERNEL_SUCCESS) return true; } } return false; } - -#endif Index: source/Plugins/Process/Utility/RegisterContextDarwinConstants.h =================================================================== --- /dev/null +++ source/Plugins/Process/Utility/RegisterContextDarwinConstants.h @@ -0,0 +1,22 @@ +//===-- RegisterContextDarwinConstants.h ------------------------*- C++ -*-===// +// +// The LLVM Compiler Infrastructure +// +// This file is distributed under the University of Illinois Open Source +// License. See LICENSE.TXT for details. +// +//===----------------------------------------------------------------------===// + +#ifndef LLDB_REGISTERCONTEXTDARWINCONSTANTS_H +#define LLDB_REGISTERCONTEXTDARWINCONSTANTS_H + +namespace lldb_private { + +/// Constants returned by various RegisterContextDarwin_*** functions. +enum { + KERNEL_SUCCESS = 0, + KERNEL_INVALID_ARGUMENT = 4, +}; +} + +#endif // LLDB_REGISTERCONTEXTDARWINCONSTANTS_H Index: source/Initialization/SystemInitializerCommon.cpp =================================================================== --- source/Initialization/SystemInitializerCommon.cpp +++ source/Initialization/SystemInitializerCommon.cpp @@ -21,10 +21,7 @@ #include "lldb/Host/HostInfo.h" #include "lldb/Utility/Log.h" #include "lldb/Utility/Timer.h" - -#if defined(__APPLE__) #include "Plugins/ObjectFile/Mach-O/ObjectFileMachO.h" -#endif #if defined(__linux__) || defined(__FreeBSD__) || defined(__NetBSD__) #include "Plugins/Process/POSIX/ProcessPOSIXLog.h" @@ -82,6 +79,7 @@ // Initialize plug-ins ObjectContainerBSDArchive::Initialize(); ObjectFileELF::Initialize(); + ObjectFileMachO::Initialize(); ObjectFilePECOFF::Initialize(); EmulateInstructionARM::Initialize(); @@ -93,9 +91,6 @@ //---------------------------------------------------------------------- ObjectContainerUniversalMachO::Initialize(); -#if defined(__APPLE__) - ObjectFileMachO::Initialize(); -#endif #if defined(__linux__) || defined(__FreeBSD__) || defined(__NetBSD__) ProcessPOSIXLog::Initialize(); #endif @@ -109,16 +104,14 @@ Timer scoped_timer(func_cat, LLVM_PRETTY_FUNCTION); ObjectContainerBSDArchive::Terminate(); ObjectFileELF::Terminate(); + ObjectFileMachO::Terminate(); ObjectFilePECOFF::Terminate(); EmulateInstructionARM::Terminate(); EmulateInstructionMIPS::Terminate(); EmulateInstructionMIPS64::Terminate(); ObjectContainerUniversalMachO::Terminate(); -#if defined(__APPLE__) - ObjectFileMachO::Terminate(); -#endif #if defined(_MSC_VER) ProcessWindowsLog::Terminate(); Index: source/Initialization/CMakeLists.txt =================================================================== --- source/Initialization/CMakeLists.txt +++ source/Initialization/CMakeLists.txt @@ -1,7 +1,3 @@ -if ( CMAKE_SYSTEM_NAME MATCHES "Darwin" ) - list(APPEND EXTRA_PLUGINS lldbPluginObjectFileMachO) -endif() - if ( CMAKE_SYSTEM_NAME MATCHES "Linux|Android|FreeBSD|NetBSD" ) list(APPEND EXTRA_PLUGINS lldbPluginProcessPOSIX) endif() @@ -24,6 +20,7 @@ lldbPluginObjectContainerBSDArchive lldbPluginObjectContainerMachOArchive lldbPluginObjectFileELF + lldbPluginObjectFileMachO lldbPluginObjectFilePECOFF lldbPluginProcessGDBRemote ${EXTRA_PLUGINS} Index: lit/Modules/lc_version_min.yaml =================================================================== --- lit/Modules/lc_version_min.yaml +++ lit/Modules/lc_version_min.yaml @@ -1,6 +1,6 @@ # RUN: yaml2obj %s > %t.out # RUN: lldb-test symbols %t.out | FileCheck %s -# REQUIRES: darwin + # Test that the deployment target is parsed from the load commands. # CHECK: x86_64-apple-macosx10.9.0 --- !mach-o
_______________________________________________ lldb-commits mailing list lldb-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits