2009-09-21 04:39:40 +00:00
|
|
|
/*
|
|
|
|
* Copyright 2009, Ingo Weinhold, ingo_weinhold@gmx.de.
|
|
|
|
* Distributed under the terms of the MIT License.
|
|
|
|
*/
|
|
|
|
#ifndef STACK_FRAME_DEBUG_INFO_H
|
|
|
|
#define STACK_FRAME_DEBUG_INFO_H
|
|
|
|
|
|
|
|
|
|
|
|
#include <Referenceable.h>
|
|
|
|
|
|
|
|
#include "Types.h"
|
|
|
|
|
|
|
|
|
2009-10-05 03:12:16 +00:00
|
|
|
class ArrayIndexPath;
|
|
|
|
class ArrayType;
|
2009-09-27 04:52:43 +00:00
|
|
|
class Architecture;
|
2009-09-21 04:39:40 +00:00
|
|
|
class BaseType;
|
|
|
|
class DataMember;
|
|
|
|
class StackFrame;
|
|
|
|
class Type;
|
|
|
|
class ValueLocation;
|
|
|
|
|
|
|
|
|
|
|
|
class StackFrameDebugInfo : public Referenceable {
|
|
|
|
public:
|
2009-09-27 04:52:43 +00:00
|
|
|
StackFrameDebugInfo(Architecture* architecture);
|
2009-09-21 04:39:40 +00:00
|
|
|
virtual ~StackFrameDebugInfo();
|
|
|
|
|
|
|
|
virtual status_t ResolveObjectDataLocation(
|
|
|
|
StackFrame* stackFrame, Type* type,
|
2009-09-27 04:52:43 +00:00
|
|
|
const ValueLocation& objectLocation,
|
2009-09-21 04:39:40 +00:00
|
|
|
ValueLocation*& _location) = 0;
|
|
|
|
// returns a reference
|
2009-09-27 04:52:43 +00:00
|
|
|
status_t ResolveObjectDataLocation(
|
|
|
|
StackFrame* stackFrame, Type* type,
|
|
|
|
target_addr_t objectAddress,
|
|
|
|
ValueLocation*& _location);
|
|
|
|
// returns a reference
|
2009-09-21 04:39:40 +00:00
|
|
|
virtual status_t ResolveBaseTypeLocation(
|
|
|
|
StackFrame* stackFrame, Type* type,
|
|
|
|
BaseType* baseType,
|
|
|
|
const ValueLocation& parentLocation,
|
|
|
|
ValueLocation*& _location) = 0;
|
|
|
|
// returns a reference
|
|
|
|
virtual status_t ResolveDataMemberLocation(
|
|
|
|
StackFrame* stackFrame, Type* type,
|
|
|
|
DataMember* member,
|
|
|
|
const ValueLocation& parentLocation,
|
|
|
|
ValueLocation*& _location) = 0;
|
|
|
|
// returns a reference
|
2009-10-05 03:12:16 +00:00
|
|
|
virtual status_t ResolveArrayElementLocation(
|
|
|
|
StackFrame* stackFrame, ArrayType* type,
|
|
|
|
const ArrayIndexPath& indexPath,
|
|
|
|
const ValueLocation& parentLocation,
|
|
|
|
ValueLocation*& _location) = 0;
|
|
|
|
// returns a reference
|
2009-09-27 04:52:43 +00:00
|
|
|
|
|
|
|
protected:
|
|
|
|
Architecture* fArchitecture;
|
2009-09-21 04:39:40 +00:00
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
#endif // STACK_FRAME_DEBUG_INFO_H
|