*** to conform to clang-format’s LLVM style. This kind of mass change has
*** two obvious implications:
Firstly, merging this particular commit into a downstream fork may be a huge
effort. Alternatively, it may be worth merging all changes up to this commit,
performing the same reformatting operation locally, and then discarding the
merge for this particular commit. The commands used to accomplish this
reformatting were as follows (with current working directory as the root of
the repository):
find . \( -iname "*.c" -or -iname "*.cpp" -or -iname "*.h" -or -iname "*.mm" \) -exec clang-format -i {} +
find . -iname "*.py" -exec autopep8 --in-place --aggressive --aggressive {} + ;
The version of clang-format used was 3.9.0, and autopep8 was 1.2.4.
Secondly, “blame” style tools will generally point to this commit instead of
a meaningful prior commit. There are alternatives available that will attempt
to look through this change and find the appropriate prior commit. YMMV.
llvm-svn: 280751
87 lines
3.2 KiB
C++
87 lines
3.2 KiB
C++
//===-- ObjectContainerUniversalMachO.h -------------------------*- C++ -*-===//
|
|
//
|
|
// The LLVM Compiler Infrastructure
|
|
//
|
|
// This file is distributed under the University of Illinois Open Source
|
|
// License. See LICENSE.TXT for details.
|
|
//
|
|
//===----------------------------------------------------------------------===//
|
|
|
|
#ifndef liblldb_ObjectContainerUniversalMachO_h_
|
|
#define liblldb_ObjectContainerUniversalMachO_h_
|
|
|
|
// C Includes
|
|
// C++ Includes
|
|
// Other libraries and framework includes
|
|
// Project includes
|
|
#include "lldb/Host/FileSpec.h"
|
|
#include "lldb/Symbol/ObjectContainer.h"
|
|
#include "lldb/Utility/SafeMachO.h"
|
|
|
|
class ObjectContainerUniversalMachO : public lldb_private::ObjectContainer {
|
|
public:
|
|
ObjectContainerUniversalMachO(const lldb::ModuleSP &module_sp,
|
|
lldb::DataBufferSP &data_sp,
|
|
lldb::offset_t data_offset,
|
|
const lldb_private::FileSpec *file,
|
|
lldb::offset_t offset, lldb::offset_t length);
|
|
|
|
~ObjectContainerUniversalMachO() override;
|
|
|
|
//------------------------------------------------------------------
|
|
// Static Functions
|
|
//------------------------------------------------------------------
|
|
static void Initialize();
|
|
|
|
static void Terminate();
|
|
|
|
static lldb_private::ConstString GetPluginNameStatic();
|
|
|
|
static const char *GetPluginDescriptionStatic();
|
|
|
|
static lldb_private::ObjectContainer *
|
|
CreateInstance(const lldb::ModuleSP &module_sp, lldb::DataBufferSP &data_sp,
|
|
lldb::offset_t data_offset, const lldb_private::FileSpec *file,
|
|
lldb::offset_t offset, lldb::offset_t length);
|
|
|
|
static size_t GetModuleSpecifications(const lldb_private::FileSpec &file,
|
|
lldb::DataBufferSP &data_sp,
|
|
lldb::offset_t data_offset,
|
|
lldb::offset_t file_offset,
|
|
lldb::offset_t length,
|
|
lldb_private::ModuleSpecList &specs);
|
|
|
|
static bool MagicBytesMatch(const lldb_private::DataExtractor &data);
|
|
|
|
//------------------------------------------------------------------
|
|
// Member Functions
|
|
//------------------------------------------------------------------
|
|
bool ParseHeader() override;
|
|
|
|
void Dump(lldb_private::Stream *s) const override;
|
|
|
|
size_t GetNumArchitectures() const override;
|
|
|
|
bool GetArchitectureAtIndex(uint32_t cpu_idx,
|
|
lldb_private::ArchSpec &arch) const override;
|
|
|
|
lldb::ObjectFileSP GetObjectFile(const lldb_private::FileSpec *file) override;
|
|
|
|
//------------------------------------------------------------------
|
|
// PluginInterface protocol
|
|
//------------------------------------------------------------------
|
|
lldb_private::ConstString GetPluginName() override;
|
|
|
|
uint32_t GetPluginVersion() override;
|
|
|
|
protected:
|
|
llvm::MachO::fat_header m_header;
|
|
std::vector<llvm::MachO::fat_arch> m_fat_archs;
|
|
|
|
static bool ParseHeader(lldb_private::DataExtractor &data,
|
|
llvm::MachO::fat_header &header,
|
|
std::vector<llvm::MachO::fat_arch> &fat_archs);
|
|
};
|
|
|
|
#endif // liblldb_ObjectContainerUniversalMachO_h_
|