summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorMark Wielaard <mark@klomp.org>2017-04-25 12:41:58 +0200
committerMark Wielaard <mark@klomp.org>2017-05-02 15:25:02 +0200
commit5e6615076a8ad5fad5c70b4ea266042ed7c44d55 (patch)
treee1ee5afd311e71f96f3a5c0f075ef788fec0c7d2 /tests
parent727a90c38613b728d83a1e6c8aad3c6974047cc9 (diff)
downloadelfutils-5e6615076a8ad5fad5c70b4ea266042ed7c44d55.tar.gz
tests: Add core backtracegen check and regen ppc32 backtrace testfiles.
Add a check to check_core to make sure the backtracegen function is found in the backtrace. This function is in the middle of the backtrace in the main executable and if not found it means the backtrace was incomplete or the frame was skipped (which could happen on a bad frame pointer only unwind). This showed that the ppc32 backtrace test files were missing DWARF CFI for the main executable. Regenerated them to include full CFI. Signed-off-by: Mark Wielaard <mark@klomp.org>
Diffstat (limited to 'tests')
-rw-r--r--tests/ChangeLog7
-rw-r--r--tests/backtrace-subr.sh14
-rw-r--r--tests/backtrace.ppc.core.bz2bin46357 -> 44482 bytes
-rw-r--r--tests/backtrace.ppc.exec.bz2bin352898 -> 352197 bytes
-rwxr-xr-xtests/run-backtrace-core-ppc.sh9
5 files changed, 30 insertions, 0 deletions
diff --git a/tests/ChangeLog b/tests/ChangeLog
index 32dc48c8..73485458 100644
--- a/tests/ChangeLog
+++ b/tests/ChangeLog
@@ -1,3 +1,10 @@
+2017-04-25 Mark Wielaard <mark@klomp.org>
+
+ * backtrace-subr.sh (check_backtracegen): New function.
+ (check_core): Add check_backtracegen call.
+ * backtrace.ppc.exec.bz2: Regenerated.
+ * backtrace.ppc.core.bz2: Likewise.
+
2017-04-24 Mark Wielaard <mark@klomp.org>
* backtrace.c: Remove option to allow unknown symbols in the trace.
diff --git a/tests/backtrace-subr.sh b/tests/backtrace-subr.sh
index e746dc19..a303e32c 100644
--- a/tests/backtrace-subr.sh
+++ b/tests/backtrace-subr.sh
@@ -40,6 +40,19 @@ check_gsignal()
false
}
+
+# Makes sure we saw the function that initiated the backtrace
+# when the core was generated through the tests backtrace --gencore.
+# This might disappear when frame pointer chasing gone bad.
+check_backtracegen()
+{
+ if grep -w backtracegen $1; then
+ return
+ fi
+ echo >&2 $2: no backtracegen
+ false
+}
+
# Verify the STDERR output does not contain unexpected errors.
# In some cases we cannot reliably find out we got behind _start as some
# operating system do not properly terminate CFI by undefined PC.
@@ -105,6 +118,7 @@ check_core()
cat backtrace.$arch.{bt,err}
check_unsupported backtrace.$arch.err backtrace.$arch.core
check_all backtrace.$arch.{bt,err} backtrace.$arch.core
+ check_backtracegen backtrace.$arch.bt backtrace.$arch.core
}
# Backtrace live process.
diff --git a/tests/backtrace.ppc.core.bz2 b/tests/backtrace.ppc.core.bz2
index f20cd9f3..3a025d28 100644
--- a/tests/backtrace.ppc.core.bz2
+++ b/tests/backtrace.ppc.core.bz2
Binary files differ
diff --git a/tests/backtrace.ppc.exec.bz2 b/tests/backtrace.ppc.exec.bz2
index 057c25a6..333c6be9 100644
--- a/tests/backtrace.ppc.exec.bz2
+++ b/tests/backtrace.ppc.exec.bz2
Binary files differ
diff --git a/tests/run-backtrace-core-ppc.sh b/tests/run-backtrace-core-ppc.sh
index 65c92795..555ac352 100755
--- a/tests/run-backtrace-core-ppc.sh
+++ b/tests/run-backtrace-core-ppc.sh
@@ -17,4 +17,13 @@
. $srcdir/backtrace-subr.sh
+# executable generated by:
+#
+# gcc -D_GNU_SOURCE -I. -I.. -I../lib -m32 -pthread -static -g \
+# -o backtrace.ppc.exec backtrace-child.c
+#
+# core generated by:
+#
+# ./backtrace.ppc.exec --gencore
+
check_core ppc