X-Git-Url: https://git.siccegge.de//index.cgi?p=frida%2Ffrida.git;a=blobdiff_plain;f=src%2Fcore%2FFunction.hxx;h=3a328f6d203c027b57acf18b034477d4ff7192cd;hp=d567c28c4828b4763378fd0cbed5b5adb3a42795;hb=HEAD;hpb=3493bceb6690f53900d2a4524401990c601b1464 diff --git a/src/core/Function.hxx b/src/core/Function.hxx index d567c28..3a328f6 100644 --- a/src/core/Function.hxx +++ b/src/core/Function.hxx @@ -6,20 +6,21 @@ class InformationManager; class QXmlStreamWriter; +class QXmlStreamReader; class Function { public: - uint64_t getStartAddress() const { - return start_address; - } + uint64_t getStartAddress() const { return start_address; } - std::string getName() const - { return name; } + std::string getName() const { return name; } void setName(const std::string& new_name); - InformationManager* getManager() const { - return manager; - } + InformationManager* getManager() const { return manager; } + + /* Dynamic functions are the ones which are imported from shared + * libraries and not structly part of the binary at hand + */ + bool isDynamic() const { return dynamic; } void addBasicBlock(BasicBlock* block) { _blocks.insert(std::make_pair(block->getStartAddress(), block)); @@ -30,11 +31,14 @@ public: } void serialize(QXmlStreamWriter& stream); + static Function* deserialize(QXmlStreamReader& stream, InformationManager* manager); + private: - Function(uint64_t start_address, InformationManager* manager); + Function(uint64_t start_address, bool dynamic, InformationManager* manager); std::string name; uint64_t start_address; + bool dynamic; InformationManager * manager; std::map _blocks;