LLVM API Documentation
00001 //===-- DWARFDebugFrame.h - Parsing of .debug_frame -------------*- C++ -*-===// 00002 // 00003 // The LLVM Compiler Infrastructure 00004 // 00005 // This file is distributed under the University of Illinois Open Source 00006 // License. See LICENSE.TXT for details. 00007 // 00008 //===----------------------------------------------------------------------===// 00009 00010 #ifndef LLVM_LIB_DEBUGINFO_DWARFDEBUGFRAME_H 00011 #define LLVM_LIB_DEBUGINFO_DWARFDEBUGFRAME_H 00012 00013 #include "llvm/Support/DataExtractor.h" 00014 #include "llvm/Support/raw_ostream.h" 00015 #include <memory> 00016 #include <vector> 00017 00018 namespace llvm { 00019 00020 class FrameEntry; 00021 00022 /// \brief A parsed .debug_frame section 00023 /// 00024 class DWARFDebugFrame { 00025 public: 00026 DWARFDebugFrame(); 00027 ~DWARFDebugFrame(); 00028 00029 /// \brief Dump the section data into the given stream. 00030 void dump(raw_ostream &OS) const; 00031 00032 /// \brief Parse the section from raw data. 00033 /// data is assumed to be pointing to the beginning of the section. 00034 void parse(DataExtractor Data); 00035 00036 private: 00037 std::vector<std::unique_ptr<FrameEntry>> Entries; 00038 }; 00039 00040 00041 } // namespace llvm 00042 00043 #endif