A
lgorithmique
N
umérique
D
istribuée
Public GIT Repository
projects
/
simgrid.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
[pvs-studio] Initialize every members of class.
[simgrid.git]
/
src
/
mc
/
remote
/
RemoteProcess.hpp
diff --git
a/src/mc/remote/RemoteProcess.hpp
b/src/mc/remote/RemoteProcess.hpp
index
eda86d9
..
a183c93
100644
(file)
--- a/
src/mc/remote/RemoteProcess.hpp
+++ b/
src/mc/remote/RemoteProcess.hpp
@@
-12,8
+12,10
@@
#include "src/mc/AddressSpace.hpp"
#include "src/mc/inspect/ObjectInformation.hpp"
#include "src/mc/remote/RemotePtr.hpp"
#include "src/mc/AddressSpace.hpp"
#include "src/mc/inspect/ObjectInformation.hpp"
#include "src/mc/remote/RemotePtr.hpp"
+#include "src/xbt/memory_map.hpp"
#include "src/xbt/mmalloc/mmprivate.h"
#include "src/xbt/mmalloc/mmprivate.h"
+#include <libunwind.h>
#include <vector>
namespace simgrid {
#include <vector>
namespace simgrid {
@@
-75,7
+77,7
@@
private:
public:
explicit RemoteProcess(pid_t pid);
~RemoteProcess() override;
public:
explicit RemoteProcess(pid_t pid);
~RemoteProcess() override;
- void init(xbt_mheap_t mmalloc_default_mdp,
void* maxpid, void* actors, void*
dead_actors);
+ void init(xbt_mheap_t mmalloc_default_mdp,
unsigned long* maxpid, xbt_dynar_t actors, xbt_dynar_t
dead_actors);
RemoteProcess(RemoteProcess const&) = delete;
RemoteProcess(RemoteProcess&&) = delete;
RemoteProcess(RemoteProcess const&) = delete;
RemoteProcess(RemoteProcess&&) = delete;
@@
-166,9
+168,9
@@
public:
/* ***************** */
private:
// Cache the address of the variables we read directly in the memory of remote
/* ***************** */
private:
// Cache the address of the variables we read directly in the memory of remote
-
void*
maxpid_addr_;
-
void*
actors_addr_;
-
void*
dead_actors_addr_;
+
RemotePtr<unsigned long>
maxpid_addr_;
+
RemotePtr<s_xbt_dynar_t>
actors_addr_;
+
RemotePtr<s_xbt_dynar_t>
dead_actors_addr_;
public:
std::vector<ActorInformation>& actors();
public:
std::vector<ActorInformation>& actors();
@@
-200,8
+202,7
@@
public:
return nullptr;
}
return nullptr;
}
- unsigned long get_maxpid() const;
- void get_actor_vectors(RemotePtr<s_xbt_dynar_t>& actors, RemotePtr<s_xbt_dynar_t>& dead_actors);
+ unsigned long get_maxpid() const { return this->read(maxpid_addr_); }
void dump_stack() const;
void dump_stack() const;
@@
-221,30
+222,28
@@
private:
std::vector<s_stack_region_t> stack_areas_;
std::vector<IgnoredHeapRegion> ignored_heap_;
std::vector<s_stack_region_t> stack_areas_;
std::vector<IgnoredHeapRegion> ignored_heap_;
-public:
- // object info
- // TODO, make private (first, objectify simgrid::mc::ObjectInformation*)
- std::vector<std::shared_ptr<ObjectInformation>> object_infos;
- std::shared_ptr<ObjectInformation> binary_info;
-
// Copies of MCed SMX data structures
// Copies of MCed SMX data structures
- /** Copy of `
simix_global->process_list
`
+ /** Copy of `
EngineImpl::actor_list_
`
*
*
- * See mc_smx.c.
+ * See mc_smx.c
pp
.
*/
std::vector<ActorInformation> smx_actors_infos;
*/
std::vector<ActorInformation> smx_actors_infos;
- /** Copy of `
simix_global->actors_to_destroy
`
+ /** Copy of `
EngineImpl::actors_to_destroy_
`
*
*
- * See mc_smx.c.
+ * See mc_smx.c
pp
.
*/
std::vector<ActorInformation> smx_dead_actors_infos;
*/
std::vector<ActorInformation> smx_dead_actors_infos;
-private:
/** State of the cache (which variables are up to date) */
int cache_flags_ = RemoteProcess::cache_none;
public:
/** State of the cache (which variables are up to date) */
int cache_flags_ = RemoteProcess::cache_none;
public:
+ // object info
+ // TODO, make private (first, objectify simgrid::mc::ObjectInformation*)
+ std::vector<std::shared_ptr<ObjectInformation>> object_infos;
+ std::shared_ptr<ObjectInformation> binary_info;
+
/** Address of the heap structure in the MCed process. */
RemotePtr<s_xbt_mheap_t> heap_address;
/** Address of the heap structure in the MCed process. */
RemotePtr<s_xbt_mheap_t> heap_address;
@@
-271,7
+270,7
@@
public:
* (with simgrid::mc::Process* / simgrid::mc::AddressSpace*
* and unw_context_t).
*/
* (with simgrid::mc::Process* / simgrid::mc::AddressSpace*
* and unw_context_t).
*/
- unw_addr_space_t unw_addr_space;
+ unw_addr_space_t unw_addr_space
= nullptr
;
/** Underlying libunwind address-space
*
/** Underlying libunwind address-space
*
@@
-279,11
+278,11
@@
public:
* operations of the native MC address space is currently delegated
* to this address space (either the local or a ptrace unwinder).
*/
* operations of the native MC address space is currently delegated
* to this address space (either the local or a ptrace unwinder).
*/
- unw_addr_space_t unw_underlying_addr_space;
+ unw_addr_space_t unw_underlying_addr_space
= nullptr
;
/** The corresponding context
*/
/** The corresponding context
*/
- void* unw_underlying_context;
+ void* unw_underlying_context
= nullptr
;
};
/** Open a FD to a remote process memory (`/dev/$pid/mem`) */
};
/** Open a FD to a remote process memory (`/dev/$pid/mem`) */