aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAnton Yuzhaninov <citrin+git@citrin.ru>2018-10-23 13:26:32 -0400
committerAnton Yuzhaninov <citrin+git@citrin.ru>2018-10-23 13:26:32 -0400
commit50ad2f1b78dfd4771a3e7a769cdb2cc8d172c423 (patch)
tree05c597f6298b7e1e1ec0bd338c38c56a2b9a1144
parent00e1cb15abbe6bf7eed8e3e00d598cfd089f8da0 (diff)
downloadrspamd-50ad2f1b78dfd4771a3e7a769cdb2cc8d172c423.tar.gz
rspamd-50ad2f1b78dfd4771a3e7a769cdb2cc8d172c423.zip
Print backtrace for cores dumped by functional test
-rw-r--r--.drone.yml11
1 files changed, 10 insertions, 1 deletions
diff --git a/.drone.yml b/.drone.yml
index 6215a9332..62fd98297 100644
--- a/.drone.yml
+++ b/.drone.yml
@@ -101,7 +101,16 @@ pipeline:
if [ -n "$HTTP_PUT_AUTH" ]; then
$CI_WORKSPACE/test/tools/http_put.py log.html report.html $CI_SYSTEM_LINK/testlogs/$CI_REPO_NAME/$CI_BUILD_NUMBER/;
fi
- - find /var/tmp/ -name '*.core'
+ # core_pattern=/var/tmp/%u.%e.core so one or two cores can be saved for each binary
+ - core_files=$(find /var/tmp/ -name '*.core')
+ # use 'info proc mappings' to find path to executable file for given core
+ # first mapping is usually program executable
+ - >
+ for core in $core_files;
+ do
+ exe=$(gdb --batch -ex 'info proc mappings' -c $core | awk 'h {print $5; exit}; /objfile/ {h=1}');
+ gdb --batch -ex 'bt' -c $core $exe; echo '---';
+ done
- exit $EXIT_CODE
secrets: [http_put_auth]