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
further reduce the amount of call sites for RemoteProcess::actors()
[simgrid.git]
/
src
/
mc
/
sosp
/
Snapshot.cpp
diff --git
a/src/mc/sosp/Snapshot.cpp
b/src/mc/sosp/Snapshot.cpp
index
b195356
..
bf91e7c
100644
(file)
--- a/
src/mc/sosp/Snapshot.cpp
+++ b/
src/mc/sosp/Snapshot.cpp
@@
-1,4
+1,4
@@
-/* Copyright (c) 2014-202
1
. The SimGrid Team. All rights reserved. */
+/* Copyright (c) 2014-202
2
. The SimGrid Team. All rights reserved. */
/* This program is free software; you can redistribute it and/or modify it
* under the terms of the license (GNU LGPL) which comes with this package. */
/* This program is free software; you can redistribute it and/or modify it
* under the terms of the license (GNU LGPL) which comes with this package. */
@@
-10,8
+10,7
@@
#include <cstddef> /* std::size_t */
XBT_LOG_NEW_DEFAULT_SUBCATEGORY(mc_snapshot, mc, "Taking and restoring snapshots");
#include <cstddef> /* std::size_t */
XBT_LOG_NEW_DEFAULT_SUBCATEGORY(mc_snapshot, mc, "Taking and restoring snapshots");
-namespace simgrid {
-namespace mc {
+namespace simgrid::mc {
/************************************* Take Snapshot ************************************/
/****************************************************************************************/
/************************************* Take Snapshot ************************************/
/****************************************************************************************/
@@
-58,6
+57,12
@@
static void fill_local_variables_values(mc_stack_frame_t stack_frame, Frame* sco
if (not valid_variable(¤t_variable, scope, (void*)stack_frame->ip))
continue;
if (not valid_variable(¤t_variable, scope, (void*)stack_frame->ip))
continue;
+ if (not current_variable.type) {
+ XBT_VERB("Ignore local variable without type: '%s' [%s]", current_variable.name.c_str(),
+ stack_frame->frame->name.c_str());
+ continue;
+ }
+
s_local_variable_t new_var;
new_var.subprogram = stack_frame->frame;
new_var.ip = stack_frame->ip;
s_local_variable_t new_var;
new_var.subprogram = stack_frame->frame;
new_var.ip = stack_frame->ip;
@@
-194,12
+199,9
@@
static void snapshot_ignore_restore(const simgrid::mc::Snapshot* snapshot)
remote(ignored_data.start));
}
remote(ignored_data.start));
}
-Snapshot::Snapshot(
int
num_state, RemoteProcess* process) : AddressSpace(process), num_state_(num_state)
+Snapshot::Snapshot(
long
num_state, RemoteProcess* process) : AddressSpace(process), num_state_(num_state)
{
{
- XBT_DEBUG("Taking snapshot %i", num_state);
-
- for (auto const& p : process->actors())
- enabled_processes_.insert(p.copy.get_buffer()->get_pid());
+ XBT_DEBUG("Taking snapshot %ld", num_state);
snapshot_handle_ignore(this);
snapshot_handle_ignore(this);
@@
-271,7
+273,7
@@
Region* Snapshot::get_region(const void* addr, Region* hinted_region) const
void Snapshot::restore(RemoteProcess* process) const
{
void Snapshot::restore(RemoteProcess* process) const
{
- XBT_DEBUG("Restore snapshot %
i
", num_state_);
+ XBT_DEBUG("Restore snapshot %
ld
", num_state_);
// Restore regions
for (std::unique_ptr<Region> const& region : snapshot_regions_) {
// Restore regions
for (std::unique_ptr<Region> const& region : snapshot_regions_) {
@@
-283,5
+285,4
@@
void Snapshot::restore(RemoteProcess* process) const
process->clear_cache();
}
process->clear_cache();
}
-} // namespace mc
-} // namespace simgrid
+} // namespace simgrid::mc