LLVM API Documentation

DWARFDebugFrame.h
Go to the documentation of this file.
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