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