Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
simgrid.git
13 months agoDisable MC stateful API when not running in MC
Martin Quinson [Sun, 2 Apr 2023 10:24:15 +0000 (12:24 +0200)]
Disable MC stateful API when not running in MC

This is a better fix for the null-dereference found by the sanitizers
since 2 nights. Instead of hiding the problem on these builds (as done
in previous commit), fix it for every builds.

13 months agoMC stateful API is only needed when stateful MC is compiled in
Martin Quinson [Sun, 2 Apr 2023 10:10:08 +0000 (12:10 +0200)]
MC stateful API is only needed when stateful MC is compiled in

13 months agoDon't use CLOEXEC
Martin Quinson [Sun, 2 Apr 2023 08:04:10 +0000 (10:04 +0200)]
Don't use CLOEXEC

In one case (Checker->App), we were removing it after setup so we
don't need it.

In the other case (App->App), it was just to be tiddy but it's not
really useful: Forking applications are barely supported anyway.

13 months agoEnsure that the clang optimizer does not swallow the segfault I'm expecting
Martin Quinson [Sat, 1 Apr 2023 22:34:25 +0000 (00:34 +0200)]
Ensure that the clang optimizer does not swallow the segfault I'm expecting

Instead of actually dereferencing the null pointer (which drives the
static analyzers nuts), simply send myself a SIGSEGV.

13 months agoIgnore empty replay path + hide a global (to avoid init fiasco)
Martin Quinson [Sat, 1 Apr 2023 21:45:32 +0000 (23:45 +0200)]
Ignore empty replay path + hide a global (to avoid init fiasco)

I was observing that the model_checking_mode global did not had the
same value when compiling with or without optimizations.

Maybe I had a sort of race condition on model_checking_mode during
initialization, or maybe the config element of the replay path was
either called before or after the initialization of the library, thus
replacing the model_checking_mode to REPLAY even if it was supposed to
be APP_SIDE in my case.

It's fixed now, but I'm not completely sure of which of these change
was the right one (probably the replay path). Both seem legit, so commit both.

13 months agoMore logs around the configuration of the MC variants
Martin Quinson [Sat, 1 Apr 2023 18:03:42 +0000 (20:03 +0200)]
More logs around the configuration of the MC variants

13 months agoReally diplay cmake parameters in the jenkins logs
Martin Quinson [Sat, 1 Apr 2023 17:54:30 +0000 (19:54 +0200)]
Really diplay cmake parameters in the jenkins logs

13 months agoJenkins: display cmake parameters in the logs
Martin Quinson [Sat, 1 Apr 2023 17:46:07 +0000 (19:46 +0200)]
Jenkins: display cmake parameters in the logs

13 months agoOption model-checking OFF by default
Martin Quinson [Sat, 1 Apr 2023 17:45:46 +0000 (19:45 +0200)]
Option model-checking OFF by default

13 months agoDon't qwack when the default empty string is passed as a replay path
Martin Quinson [Sat, 1 Apr 2023 15:56:56 +0000 (17:56 +0200)]
Don't qwack when the default empty string is passed as a replay path

13 months agoRevert "Also valgrind childs in CI, to valgrind MC apps"
Martin Quinson [Sat, 1 Apr 2023 10:20:48 +0000 (12:20 +0200)]
Revert "Also valgrind childs in CI, to valgrind MC apps"

This is already done in Tests.cmake (note so in my_valgrind.pl)

This reverts commit ee681140d428f4adb2cbfde207a04a4fc5a84b95.

13 months agoFix an initialization race around the AppSide
Martin Quinson [Sat, 1 Apr 2023 09:45:54 +0000 (11:45 +0200)]
Fix an initialization race around the AppSide

13 months agoFix make distcheck
Martin Quinson [Sat, 1 Apr 2023 00:42:18 +0000 (02:42 +0200)]
Fix make distcheck

