X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/4fa75dd8262ed5c51d5c3219d38235976758889f..dc0b6bff49507332f7978675d174aa4fa9916fc2:/src/mc/Process.hpp?ds=sidebyside diff --git a/src/mc/Process.hpp b/src/mc/Process.hpp index 55ba5fdece..0b47eac56a 100644 --- a/src/mc/Process.hpp +++ b/src/mc/Process.hpp @@ -54,6 +54,13 @@ struct IgnoredRegion { size_t size; }; +struct IgnoredHeapRegion { + int block; + int fragment; + void *address; + size_t size; +}; + /** Representation of a process */ class Process final : public AddressSpace { @@ -161,6 +168,31 @@ public: } void privatized(bool privatized) { privatized_ = privatized; } + void ignore_global_variable(const char* name) + { + for (std::shared_ptr const& info : + this->object_infos) + info->remove_global_variable(name); + } + + std::vector& stack_areas() + { + return stack_areas_; + } + std::vector const& stack_areas() const + { + return stack_areas_; + } + + std::vector const& ignored_heap() const + { + return ignored_heap_; + } + void ignore_heap(IgnoredHeapRegion const& region); + void unignore_heap(void *address, size_t size); + + void ignore_local_variable(const char *var_name, const char *frame_name); + private: void init_memory_map_info(); void refresh_heap(); @@ -176,6 +208,9 @@ private: int clear_refs_fd_; int pagemap_fd_; bool privatized_; + std::vector stack_areas_; + std::vector ignored_heap_; + public: // object info // TODO, make private (first, objectify simgrid::mc::ObjectInformation*) std::vector> object_infos;