#!/bin/sh # # This file is part of the LibreOffice project. # # This Source Code Form is subject to the terms of the Mozilla Public # License, v. 2.0. If a copy of the MPL was not distributed with this # file, You can obtain one at http://mozilla.org/MPL/2.0/. # # This file incorporates work covered by the following license notice: # # Licensed to the Apache Software Foundation (ASF) under one or more # contributor license agreements. See the NOTICE file distributed # with this work for additional information regarding copyright # ownership. The ASF licenses this file to you under the Apache # License, Version 2.0 (the "License"); you may not use this file # except in compliance with the License. You may obtain a copy of # the License at http://www.apache.org/licenses/LICENSE-2.0 . #
# use POSIX locale for well-defined tool output
LO_SAVE_LC_ALL="$LC_ALL"
LC_ALL=C export LC_ALL
# file locking now enabled by default
SAL_ENABLE_FILE_LOCKING=1 export SAL_ENABLE_FILE_LOCKING
# uncomment line below to disable anti aliasing of fonts # SAL_ANTIALIAS_DISABLE=true; export SAL_ANTIALIAS_DISABLE
# uncomment line below if you encounter problems starting soffice on your system # SAL_NO_XINITTHREADS=true; export SAL_NO_XINITTHREADS
#@JITC_PROCESSOR_TYPE_EXPORT@
# resolve installation directory
sd_cwd=$(pwd)
sd_res="$0" while [ -h "$sd_res" ] ; do
sd_dirname=$(dirname "$sd_res")
cd "$sd_dirname" || exit $?
sd_basename=$(basename "$sd_res")
sd_res=$(ls -l "$sd_basename" | sed "s/.*$sd_basename -> //g") done
sd_dirname=$(dirname "$sd_res")
cd "$sd_dirname" || exit $?
sd_prog=$(pwd)
cd "$sd_cwd" || exit $?
# linked build needs additional settings if [ -e "${sd_prog}/ooenv" ] ; then # shellcheck source=../../instsetoo_native/ooenv
. "${sd_prog}/ooenv" fi
# try to get some debug output?
GDBTRACECHECK=
STRACECHECK=
VALGRINDCHECK=
RRCHECK=
# count number of selected checks; only one is allowed
checks=
EXTRAOPT= # force the --valgrind option if the VALGRIND variable is set
test -n "$VALGRIND" && EXTRAOPT="--valgrind"
# force the --record option if the RR variable is set
test -n "$RR" && EXTRAOPT="--record"
for arg in "$@" $EXTRAOPT ; do
case "$arg" in
--record) if command -v rr >/dev/null ; then # smoketest may already be recorded => ignore nested
RRCHECK="rr record --nested=ignore"
checks="c$checks" else echo"Error: Can't find the tool \"rr\", --record option will be ignored."
exit 1 fi
;;
--backtrace) if command -v gdb >/dev/null ; then
GDBTRACECHECK="gdb -nx --command=$sd_prog/gdbtrace --args"
checks="c$checks" else echo"Error: Can't find the tool \"gdb\", --backtrace option will be ignored."
exit 1 fi
;;
--strace) if command -v strace >/dev/null ; then
STRACECHECK="strace -o strace.log -f -tt -s 256"
checks="c$checks" else echo"Error: Can't find the tool \"strace\", --strace option will be ignored."
exit 1; fi
;;
--valgrind)
test -n "$VALGRINDCHECK" && continue; if command -v valgrind >/dev/null ; then # another valgrind tool might be forced via the environment variable
test -z "$VALGRIND" && VALGRIND="memcheck" # --trace-children-skip is pretty useful but supported only with valgrind >= 3.6.0
valgrind_ver=$(valgrind --version | sed -e "s/valgrind-//")
valgrind_ver_maj=$(echo"$valgrind_ver" | awk -F. '{ print $1 }')
valgrind_ver_min=$(echo"$valgrind_ver" | awk -F. '{ print $2 }')
valgrind_skip= if [ "$valgrind_ver_maj" -gt 3 ] || ( [ "$valgrind_ver_maj" -eq 3 ] && [ "$valgrind_ver_min" -ge 6 ] ) ; then
valgrind_skip='--trace-children-skip=*/java,*/gij' fi # finally set the valgrind check
VALGRINDCHECK="valgrind --tool=$VALGRIND --trace-children=yes $valgrind_skip --num-callers=50 --error-limit=no" echo"use kill -SIGUSR2 pid to dump traces of active allocations"
checks="c$checks"
case "$VALGRIND" in
helgrind|memcheck|massif|dhat) export G_SLICE=always-malloc export GLIBCXX_FORCE_NEW=1
;;
callgrind)
unset MALLOC_CHECK_ MALLOC_PERTURB_ G_SLICE export SAL_DISABLE_FLOATGRAB=1 export OOO_DISABLE_RECOVERY=1 export SAL_DISABLE_WATCHDOG=1 export LD_BIND_NOW=1
;;
esac else echo"Error: Can't find the tool \"valgrind\", --valgrind option will be ignored"
exit 1 fi
;;
esac done
ifecho"$checks" | grep -q "cc" ; then echo"Error: The debug options --record, --backtrace, --strace, and --valgrind cannot be used together." echo" Please, use them one by one."
exit 1; fi
case "$(uname -s)" in
OpenBSD) # this is a temporary hack until we can live with the default search paths
LD_LIBRARY_PATH="$sd_prog${LD_LIBRARY_PATH:+:$LD_LIBRARY_PATH}"
JAVA_HOME=$(javaPathHelper -h libreoffice-java 2> /dev/null) export LD_LIBRARY_PATH if [ -n "${JAVA_HOME}" ]; then export JAVA_HOME fi
;;
NetBSD|DragonFly) # this is a temporary hack until we can live with the default search paths
LD_LIBRARY_PATH="$sd_prog${LD_LIBRARY_PATH:+:$LD_LIBRARY_PATH}" export LD_LIBRARY_PATH
;;
esac
# restore locale setting, avoiding to export empty LC_ALL, s. tdf#130080 if [ -n "$LO_SAVE_LC_ALL" ]; then
LC_ALL="$LO_SAVE_LC_ALL" else
unset LC_ALL fi
# run soffice.bin directly when you want to get the backtrace if [ -n "$GDBTRACECHECK" ] ; then
exec $GDBTRACECHECK "$sd_prog/soffice.bin""$@" fi
# valgrind --log-file=valgrind.log does not work well with --trace-children=yes if [ -n "$VALGRINDCHECK" ] && [ -z "$VALGRIND" ] ; then echo"redirecting the standard and the error output to valgrind.log"
exec > valgrind.log 2>&1 fi
# oosplash does the rest: forcing pages in, javaldx etc. are
exec $RRCHECK $VALGRINDCHECK $STRACECHECK "$sd_prog/oosplash""$@"
Messung V0.5
¤ Dauer der Verarbeitung: 0.13 Sekunden
(vorverarbeitet)
¤
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.