124943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner//===-- DWARFDebugMacinfo.cpp -----------------------------------*- C++ -*-===// 224943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner// 324943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner// The LLVM Compiler Infrastructure 424943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner// 524943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner// This file is distributed under the University of Illinois Open Source 624943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner// License. See LICENSE.TXT for details. 724943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner// 824943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner//===----------------------------------------------------------------------===// 924943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner 1024943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner#include "DWARFDebugMacinfo.h" 1124943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner 1224943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner#include "DWARFDebugMacinfoEntry.h" 1324943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner#include "SymbolFileDWARF.h" 1424943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner 1524943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner#include "lldb/Core/Stream.h" 1624943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner 1724943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerusing namespace lldb_private; 1824943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerusing namespace std; 1924943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner 2024943d2ee8bfaa7cf5893e4709143924157a5c1eChris LattnerDWARFDebugMacinfo::DWARFDebugMacinfo() 2124943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner{ 2224943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner} 2324943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner 2424943d2ee8bfaa7cf5893e4709143924157a5c1eChris LattnerDWARFDebugMacinfo::~DWARFDebugMacinfo() 2524943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner{ 2624943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner} 2724943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner 2824943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnervoid 2936da2aa6dc5ad9994b638ed09eb81c44cc05540bGreg ClaytonDWARFDebugMacinfo::Dump(Stream *s, const DataExtractor& macinfo_data, lldb::offset_t offset) 3024943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner{ 3124943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner DWARFDebugMacinfoEntry maninfo_entry; 3224943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner if (macinfo_data.GetByteSize() == 0) 3324943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner { 3424943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner s->PutCString("< EMPTY >\n"); 3524943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner return; 3624943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner } 3736da2aa6dc5ad9994b638ed09eb81c44cc05540bGreg Clayton if (offset == LLDB_INVALID_OFFSET) 3824943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner { 3924943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner offset = 0; 4024943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner while (maninfo_entry.Extract(macinfo_data, &offset)) 4124943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner maninfo_entry.Dump(s); 4224943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner } 4324943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner else 4424943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner { 4524943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner if (maninfo_entry.Extract(macinfo_data, &offset)) 4624943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner maninfo_entry.Dump(s); 4724943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner } 4824943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner} 49