* Copyright 2009, Ingo Weinhold, ingo_weinhold@gmx.de.
* Distributed under the terms of the MIT License.
*/
#ifndef DWARF_FUNCTION_DEBUG_INFO_H
#define DWARF_FUNCTION_DEBUG_INFO_H
#include <String.h>
#include "FunctionDebugInfo.h"
#include "SourceLocation.h"
class CompilationUnit;
class DIESubprogram;
class DwarfImageDebugInfo;
class TargetAddressRangeList;
class DwarfFunctionDebugInfo : public FunctionDebugInfo {
public:
DwarfFunctionDebugInfo(
DwarfImageDebugInfo* imageDebugInfo,
CompilationUnit* compilationUnit,
DIESubprogram* subprogramEntry,
TargetAddressRangeList* addressRanges,
const BString& name,
LocatableFile* sourceFile,
const SourceLocation& sourceLocation);
virtual ~DwarfFunctionDebugInfo();
virtual SpecificImageDebugInfo* GetSpecificImageDebugInfo() const;
virtual target_addr_t Address() const;
virtual target_size_t Size() const;
virtual const BString& Name() const;
virtual const BString& PrettyName() const;
virtual bool IsMain() const;
virtual LocatableFile* SourceFile() const;
virtual SourceLocation SourceStartLocation() const;
virtual SourceLocation SourceEndLocation() const;
CompilationUnit* GetCompilationUnit() const
{ return fCompilationUnit; }
DIESubprogram* SubprogramEntry() const
{ return fSubprogramEntry; }
private:
DwarfImageDebugInfo* fImageDebugInfo;
CompilationUnit* fCompilationUnit;
DIESubprogram* fSubprogramEntry;
TargetAddressRangeList* fAddressRanges;
BString fName;
LocatableFile* fSourceFile;
SourceLocation fSourceLocation;
};
#endif