13 months agoAlso valgrind childs in CI, to valgrind MC apps
Martin Quinson [Sat, 1 Apr 2023 00:32:40 +0000 (02:32 +0200)]
Also valgrind childs in CI, to valgrind MC apps

13 months agoOnly compile stateless MC when libevent is found
Martin Quinson [Sat, 1 Apr 2023 00:30:43 +0000 (02:30 +0200)]
Only compile stateless MC when libevent is found

13 months agoRename SIMGRID_HAVE_MC into SIMGRID_HAVE_STATEFUL_MC (so that MC can be optional...
Martin Quinson [Fri, 31 Mar 2023 22:58:56 +0000 (00:58 +0200)]
Rename SIMGRID_HAVE_MC into SIMGRID_HAVE_STATEFUL_MC (so that MC can be optional again)

13 months agoFix non-MC builds when MC-only dependencies are missing
Martin Quinson [Fri, 31 Mar 2023 22:21:16 +0000 (00:21 +0200)]
Fix non-MC builds when MC-only dependencies are missing

13 months agoCompile the safe part of MC in default mode too
Martin Quinson [Fri, 31 Mar 2023 21:48:26 +0000 (23:48 +0200)]
Compile the safe part of MC in default mode too

Safety properties (with no checkpointing) are not requiring anything
weird nowadays. Liveness properties, communication determinism and
state-equality reductions are not considered safe as they still need
some memory introspection black magic.

13 months agoTry to please the ultramodern clang running on FreeBSD by properly giving a copy...
Martin Quinson [Fri, 31 Mar 2023 16:33:59 +0000 (18:33 +0200)]
Try to please the ultramodern clang running on FreeBSD by properly giving a copy operator to the abstract class too

We should stop using the copy operator, and use a nice and clean
clone() call instead. Mathieu's on it.

13 months agoFix doc on how to select the compiler before compiling
Martin Quinson [Fri, 31 Mar 2023 14:41:39 +0000 (16:41 +0200)]
Fix doc on how to select the compiler before compiling

13 months agoMerge branch 'master' into 'master'
Martin Quinson [Fri, 31 Mar 2023 15:59:36 +0000 (15:59 +0000)]
Merge branch 'master' into 'master'

Guiding Backtrack in DFSExplorer

See merge request simgrid/simgrid!143

13 months ago[gitlab-ci] Run "make distcheck-configure" for merge requests.
Arnaud Giersch [Fri, 31 Mar 2023 14:56:04 +0000 (16:56 +0200)]
[gitlab-ci] Run "make distcheck-configure" for merge requests.

13 months agoAllow to skip some stages of "make distcheck".
Arnaud Giersch [Fri, 31 Mar 2023 14:48:02 +0000 (16:48 +0200)]
Allow to skip some stages of "make distcheck".

Now:
* "make distcheck-archive" only checks the archive
* "make distcheck-configure" also runs cmake et checks the file MANIFEST.in
* "make distcheck" depends on the previous stages, and runs the full build+install+tests

13 months agoCorrectly select the clang compiler on gitlab CI
Martin Quinson [Fri, 31 Mar 2023 14:39:21 +0000 (16:39 +0200)]
Correctly select the clang compiler on gitlab CI

13 months agoGitlab CI: Use clang on modelchecker builds, for MRs
Martin Quinson [Fri, 31 Mar 2023 13:58:32 +0000 (15:58 +0200)]
Gitlab CI: Use clang on modelchecker builds, for MRs

13 months agoFix clang builds
Martin Quinson [Fri, 31 Mar 2023 13:55:42 +0000 (15:55 +0200)]
Fix clang builds

13 months agoAdd a small implementation note in MC
Martin Quinson [Wed, 29 Mar 2023 08:00:25 +0000 (10:00 +0200)]
Add a small implementation note in MC

13 months agoMerge branch 'master' into 'master'
Martin Quinson [Fri, 31 Mar 2023 11:54:08 +0000 (11:54 +0000)]
Merge branch 'master' into 'master'

Add battery plugin and fix DAG doc

See merge request simgrid/simgrid!142

13 months agoAdd battery plugin and fix DAG doc
Adrien [Fri, 31 Mar 2023 11:54:07 +0000 (11:54 +0000)]
Add battery plugin and fix DAG doc

13 months agoMerge branch 'master' of https://framagit.org/simgrid/simgrid
mlaurent [Thu, 30 Mar 2023 20:15:33 +0000 (22:15 +0200)]
Merge branch 'master' of https://framagit.org/simgrid/simgrid

13 months agoRename guide as strategy and fix counter-example display with recipe
mlaurent [Thu, 30 Mar 2023 20:09:31 +0000 (22:09 +0200)]
Rename guide as strategy and fix counter-example display with recipe

13 months agoReplace state copy with recipe: list of transition to replay a state
mlaurent [Thu, 30 Mar 2023 13:04:28 +0000 (15:04 +0200)]
Replace state copy with recipe: list of transition to replay a state

13 months agoCosmetics (help project_description.sh) [ci-skip].
Arnaud Giersch [Wed, 29 Mar 2023 10:32:40 +0000 (12:32 +0200)]
Cosmetics (help project_description.sh) [ci-skip].

13 months ago[jenkins] Remove stale sockets from simgrid-mc.
Arnaud Giersch [Wed, 29 Mar 2023 09:01:22 +0000 (11:01 +0200)]
[jenkins] Remove stale sockets from simgrid-mc.

13 months agoAdd missing file
mlaurent [Wed, 29 Mar 2023 08:27:18 +0000 (10:27 +0200)]
Add missing file

13 months agoChange opened states for a priority queue
mlaurent [Tue, 28 Mar 2023 11:55:17 +0000 (13:55 +0200)]
Change opened states for a priority queue

13 months agoAbide by both compiler warnings
mlaurent [Mon, 27 Mar 2023 20:43:54 +0000 (22:43 +0200)]
Abide by both compiler warnings

13 months agoNow handle random transition and multiple times transitions
mlaurent [Mon, 27 Mar 2023 18:19:28 +0000 (20:19 +0200)]
Now handle random transition and multiple times transitions

13 months agoMerge branch 'master' of https://framagit.org/simgrid/simgrid
mlaurent [Mon, 27 Mar 2023 08:24:38 +0000 (10:24 +0200)]
Merge branch 'master' of https://framagit.org/simgrid/simgrid

13 months agoActivate the stdobject test now that it works
Martin Quinson [Mon, 27 Mar 2023 07:00:50 +0000 (09:00 +0200)]
Activate the stdobject test now that it works

13 months agoDon't set a really short timeout on sendsend now that this test works
Martin Quinson [Mon, 27 Mar 2023 07:00:25 +0000 (09:00 +0200)]
Don't set a really short timeout on sendsend now that this test works

13 months agoRevert "Revalidate tesh files now that safety checking is based on reforks"
Martin Quinson [Sun, 26 Mar 2023 20:01:11 +0000 (22:01 +0200)]
Revert "Revalidate tesh files now that safety checking is based on reforks"

We can revert this, as we don't re-initialize again and again the
application in refork mode. Instead, we fork a pre-initialized app.

This reverts commit b2a9ee8e090af818cca9e72cd0e44fa1b91586b0.

13 months agoImplement reforks by forking the application, to save the app exec time
Martin Quinson [Sun, 26 Mar 2023 19:56:46 +0000 (21:56 +0200)]
Implement reforks by forking the application, to save the app exec time

Instead of forking from the checker and exec()ing the application, we
now fork+exec an application that we use as a proxy to the real
application process.

When we need a new application process, we fork it from the proxy,
which is much faster as it's already initialized.

The extra complexity is when the socket closes abruptly on the Checker
side, which means that the application died. We cannot waitpid() on
the app directly, as it's our grandchild. So, we have to ask the proxy
to do the waitpid for us and return the status.

13 months agoAllow up to 30 elements in ENUM_CLASS
Martin Quinson [Sun, 26 Mar 2023 19:43:31 +0000 (21:43 +0200)]
Allow up to 30 elements in ENUM_CLASS

13 months agomemset 0 the memory that is sent over the network
Martin Quinson [Sat, 25 Mar 2023 15:33:06 +0000 (16:33 +0100)]
memset 0 the memory that is sent over the network

13 months agoMC protocol: rename INITIAL_ADDRESSES msg to NEED_MEMINFO
Martin Quinson [Sat, 25 Mar 2023 15:06:56 +0000 (16:06 +0100)]
MC protocol: rename INITIAL_ADDRESSES msg to NEED_MEMINFO

13 months agoActually, now that the appside is not ptraced, there is no point killing it
Martin Quinson [Sat, 25 Mar 2023 14:36:41 +0000 (15:36 +0100)]
Actually, now that the appside is not ptraced, there is no point killing it

Closing the socket is enough; it will exit on its self.

Also, there is no point waitpid()ing it, as the libevent loop is
already doing so.

13 months agoInvert another logic error: we need ptrace when we need mem_info, not the opposite
Martin Quinson [Sat, 25 Mar 2023 11:17:28 +0000 (12:17 +0100)]
Invert another logic error: we need ptrace when we need mem_info, not the opposite

13 months agoThis test is always false, as we asserted so just above
Martin Quinson [Sat, 25 Mar 2023 10:24:06 +0000 (11:24 +0100)]
This test is always false, as we asserted so just above

13 months agoDo not ask for memory info when restarting in refork mode
Martin Quinson [Sat, 25 Mar 2023 10:18:58 +0000 (11:18 +0100)]
Do not ask for memory info when restarting in refork mode

13 months agoUse a portable name for SIGABRT
Martin Quinson [Fri, 24 Mar 2023 22:33:21 +0000 (23:33 +0100)]
Use a portable name for SIGABRT

13 months agoThat test seems to pass nowadays
Martin Quinson [Fri, 24 Mar 2023 22:32:59 +0000 (23:32 +0100)]
That test seems to pass nowadays

13 months agoTry to use the same test file for non-linux now that we don't use ptrace
Martin Quinson [Fri, 24 Mar 2023 22:10:43 +0000 (23:10 +0100)]
Try to use the same test file for non-linux now that we don't use ptrace

13 months agoMC: disable personality() as it fails on CI and is not mandatory
Martin Quinson [Fri, 24 Mar 2023 22:06:32 +0000 (23:06 +0100)]
MC: disable personality() as it fails on CI and is not mandatory

13 months agoRevalidate tesh files now that safety checking is based on reforks
Martin Quinson [Fri, 24 Mar 2023 21:06:47 +0000 (22:06 +0100)]
Revalidate tesh files now that safety checking is based on reforks

13 months agoFix the refork feature by not ptracing App so that it dies properly
Martin Quinson [Fri, 24 Mar 2023 21:06:04 +0000 (22:06 +0100)]
Fix the refork feature by not ptracing App so that it dies properly

13 months agoMore explicit error message
Martin Quinson [Fri, 24 Mar 2023 21:00:34 +0000 (22:00 +0100)]
More explicit error message

13 months agoFix another sonar warning
Martin Quinson [Thu, 23 Mar 2023 23:00:53 +0000 (00:00 +0100)]
Fix another sonar warning

13 months agoDelete redundant blank lines at the start of a code blocks (CodeFactor).
Arnaud Giersch [Fri, 24 Mar 2023 13:54:41 +0000 (14:54 +0100)]
Delete redundant blank lines at the start of a code blocks (CodeFactor).

13 months agoAdd copy constructor to state, so we can backtrack different ways
mlaurent [Fri, 24 Mar 2023 15:23:47 +0000 (16:23 +0100)]
Add copy constructor to state, so we can backtrack different ways

13 months agoStrengthen debug messages on channel send/recv.
Arnaud Giersch [Fri, 24 Mar 2023 13:02:57 +0000 (14:02 +0100)]
Strengthen debug messages on channel send/recv.

13 months agoSimplify member initialization.
Arnaud Giersch [Thu, 23 Mar 2023 11:10:25 +0000 (12:10 +0100)]
Simplify member initialization.

13 months agoFix test: program needs exactly 2 processes.
Arnaud Giersch [Mon, 20 Mar 2023 10:31:24 +0000 (11:31 +0100)]
Fix test: program needs exactly 2 processes.

13 months agoReduce scope for variable.
Arnaud Giersch [Thu, 16 Mar 2023 16:28:51 +0000 (17:28 +0100)]
Reduce scope for variable.

13 months agoSimplify loop.
Arnaud Giersch [Mon, 20 Feb 2023 18:24:23 +0000 (19:24 +0100)]
Simplify loop.

13 months agoDetermine n_transitions on receiving side (and remove it from the message).
Arnaud Giersch [Mon, 20 Feb 2023 18:19:19 +0000 (19:19 +0100)]
Determine n_transitions on receiving side (and remove it from the message).

13 months agoThere's no need to compute the total transition count anymore.
Arnaud Giersch [Mon, 20 Feb 2023 18:15:17 +0000 (19:15 +0100)]
There's no need to compute the total transition count anymore.

13 months agoRemove superfluous test, and reduce depth of nested statements.
Arnaud Giersch [Mon, 20 Feb 2023 18:07:25 +0000 (19:07 +0100)]
Remove superfluous test, and reduce depth of nested statements.

13 months agoMerge loops and get rid of the "probes" temporary vector.
Arnaud Giersch [Mon, 20 Feb 2023 18:07:07 +0000 (19:07 +0100)]
Merge loops and get rid of the "probes" temporary vector.

13 months agoMerge branch 'master' of https://framagit.org/simgrid/simgrid
mlaurent [Fri, 24 Mar 2023 09:16:12 +0000 (10:16 +0100)]
Merge branch 'master' of https://framagit.org/simgrid/simgrid

13 months agoDont use handle_waitpid after we killed the App, as this function may report this...
Martin Quinson [Thu, 23 Mar 2023 21:38:38 +0000 (22:38 +0100)]
Dont use handle_waitpid after we killed the App, as this function may report this as an error

13 months agoActually, read()=0 is not an issue in the AppSide
Martin Quinson [Thu, 23 Mar 2023 20:58:46 +0000 (21:58 +0100)]
Actually, read()=0 is not an issue in the AppSide

it simply means that the checker closed the socket on its side, so we
should quit ASAP without complaining.

13 months agoMerge branch 'master' of https://framagit.org/simgrid/simgrid
mlaurent [Thu, 23 Mar 2023 08:58:49 +0000 (09:58 +0100)]
Merge branch 'master' of https://framagit.org/simgrid/simgrid

13 months agotry to fix stack handling
mlaurent [Thu, 23 Mar 2023 08:50:33 +0000 (09:50 +0100)]
try to fix stack handling

13 months agoFix some easy sonar smells
Martin Quinson [Wed, 22 Mar 2023 22:04:28 +0000 (23:04 +0100)]
Fix some easy sonar smells

const-ness, try_emplace, attribute noreturn, ...

The most important one is the TransitionObjectAccess one, where a
field in the subclass was hiding a field of the same name in the
superclass. Maybe the bug I was experiencing in that area was related.

13 months agoFix two sonar bugs
Martin Quinson [Wed, 22 Mar 2023 21:35:16 +0000 (22:35 +0100)]
Fix two sonar bugs

- don't throw from the destructor
- don't slice objects (downcast objects instead of downcasting
  references). I suspect that this one is a false positive but the
  tests still pass this way so let's go.

