Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Use SIGABRT when SIGTRAP is not available (win32).
authorArnaud Giersch <arnaud.giersch@univ-fcomte.fr>
Thu, 19 Apr 2018 22:12:48 +0000 (00:12 +0200)
committerArnaud Giersch <arnaud.giersch@univ-fcomte.fr>
Thu, 19 Apr 2018 22:20:40 +0000 (00:20 +0200)
It's not the best idea but who cares?

examples/s4u/CMakeLists.txt
src/simix/smx_global.cpp

index 17d4664..abcace2 100644 (file)
@@ -105,7 +105,7 @@ foreach (example trace-platform)
                           ${CMAKE_HOME_DIRECTORY}/examples/s4u/${example}/s4u-${example}.tesh)
 endforeach()
 
-if (NOT enable_memcheck)
+if (NOT enable_memcheck AND NOT WIN32)
   ADD_TESH(simix-breakpoint --setenv bindir=${CMAKE_CURRENT_BINARY_DIR}/app-pingpong
                             --setenv platfdir=${CMAKE_HOME_DIRECTORY}/examples/platforms
                             ${CMAKE_CURRENT_SOURCE_DIR}/app-pingpong/simix-breakpoint.tesh)
index 683ed17..bf34320 100644 (file)
@@ -29,6 +29,7 @@
 #endif
 
 #include <boost/heap/fibonacci_heap.hpp>
+#include <csignal>
 
 XBT_LOG_NEW_CATEGORY(simix, "All SIMIX categories");
 XBT_LOG_NEW_DEFAULT_SUBCATEGORY(simix_kernel, simix, "Logging specific to SIMIX (kernel)");
@@ -95,7 +96,7 @@ static void segvhandler(int signum, siginfo_t* siginfo, void* /*context*/)
     }
 #endif /* HAVE_SMPI */
   }
-  raise(signum);
+  std::raise(signum);
 }
 
 char sigsegv_stack[SIGSTKSZ];   /* alternate stack for SIGSEGV handler */
@@ -200,7 +201,7 @@ void SIMIX_global_init(int *argc, char **argv)
     simgrid::kernel::actor::create_maestro(maestro_code);
 
     /* Prepare to display some more info when dying on Ctrl-C pressing */
-    signal(SIGINT, inthandler);
+    std::signal(SIGINT, inthandler);
 
 #ifndef _WIN32
     install_segvhandler();
@@ -400,7 +401,11 @@ void SIMIX_run()
     if (simgrid::simix::breakpoint >= 0.0 && time >= simgrid::simix::breakpoint) {
       XBT_DEBUG("Breakpoint reached (%g)", simgrid::simix::breakpoint.get());
       simgrid::simix::breakpoint = -1.0;
-      raise(SIGTRAP);
+#ifdef SIGTRAP
+      std::raise(SIGTRAP);
+#else
+      std::raise(SIGABRT);
+#endif
     }
 
     SIMIX_execute_tasks();