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>
This commit is contained in:
Mark Wielaard
2017-04-25 12:41:58 +02:00
parent 727a90c386
commit 5e6615076a
5 changed files with 30 additions and 0 deletions
+7
View File
@@ -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.
+14
View File
@@ -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.
Binary file not shown.
Binary file not shown.
+9
View File
@@ -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