13 months agoChange an example to take its platform file from the command line if provided
Martin Quinson [Wed, 22 Mar 2023 20:57:01 +0000 (21:57 +0100)]
Change an example to take its platform file from the command line if provided

13 months agoMerge branch 'udpor-phase6' into 'master'
Martin Quinson [Wed, 22 Mar 2023 20:43:42 +0000 (20:43 +0000)]
Merge branch 'udpor-phase6' into 'master'

Phase 6 of UDPOR Integration: Add `K`-partial alternatives computation + clean up phase

See merge request simgrid/simgrid!139

13 months agojenkins::Flags if you run the tests, be verbose on errors [no-ci]
Martin Quinson [Wed, 22 Mar 2023 08:17:12 +0000 (09:17 +0100)]
jenkins::Flags if you run the tests, be verbose on errors [no-ci]

13 months agoMake sure that the dtor of CheckerSide actually kills the application and waits for it
Martin Quinson [Tue, 21 Mar 2023 20:48:55 +0000 (21:48 +0100)]
Make sure that the dtor of CheckerSide actually kills the application and waits for it

13 months agoFix the liveness tests when the reforks are compiled in but not activated
Martin Quinson [Tue, 21 Mar 2023 20:06:51 +0000 (21:06 +0100)]
Fix the liveness tests when the reforks are compiled in but not activated

