fce4895d18
- Add subfolder src/kits/debugger which contains the debugger's core functionality and lower layers. Correspondingly add headers/private/debugger for shared headers to be used by clients such as the Debugger application and eventual remote_debug_server. Adjust various files to account for differences as a result of the split and moves. - Add libdebugger.so to minimal Jamfile.
63 lines
1.4 KiB
C++
63 lines
1.4 KiB
C++
/*
|
|
* Copyright 2009, Ingo Weinhold, ingo_weinhold@gmx.de.
|
|
* Distributed under the terms of the MIT License.
|
|
*/
|
|
#ifndef STATEMENT_H
|
|
#define STATEMENT_H
|
|
|
|
#include <Referenceable.h>
|
|
|
|
#include "SourceLocation.h"
|
|
#include "TargetAddressRange.h"
|
|
#include "Types.h"
|
|
|
|
|
|
class Statement : public BReferenceable {
|
|
public:
|
|
virtual ~Statement();
|
|
|
|
virtual SourceLocation StartSourceLocation() const = 0;
|
|
|
|
virtual TargetAddressRange CoveringAddressRange() const = 0;
|
|
|
|
virtual int32 CountAddressRanges() const = 0;
|
|
virtual TargetAddressRange AddressRangeAt(int32 index) const = 0;
|
|
|
|
virtual bool ContainsAddress(target_addr_t address)
|
|
const = 0;
|
|
};
|
|
|
|
|
|
class AbstractStatement : public Statement {
|
|
public:
|
|
AbstractStatement(const SourceLocation& start);
|
|
|
|
virtual SourceLocation StartSourceLocation() const;
|
|
|
|
protected:
|
|
SourceLocation fStart;
|
|
};
|
|
|
|
|
|
class ContiguousStatement : public AbstractStatement {
|
|
public:
|
|
ContiguousStatement(const SourceLocation& start,
|
|
const TargetAddressRange& range);
|
|
|
|
const TargetAddressRange& AddressRange() const
|
|
{ return fRange; }
|
|
|
|
virtual TargetAddressRange CoveringAddressRange() const;
|
|
|
|
virtual int32 CountAddressRanges() const;
|
|
virtual TargetAddressRange AddressRangeAt(int32 index) const;
|
|
|
|
virtual bool ContainsAddress(target_addr_t address) const;
|
|
|
|
protected:
|
|
TargetAddressRange fRange;
|
|
};
|
|
|
|
|
|
#endif // STATEMENT_H
|