#include "Plugins/ObjectFile/Breakpad/ObjectFileBreakpad.h"
#include "Plugins/ObjectFile/Breakpad/BreakpadRecords.h"
#include "lldb/Core/ModuleSpec.h"
#include "lldb/Core/PluginManager.h"
#include "lldb/Core/Section.h"
#include <optional>
usingnamespacelldb;
usingnamespacelldb_private;
usingnamespacelldb_private::breakpad;
LLDB_PLUGIN_DEFINE(…)
namespace {
struct Header { … };
}
std::optional<Header> Header::parse(llvm::StringRef text) { … }
char ObjectFileBreakpad::ID;
void ObjectFileBreakpad::Initialize() { … }
void ObjectFileBreakpad::Terminate() { … }
ObjectFile *ObjectFileBreakpad::CreateInstance(
const ModuleSP &module_sp, DataBufferSP data_sp, offset_t data_offset,
const FileSpec *file, offset_t file_offset, offset_t length) { … }
ObjectFile *ObjectFileBreakpad::CreateMemoryInstance(
const ModuleSP &module_sp, WritableDataBufferSP data_sp,
const ProcessSP &process_sp, addr_t header_addr) { … }
size_t ObjectFileBreakpad::GetModuleSpecifications(
const FileSpec &file, DataBufferSP &data_sp, offset_t data_offset,
offset_t file_offset, offset_t length, ModuleSpecList &specs) { … }
ObjectFileBreakpad::ObjectFileBreakpad(const ModuleSP &module_sp,
DataBufferSP &data_sp,
offset_t data_offset,
const FileSpec *file, offset_t offset,
offset_t length, ArchSpec arch,
UUID uuid)
: … { … }
bool ObjectFileBreakpad::ParseHeader() { … }
void ObjectFileBreakpad::ParseSymtab(Symtab &symtab) { … }
void ObjectFileBreakpad::CreateSections(SectionList &unified_section_list) { … }