13 months agofix order of execute_next calls
mlaurent [Tue, 21 Mar 2023 10:55:16 +0000 (11:55 +0100)]
fix order of execute_next calls

13 months agoManually handle the memory associated to the libevent events
Martin Quinson [Mon, 20 Mar 2023 22:44:59 +0000 (23:44 +0100)]
Manually handle the memory associated to the libevent events

The previous version with std::unique_ptr resulted in segfaults errors
reported by valgrind, and I fail to get it right.

13 months agoDo not initialize the App's memory introspection if it's not needed
Martin Quinson [Mon, 20 Mar 2023 22:27:39 +0000 (23:27 +0100)]
Do not initialize the App's memory introspection if it's not needed

Reforks are still not activated in this code, as the DFS constructor
pretends that it needs memory introspection when it does not. The
version activating reforks is currently commented here, if you want to
play with it.

Things seem more or less working with this change. Known issues:
 - liveness checking is killed by a out-of-bounds access to a vector
   while handling the property automaton. This is the case even when
   reforks are not activated, making this change improper for the
   master branch.
 - The checker is not very good at killing the application in refork
   mode, and many processes remain around until after they are
   abandoned by their checker.
   I'm not sure of whether they only consume memory or whether they
   also burn the CPU in an active loop. In both cases, this is ...
   suboptimal.
   This point is OK when not activating reforks.
 - valgrind reports some sort of double free on the libevent's events.
   I fail to get the std::unique_ptr thing right. See next commit.

