diff --git a/jenkins-scripts/docker/lib/_generic_linux_compilation_build.sh.bash b/jenkins-scripts/docker/lib/_generic_linux_compilation_build.sh.bash index 9d63185d9..9a045a622 100644 --- a/jenkins-scripts/docker/lib/_generic_linux_compilation_build.sh.bash +++ b/jenkins-scripts/docker/lib/_generic_linux_compilation_build.sh.bash @@ -79,7 +79,7 @@ cd $WORKSPACE [[ ! -d $WORKSPACE/build ]] && mkdir -p $WORKSPACE/build cd $WORKSPACE/build cmake $WORKSPACE/${SOFTWARE_DIR} ${BUILDING_EXTRA_CMAKE_PARAMS} \ - -DCMAKE_INSTALL_PREFIX=/usr + -DCMAKE_BUILD_TYPE=RelWithDebInfo -DCMAKE_INSTALL_PREFIX=/usr echo '# END SECTION' echo '# BEGIN SECTION: compiling' @@ -97,6 +97,12 @@ if $GENERIC_ENABLE_TESTS; then init_stopwatch TEST mkdir -p \$HOME make test ARGS="-VV ${BUILDING_EXTRA_MAKETEST_PARAMS}" || true + if [[ -d $WORKSPACE/core_dumps ]]; then + for corefile in $WORKSPACE/core_dumps/core.* + do + gdb --batch -ex "sharedlibrary; thread apply all bt" --core \$corefile | tee \${corefile}_backtrace.txt + done + fi stop_stopwatch TEST echo '# END SECTION' else diff --git a/jenkins-scripts/docker/lib/docker_run.bash b/jenkins-scripts/docker/lib/docker_run.bash index 5c96eaef5..1751ce483 100644 --- a/jenkins-scripts/docker/lib/docker_run.bash +++ b/jenkins-scripts/docker/lib/docker_run.bash @@ -12,6 +12,11 @@ mkdir -p ${PACKAGE_DIR} sudo rm -fr ${WORKSPACE}/build mkdir -p ${WORKSPACE}/build +# Remove old core dumps to conserve space +CORE_DUMPS_DIR="${WORKSPACE}/core_dumps" +sudo rm -rf ${CORE_DUMPS_DIR} +mkdir -p ${CORE_DUMPS_DIR} + [[ -z ${DOCKER_DO_NOT_CACHE} ]] && DOCKER_DO_NOT_CACHE=false [[ -z ${USE_DOCKER_IN_DOCKER} ]] && export USE_DOCKER_IN_DOCKER=false @@ -81,6 +86,8 @@ if [[ -d /dev/snd ]]; then DEVICE_SND="--device /dev/snd" fi +echo "${CORE_DUMPS_DIR}/core.%e.%p" | sudo tee /proc/sys/kernel/core_pattern + # DOCKER_FIX is for workaround https://github.com/docker/docker/issues/14203 sudo ${docker_cmd} run ${PLAFTORM_PARAM} $EXTRA_PARAMS_STR \ -e DOCKER_FIX='' \ @@ -93,6 +100,8 @@ sudo ${docker_cmd} run ${PLAFTORM_PARAM} $EXTRA_PARAMS_STR \ ${DEVICE_SND} \ --tty \ --rm \ + --init \ + --ulimit core=-1 \ ${DOCKER_TAG} \ /bin/bash build.sh diff --git a/jenkins-scripts/lib/dependencies_archive.sh b/jenkins-scripts/lib/dependencies_archive.sh index d52c69bba..b7dd95a04 100644 --- a/jenkins-scripts/lib/dependencies_archive.sh +++ b/jenkins-scripts/lib/dependencies_archive.sh @@ -36,6 +36,7 @@ fi # gnupg apt-key requires gnupg, gnupg2 or gnupg1 BASE_DEPENDENCIES="build-essential \\ cmake \\ + gdb \\ debhelper \\ mesa-utils \\ x11-utils \\