2009-06-28 01:09:21 +04:00
|
|
|
/*
|
|
|
|
* Copyright 2009, Ingo Weinhold, ingo_weinhold@gmx.de.
|
|
|
|
* Distributed under the terms of the MIT License.
|
|
|
|
*/
|
|
|
|
#ifndef TEAM_DEBUG_INFO_H
|
|
|
|
#define TEAM_DEBUG_INFO_H
|
|
|
|
|
|
|
|
#include <ObjectList.h>
|
|
|
|
#include <Referenceable.h>
|
2009-07-08 00:47:39 +04:00
|
|
|
#include <util/OpenHashTable.h>
|
2009-06-28 01:09:21 +04:00
|
|
|
|
|
|
|
#include "ImageInfo.h"
|
|
|
|
|
|
|
|
|
|
|
|
class Architecture;
|
|
|
|
class DebuggerInterface;
|
2009-07-03 04:56:39 +04:00
|
|
|
class FileManager;
|
2009-07-08 00:47:39 +04:00
|
|
|
class Function;
|
|
|
|
class FunctionInstance;
|
2009-06-28 01:09:21 +04:00
|
|
|
class ImageDebugInfo;
|
|
|
|
class ImageInfo;
|
2009-07-02 02:09:33 +04:00
|
|
|
class LocatableFile;
|
2009-06-28 01:09:21 +04:00
|
|
|
class SpecificTeamDebugInfo;
|
|
|
|
|
|
|
|
|
|
|
|
class TeamDebugInfo : public Referenceable {
|
|
|
|
public:
|
|
|
|
TeamDebugInfo(
|
|
|
|
DebuggerInterface* debuggerInterface,
|
2009-07-03 04:56:39 +04:00
|
|
|
Architecture* architecture,
|
|
|
|
FileManager* fileManager);
|
2009-06-28 01:09:21 +04:00
|
|
|
~TeamDebugInfo();
|
|
|
|
|
|
|
|
status_t Init();
|
|
|
|
|
|
|
|
status_t LoadImageDebugInfo(const ImageInfo& imageInfo,
|
2009-07-02 02:09:33 +04:00
|
|
|
LocatableFile* imageFile,
|
2009-06-28 01:09:21 +04:00
|
|
|
ImageDebugInfo*& _imageDebugInfo);
|
|
|
|
|
2009-07-08 00:47:39 +04:00
|
|
|
// team is locked
|
|
|
|
status_t AddImageDebugInfo(
|
|
|
|
ImageDebugInfo* imageDebugInfo);
|
|
|
|
void RemoveImageDebugInfo(
|
|
|
|
ImageDebugInfo* imageDebugInfo);
|
|
|
|
|
2009-06-28 01:09:21 +04:00
|
|
|
private:
|
2009-07-08 00:47:39 +04:00
|
|
|
struct FunctionHashDefinition;
|
|
|
|
|
2009-06-28 01:09:21 +04:00
|
|
|
typedef BObjectList<SpecificTeamDebugInfo> SpecificInfoList;
|
2009-07-08 00:47:39 +04:00
|
|
|
typedef OpenHashTable<FunctionHashDefinition> FunctionTable;
|
2009-06-28 01:09:21 +04:00
|
|
|
|
|
|
|
private:
|
|
|
|
DebuggerInterface* fDebuggerInterface;
|
|
|
|
Architecture* fArchitecture;
|
2009-07-03 04:56:39 +04:00
|
|
|
FileManager* fFileManager;
|
2009-06-28 01:09:21 +04:00
|
|
|
SpecificInfoList fSpecificInfos;
|
2009-07-08 00:47:39 +04:00
|
|
|
FunctionTable* fFunctions;
|
2009-06-28 01:09:21 +04:00
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
#endif // TEAM_DEBUG_INFO_H
|