13 months agoPut everything in position to re-fork the verified App
Martin Quinson [Mon, 20 Mar 2023 16:09:17 +0000 (17:09 +0100)]
Put everything in position to re-fork the verified App

If you pass "need_memory_introspection = false" to the Exploration
constructor, then the application is re-forked systematically instead
of taking snapshot that are then restored.

But it's still in progress, in the sense that the memory is still
introspected even if we don't need it. The network protocol still
needs to be changed so that the memory info are asked only if
"need_memory_introspection = true" and not otherwise.

For the time being, using reforks is very memory intensive for some
reason, and my computers gets to its knees when running the tests.
Until after the OOM killer saves me by cleaning stuff.

13 months agoMerge branch 'master' of https://framagit.org/simgrid/simgrid
mlaurent [Mon, 20 Mar 2023 15:52:48 +0000 (16:52 +0100)]
Merge branch 'master' of https://framagit.org/simgrid/simgrid

13 months agoadd wait guide and mofidication for the heuristic computation
mlaurent [Mon, 20 Mar 2023 15:52:22 +0000 (16:52 +0100)]
add wait guide and mofidication for the heuristic computation

13 months agoAddress minor comments in MR review
Maxwell Pirtle [Mon, 20 Mar 2023 08:41:58 +0000 (09:41 +0100)]
Address minor comments in MR review

