Both LLVM and LLDB implement DWARFAbbreviationDeclaration. As of
631ff46cbf, llvm's implementation of
DWARFAbbreviationDeclaration::extract behaves the same as LLDB's
implementation, making it easier to merge the implementations.
The only major difference between LLDB's implementation and LLVM's
implementation is that LLVM's DWARFAbbreviationDeclaration is slightly
larger. Specifically, it has some metadata that keeps track of the size
of a declaration (if it has a fixed size) so that it can potentially
optimize extraction in some scenarios. I think this increase in size
should be acceptable and possibly useful on the LLDB side.
Differential Revision: https://reviews.llvm.org/D150716
36 lines
1.0 KiB
C++
36 lines
1.0 KiB
C++
//===-- DWARFDefines.h ------------------------------------------*- C++ -*-===//
|
|
//
|
|
// 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
|
|
//
|
|
//===----------------------------------------------------------------------===//
|
|
|
|
#ifndef LLDB_SOURCE_PLUGINS_SYMBOLFILE_DWARF_DWARFDEFINES_H
|
|
#define LLDB_SOURCE_PLUGINS_SYMBOLFILE_DWARF_DWARFDEFINES_H
|
|
|
|
#include "lldb/Core/dwarf.h"
|
|
#include <cstdint>
|
|
|
|
namespace lldb_private {
|
|
|
|
typedef uint32_t DRC_class; // Holds DRC_* class bitfields
|
|
|
|
const char *DW_TAG_value_to_name(uint32_t val);
|
|
|
|
const char *DW_AT_value_to_name(uint32_t val);
|
|
|
|
const char *DW_FORM_value_to_name(uint32_t val);
|
|
|
|
const char *DW_OP_value_to_name(uint32_t val);
|
|
|
|
const char *DW_ATE_value_to_name(uint32_t val);
|
|
|
|
const char *DW_LANG_value_to_name(uint32_t val);
|
|
|
|
const char *DW_LNS_value_to_name(uint32_t val);
|
|
|
|
} // namespace lldb_private
|
|
|
|
#endif // LLDB_SOURCE_PLUGINS_SYMBOLFILE_DWARF_DWARFDEFINES_H
|