-trace-viva # generate configuration for Viva's GraphView
-trace-file <tracefile> # name of the tracefile (simgrid_smpi.trace)
-ext <value> # additional parameter (reserved)
-
+ -foreground # run the child process in the foreground:
+ # - it can access the terminal;
+ # - but we cannot stop it when we receive a signal.
+ # This is useful with -wrapper "gdb --args".
+
-version # Displays the SimGrid version (human readable)
-git-version # Displays the git hash of SimGrid
HOSTFILETMP=0
unset pid
+unset foreground ; foreground=0
trapped_signals="HUP INT QUIT ILL ABRT SEGV FPE ALRM TERM USR1 USR2 BUS"
done
shift 1
;;
+ "-foreground")
+ foreground=1
+ shift 1
+ ;;
*)
break
;;
if [ -z "${HOSTFILE}" ] ; then
HOSTFILETMP=1
- HOSTFILE="$(mktemp tmphostXXXXXX)"
+ HOSTFILE="$(mktemp smpitmp-hostfXXXXXX)"
perl -ne 'print "$1\n" if /.*<host.*?id="(.*?)".*?\/>.*/' ${PLATFORM} > ${HOSTFILE}
perl -ne 'if (/.*<cluster.*?prefix="(.*?)".*?radical="(.*?)".*?suffix="(.*?)".*/) {
my ($pre,$rad,$post)=($1,$2,$3);
multiple_processes=`grep -c ":" $HOSTFILE`
if [ "${multiple_processes}" -gt 0 ] ; then
UNROLLEDHOSTFILETMP=1
- UNROLLEDHOSTFILE="$(mktemp tmphostXXXXXX)"
+ UNROLLEDHOSTFILE="$(mktemp smpitmp-hostfXXXXXX)"
perl -ne ' do{ for ( 1 .. $2 ) { print "$1\n" } } if /(.*?):(\d+).*/' ${HOSTFILE} > ${UNROLLEDHOSTFILE}
if [ ${HOSTFILETMP} = 1 ] ; then
rm ${HOSTFILE}
##-------------------------------- DEFAULT or SPECIFIED PLATFORM --------------------------------------
if [ -z "${PLATFORM}" ]; then
- PLATFORMTMP="$(mktemp tmpXXXXXX)"
+ PLATFORMTMP="$(mktemp smpitmp-platfXXXXXX)"
cat > ${PLATFORMTMP} <<PLATFORMHEAD
<?xml version='1.0'?>
##-------------------------------- end DEFAULT or SPECIFIED PLATFORM --------------------------------------
##-------------------------------- DEFAULT APPLICATION --------------------------------------
-APPLICATIONTMP="$(mktemp tmpXXXXXX)"
+APPLICATIONTMP="$(mktemp smpitmp-appXXXXXX)"
#APPLICATIONTMP="app.xml"
hosttraces=$(cat ${APP_TRACES} | tr '\n\r' ' ' )
NUMTRACES=$(cat ${APP_TRACES} | wc -l)
else
- printf "File not found: %s\n", "${APP_TRACES:-\${APP_TRACES\}}" >&2
+ printf "File not found: %s\n" "${APP_TRACES:-\${APP_TRACES\}}" >&2
exit 1
fi
fi
if [ -n "${KEEP}" ] ; then
echo ${EXEC} ${TRACEOPTIONS} ${SIMOPTS} ${PLATFORMTMP} ${APPLICATIONTMP}
if [ ${HOSTFILETMP} = 1 ] ; then
- echo "Generated hostfile ${HOSTFILE} keeped."
+ echo "Generated hostfile ${HOSTFILE} kept."
fi
if [ ${UNROLLEDHOSTFILETMP} = 1 ] ; then
- echo "Generated unrolled hostfile ${UNROLLEDHOSTFILE} keeped."
+ echo "Generated unrolled hostfile ${UNROLLEDHOSTFILE} kept."
fi
fi
-${EXEC} ${TRACEOPTIONS} ${SIMOPTS} ${PLATFORMTMP} ${APPLICATIONTMP} &
-pid=$!
-wait $pid
-status=$?
-pid=""
+if [ "$foreground" = 1 ]; then
+ ${EXEC} ${TRACEOPTIONS} ${SIMOPTS} ${PLATFORMTMP} ${APPLICATIONTMP}
+ status=$?
+else
+ ${EXEC} ${TRACEOPTIONS} ${SIMOPTS} ${PLATFORMTMP} ${APPLICATIONTMP} &
+ pid=$!
+ wait $pid
+ status=$?
+ pid=""
+fi
smpirun_cleanup