1/* 2 * Copyright 2009, Ingo Weinhold, ingo_weinhold@gmx.de. 3 * Distributed under the terms of the MIT License. 4 */ 5#ifndef DEBUGGER_IMAGE_DEBUG_INFO_H 6#define DEBUGGER_IMAGE_DEBUG_INFO_H 7 8 9#include "ImageInfo.h" 10#include "SpecificImageDebugInfo.h" 11 12 13class Architecture; 14class DebuggerInterface; 15class SymbolInfo; 16 17 18class DebuggerImageDebugInfo : public SpecificImageDebugInfo { 19public: 20 DebuggerImageDebugInfo( 21 const ImageInfo& imageInfo, 22 DebuggerInterface* debuggerInterface, 23 Architecture* architecture); 24 virtual ~DebuggerImageDebugInfo(); 25 26 status_t Init(); 27 28 virtual status_t GetFunctions( 29 BObjectList<FunctionDebugInfo>& functions); 30 virtual status_t GetType(GlobalTypeCache* cache, 31 const BString& name, 32 const TypeLookupConstraints& constraints, 33 Type*& _type); 34 virtual AddressSectionType GetAddressSectionType(target_addr_t address); 35 virtual status_t CreateFrame(Image* image, 36 FunctionInstance* functionInstance, 37 CpuState* cpuState, 38 bool getFullFrameInfo, 39 target_addr_t returnFunctionAddress, 40 StackFrame*& _previousFrame, 41 CpuState*& _previousCpuState); 42 virtual status_t GetStatement(FunctionDebugInfo* function, 43 target_addr_t address, 44 Statement*& _statement); 45 virtual status_t GetStatementAtSourceLocation( 46 FunctionDebugInfo* function, 47 const SourceLocation& sourceLocation, 48 Statement*& _statement); 49 50 virtual status_t GetSourceLanguage(FunctionDebugInfo* function, 51 SourceLanguage*& _language); 52 53 virtual ssize_t ReadCode(target_addr_t address, void* buffer, 54 size_t size); 55 56 virtual status_t AddSourceCodeInfo(LocatableFile* file, 57 FileSourceCode* sourceCode); 58 59private: 60 ImageInfo fImageInfo; 61 DebuggerInterface* fDebuggerInterface; 62 Architecture* fArchitecture; 63}; 64 65 66#endif // DEBUGGER_IMAGE_DEBUG_INFO_H 67