13 months agoRemove empty Comb.cpp
Maxwell Pirtle [Mon, 20 Mar 2023 08:38:12 +0000 (09:38 +0100)]
Remove empty Comb.cpp

13 months agoAdd documentation for Comb data structure
Maxwell Pirtle [Mon, 20 Mar 2023 08:33:34 +0000 (09:33 +0100)]
Add documentation for Comb data structure

The Comb data structure lacked documentation
prior to this commit. Since it plays a pretty
important role in the computation of `K`-partial
alternatives, it was given a more extensive
explanation to ensure that it was used properly.

13 months agocosmetics
Martin Quinson [Sun, 19 Mar 2023 20:15:10 +0000 (21:15 +0100)]
cosmetics

13 months agoMove more of the CheckerSide creation logic to the object constructor
Martin Quinson [Sun, 19 Mar 2023 20:07:00 +0000 (21:07 +0100)]
Move more of the CheckerSide creation logic to the object constructor

13 months agoMC: disable Address Space Layout Randomization in the application
Martin Quinson [Sun, 19 Mar 2023 18:45:39 +0000 (19:45 +0100)]
MC: disable Address Space Layout Randomization in the application

This will allow to re-fork the application on restore without
invalidating all the metadata we accumulated in the previous
exploration traces.

13 months agoDiffer the creation of the RemoteProcessMemory to when we have enough information
Martin Quinson [Sun, 19 Mar 2023 15:18:05 +0000 (16:18 +0100)]
Differ the creation of the RemoteProcessMemory to when we have enough information

