From c4c82977e0a105cdf7b04010ddd21bbf15dced4d Mon Sep 17 00:00:00 2001 From: Martin Quinson Date: Wed, 15 Nov 2023 22:12:41 +0100 Subject: [PATCH] cut the backtrace displayed from sthread to the sthread_create to hide useless cruft --- .../sthread/pthread-mc-mutex-simpledeadlock.tesh | 13 +++++++++---- src/xbt/backtrace.cpp | 3 ++- 2 files changed, 11 insertions(+), 5 deletions(-) diff --git a/examples/sthread/pthread-mc-mutex-simpledeadlock.tesh b/examples/sthread/pthread-mc-mutex-simpledeadlock.tesh index 8a23f34965..e384d25613 100644 --- a/examples/sthread/pthread-mc-mutex-simpledeadlock.tesh +++ b/examples/sthread/pthread-mc-mutex-simpledeadlock.tesh @@ -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 diff --git a/src/xbt/backtrace.cpp b/src/xbt/backtrace.cpp index 4914d2b0b1..b719eaf696 100644 --- a/src/xbt/backtrace.cpp +++ b/src/xbt/backtrace.cpp @@ -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 -- 2.20.1