set m5 0
set m6 0
-#spawn stap -d kernel -d systemtap_test_module1 -DMAXSTRINGLEN=256 $srcdir/$subdir/backtrace.stp
-spawn stap -DMAXSTRINGLEN=256 $srcdir/$subdir/backtrace.stp
+#spawn stap -d kernel -d systemtap_test_module1 $srcdir/$subdir/backtrace.stp
+spawn stap $srcdir/$subdir/backtrace.stp
#exp_internal 1
expect {
-timeout 60
set main_func 0
set lib_main 0
set lib_func 0
-# Needs extra space since on 64bit the last ubacktrace string is
-# 7 entries * (16 hex + 2 for 0x + 1 space) = 133 chars.
-# Default MAXSTRINGLEN is 128 chars.
-send_log "Running: stap -DMAXSTRINGLEN=133 $srcdir/$subdir/ustack.stp $testexe $testlib -c $testexe\n"
-spawn stap -DMAXSTRINGLEN=133 $srcdir/$subdir/ustack.stp $testexe $testlib -c $testexe
+send_log "Running: stap $srcdir/$subdir/ustack.stp $testexe $testlib -c $testexe\n"
+spawn stap $srcdir/$subdir/ustack.stp $testexe $testlib -c $testexe
wait
expect {
Result = hello system tap
Result =
Result = }
-stap_run2 $srcdir/$subdir/$test.stp
+
+# Expect strings to be cut off if they are too long.
+stap_run2 $srcdir/$subdir/$test.stp -DMAXSTRINGLEN=128
s.op->newline() << "#ifndef MAXNESTING";
s.op->newline() << "#define MAXNESTING 10";
s.op->newline() << "#endif";
+
+ // Strings are used for storing backtraces, they are larger on 64bit
+ // so raise the size on 64bit architectures. PR10486
+ s.op->newline() << "#include <asm/types.h>";
s.op->newline() << "#ifndef MAXSTRINGLEN";
- s.op->newline() << "#define MAXSTRINGLEN 128";
+ s.op->newline() << "#if BITS_PER_LONG == 32";
+ s.op->newline() << "#define MAXSTRINGLEN 256";
+ s.op->newline() << "#else";
+ s.op->newline() << "#define MAXSTRINGLEN 512";
+ s.op->newline() << "#endif";
s.op->newline() << "#endif";
+
s.op->newline() << "#ifndef MAXACTION";
s.op->newline() << "#define MAXACTION 1000";
s.op->newline() << "#endif";