13 months agoBetter responsabilities splitup between CheckerSide and RemoteProcessMemory
Martin Quinson [Sun, 19 Mar 2023 14:57:19 +0000 (15:57 +0100)]
Better responsabilities splitup between CheckerSide and RemoteProcessMemory

13 months agoMove methods not related to Memory out of RemoteProcessMemory
Martin Quinson [Sun, 19 Mar 2023 14:20:23 +0000 (15:20 +0100)]
Move methods not related to Memory out of RemoteProcessMemory

Now that ModelChecker is gone, it's time to move to the next step of cleanup.

The goal is that CheckerSide is in charge of the interaction with the
application process and RemoteProcessMemory is in charge of its memory.

Right now, RemoteProcessMemory does a bit more, as it stores the pid
and whether or not the application process is running.

This is bad because we want to make RemoteProcessMemory optional, only
used when we need to introspect the application memory (liveness
checking, non-progression checking, etc), so that we can run the app
in valgrind when we don't need to introspect its memory (safety
checking without non-progression checking).

I know I just moved this chunks of code from ModelChecker to
RemoteProcessMemory to now move it further, and I'm sorry for the
noise, but this code drives me nuts and I need to clean it step by step.

13 months agoFinally kill the now empty ModelChecker class
Martin Quinson [Sun, 19 Mar 2023 14:01:44 +0000 (15:01 +0100)]
Finally kill the now empty ModelChecker class

13 months agoMove the memory handling of RemoteProcessMemory singleton from ModelChecker to Checke...
Martin Quinson [Sun, 19 Mar 2023 13:50:37 +0000 (14:50 +0100)]
Move the memory handling of RemoteProcessMemory singleton from ModelChecker to CheckerSide

13 months agoMove handle_message from ModelChecker to RemoteProcessMemory
Martin Quinson [Sun, 19 Mar 2023 13:29:05 +0000 (14:29 +0100)]
Move handle_message from ModelChecker to RemoteProcessMemory

13 months agoMove handle_waitpid from ModelChecker to RemoteProcessMemory
Martin Quinson [Sun, 19 Mar 2023 12:54:23 +0000 (13:54 +0100)]
Move handle_waitpid from ModelChecker to RemoteProcessMemory