Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
cut the backtrace displayed from sthread to the sthread_create to hide useless cruft
authorMartin Quinson <martin.quinson@ens-rennes.fr>
Wed, 15 Nov 2023 21:12:41 +0000 (22:12 +0100)
committerMartin Quinson <martin.quinson@ens-rennes.fr>
Wed, 15 Nov 2023 21:12:41 +0000 (22:12 +0100)
examples/sthread/pthread-mc-mutex-simpledeadlock.tesh
src/xbt/backtrace.cpp

index 8a23f34..e384d25 100644 (file)
@@ -1,10 +1,9 @@
 
-# This test raises a deadlock, thus the return code of 3
-! expect return 3
-
 # We ignore the LD_PRELOAD lines from the expected output because they contain the build path
 ! ignore .*LD_PRELOAD.*
 
+# This test raises a deadlock, thus the return code of 3
+! expect return 3
 $ $VALGRIND_NO_TRACE_CHILDREN ${bindir:=.}/../../bin/simgrid-mc --cfg=model-check/setenv:LD_PRELOAD=${libdir:=.}/libsthread.so ${bindir:=.}/pthread-mutex-simpledeadlock
 > All threads are started.
 > [0.000000] [mc_dfs/INFO] Start a DFS exploration. Reduction is: dpor.
@@ -27,4 +26,10 @@ $ $VALGRIND_NO_TRACE_CHILDREN ${bindir:=.}/../../bin/simgrid-mc --cfg=model-chec
 > [0.000000] [mc_global/INFO]   Actor 3 in simcall MUTEX_WAIT(mutex: 1, owner: 3)
 > [0.000000] [mc_global/INFO]   Actor 3 in simcall MUTEX_ASYNC_LOCK(mutex: 0, owner: 2)
 > [0.000000] [mc_Session/INFO] You can debug the problem (and see the whole details) by rerunning out of simgrid-mc with --cfg=model-check/replay:'2;2;3;2;3;3'
-> [0.000000] [mc_dfs/INFO] DFS exploration ended. 21 unique states visited; 3 backtracks (11 transition replays, 35 states visited overall)
\ No newline at end of file
+> [0.000000] [mc_dfs/INFO] DFS exploration ended. 21 unique states visited; 3 backtracks (11 transition replays, 35 states visited overall)
+
+
+! output display
+! expect return 3
+$ $VALGRIND_NO_TRACE_CHILDREN LD_PRELOAD=${libdir:=.}/libsthread.so ${bindir:=.}/pthread-mutex-simpledeadlock
+# The output contains build paths, and cannot be tested with tesh, unfortunately
index 4914d2b..b719eaf 100644 (file)
@@ -49,7 +49,8 @@ public:
       const std::string frame_name = frame.name();
       if (print) {
         if (frame_name.rfind("simgrid::xbt::MainFunction", 0) == 0 ||
-            frame_name.rfind("simgrid::kernel::context::Context::operator()()", 0) == 0)
+            frame_name.rfind("simgrid::kernel::context::Context::operator()()", 0) == 0 ||
+            frame_name.rfind("auto sthread_create::{lambda") == 0)
           break;
         ss << "  ->  #" << frame_count++ << " ";
         if (xbt_log_no_loc) // Don't display file source and line if so