⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 cerl.src

📁 OTP是开放电信平台的简称
💻 SRC
字号:
#!/bin/sh## This is a script to start Erlang/OTP for debugging. PATH is set to# include this script so if slave nodes are started they will use this# script as well.##  usage:  cerl [ OPTIONS ] [ ARGS ]##  The OPTIONS are##   -rootdir $MYROOTDIR#               Run an installed emulator built from this source#   -debug      Run debug compiled emulator#   -gdb        Run the debug compiled emulator in emacs and gdb.#               You have to start beam in gdb using "run".#   -break F    Run the debug compiled emulator in emacs and gdb and set break.#               The session is started, i.e. "run" is already don for you.#   -xxgdb      FIXME currently disabled#   -purify     Run emulator compiled for purify#   -quantify   Run emulator compiled for quantify#   -purecov    Run emulator compiled for purecov#   -valgrind   Run emulator compiled for valgrind#   -nox        Unset the DISPLAY variable to disable us of X Windows## FIXME For GDB you can also set the break point using "-break FUNCTION".# FIXME For GDB you can also point out your own .gdbini......# These are marked for exportexport ROOTDIRexport PROGNAMEexport EMUexport BINDIRexport PATHcargs=xargs=cxargs_add() {    while [ $# -gt 0 ]; do	cargs="$cargs $1"	xargs="$xargs $1"	shift    done}core=GDB=GDBBP=TYPE=EMU_TYPE=debug=run_valgrind=no# Default rootdirROOTDIR=%SRC_ROOTDIR%BINDIR="$ROOTDIR/bin/`$ROOTDIR/erts/autoconf/config.guess`"#BINDIR="$ROOTDIR/bin/%TARGET%"PROGNAME=$ROOTDIR/bin/cerlEMU=beamwhile [ $# -gt 0 ]; do    case "$1" in	+*)      # A system parameter!	    cxargs_add $1	    shift      # If next argument does not begin with a hyphen or a plus,      # it is used as the value of the system parameter.	    if [ $# -gt 0 ]; then		case $1 in		    -*|+*)			;;		    *)			cxargs_add $1			shift;;		esac	    fi;;	"-instr")	    cxargs_add $1	    shift	    ;;	"-target")	    shift	    BINDIR="$ROOTDIR/bin/$1"	    shift	    ;;	"-rootdir")	    shift	    cargs="$cargs -rootdir $1"	    ROOTDIR="$1"	    BINDIR=$ROOTDIR/erts-%VSN%/bin	    shift	    ;;	"-display")	    shift	    DISPLAY="$1"	    export DISPLAY	    shift	    ;;	"-nox")	    shift	    unset DISPLAY	    ;;	"-smp")	    shift	    cargs="$cargs -smp"	    EMU_TYPE=.smp	    ;;	"-nofrag")	    shift	    cargs="$cargs -nofrag"	    EMU_TYPE=.nofrag	    ;;	"-smp_nofrag")	    shift	    cargs="$cargs -smp_nofrag"	    EMU_TYPE=.smp_nofrag	    ;;	"-gprof")	    shift	    cargs="$cargs -gprof"	    TYPE=.gprof	    ;;	"-hybrid")	    shift	    cargs="$cargs -hybrid"	    EMU_TYPE=.hybrid	    ;;	"-debug")	    shift	    cargs="$cargs -debug"	    TYPE=.debug	    ;;	"-gdb")	    shift	    GDB=gdb	    ;;	"-break")	    shift	    GDB=gdb	    GDBBP="$GDBBP (insert-string \"break $1\") (comint-send-input)"	    shift	    ;;	"-core")	    shift	    GDB=gdb	    core="$1"	    shift	    ;;#	"-xxgdb")#	    shift#	    GDB=xxgdb#	    ;;	"-shared")	    shift	    cargs="$cargs -shared"	    TYPE=.shared	    ;;	"-purify")	    shift	    cargs="$cargs -purify"	    TYPE=.purify	    ;;	"-quantify")	    shift	    cargs="$cargs -quantify"	    TYPE=.quantify	    ;;	"-purecov")	    shift	    cargs="$cargs -purecov"	    TYPE=.purecov	    ;;	"-valgrind")	    shift	    cargs="$cargs -valgrind"	    TYPE=.valgrind	    run_valgrind=yes	    ;;	*)	    break	    ;;    esacdonePATH=$BINDIR:$ROOTDIR/bin:$PATHEXEC=$BINDIR/erlexecPROGNAME="$PROGNAME $cargs"EMU=$EMU$TYPE$EMU_TYPEif [ "x$GDB" = "x" ]; then    if [ $run_valgrind = yes ]; then	emu_xargs=`echo $xargs | sed "s|+|-|g"`	if [ "x$VALGRIND_LOG_DIR" = "x" ]; then	    valgrind_log=	else	    valgrind_log="--log-file=$VALGRIND_LOG_DIR/$VALGRIND_LOGFILE_PREFIX$VALGRIND_LOGFILE_INFIX$EMU.log"	fi	if [ "x$VALGRIND_LOG_XML" = "x" ]; then	    valgrind_xml=	else	    export VALGRIND_LOG_XML	    valgrind_xml="--xml=yes"	fi	if [ "x$VALGRIND_MISC_FLAGS" = "x" ]; then	    valgrind_misc_flags=	else	    valgrind_misc_flags="$VALGRIND_MISC_FLAGS"	fi	beam_args=`$EXEC -emu_args_exit ${1+"$@"}`	# Ahhhh... Need to quote $PROGNAME...	early_beam_args=`echo $beam_args | sed "s|^\(.*-progname\).*$|\1|g"`	late_beam_args=`echo $beam_args | sed "s|^$pre_beam_args.*\(--.*\)$|\1|g"`		exec valgrind $valgrind_xml $valgrind_log $valgrind_misc_flags $BINDIR/$EMU $emu_xargs $early_beam_args "$PROGNAME" $late_beam_args    else	exec $EXEC $xargs ${1+"$@"}    fielse    if [ "x$EMACS" = "x" ]; then	EMACS=emacs    fi        case "x$core" in	x)	    # Get emu args to use from erlexec...	    beam_args=`$EXEC -emu_args_exit ${1+"$@"}`	    gdbcmd="(insert-string \"set args $beam_args\") \                    (comint-send-input)"	    ;;	x/*)	    gdbcmd="(insert-string \"core ${core}\") (comint-send-input)"	    GDBBP=	    ;;	*)	    dir=`pwd`	    gdbcmd="(insert-string \"core ${dir}/${core}\") \                    (comint-send-input)"	    GDBBP=	    ;;    esac    gdbcmd="$gdbcmd $GDBBP \            (insert-string \"source $ROOTDIR/erts/etc/unix/etp-commands\") \            (comint-send-input)"    # Fire up gdb in emacs...    exec $EMACS --eval "(progn (gdb \"gdb $EMU\") $gdbcmd)"fi

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -