* Copyright 2009, Ingo Weinhold, ingo_weinhold@gmx.de.
* Copyright 2013-2014, Rene Gollent, rene@gollent.com.
* Distributed under the terms of the MIT License.
*/
#ifndef DEBUGGER_IMAGE_DEBUG_INFO_H
#define DEBUGGER_IMAGE_DEBUG_INFO_H
#include "ImageInfo.h"
#include "SpecificImageDebugInfo.h"
class Architecture;
class DebuggerInterface;
class SymbolInfo;
class DebuggerImageDebugInfo : public SpecificImageDebugInfo {
public:
DebuggerImageDebugInfo(
const ImageInfo& imageInfo,
DebuggerInterface* debuggerInterface,
Architecture* architecture);
virtual ~DebuggerImageDebugInfo();
status_t Init();
virtual status_t GetFunctions(
const BObjectList<SymbolInfo, true>& symbols,
BObjectList<FunctionDebugInfo>& functions);
virtual status_t GetType(GlobalTypeCache* cache,
const BString& name,
const TypeLookupConstraints& constraints,
Type*& _type);
virtual bool HasType(const BString& name,
const TypeLookupConstraints& constraints)
const;
virtual AddressSectionType GetAddressSectionType(target_addr_t address);
virtual status_t CreateFrame(Image* image,
FunctionInstance* functionInstance,
CpuState* cpuState,
bool getFullFrameInfo,
ReturnValueInfoList* returnValueInfos,
StackFrame*& _previousFrame,
CpuState*& _previousCpuState);
virtual status_t GetStatement(FunctionDebugInfo* function,
target_addr_t address,
Statement*& _statement);
virtual status_t GetStatementAtSourceLocation(
FunctionDebugInfo* function,
const SourceLocation& sourceLocation,
Statement*& _statement);
virtual status_t GetSourceLanguage(FunctionDebugInfo* function,
SourceLanguage*& _language);
virtual ssize_t ReadCode(target_addr_t address, void* buffer,
size_t size);
virtual status_t AddSourceCodeInfo(LocatableFile* file,
FileSourceCode* sourceCode);
private:
ImageInfo fImageInfo;
DebuggerInterface* fDebuggerInterface;
Architecture* fArchitecture;
};
#endif