diff options
-rw-r--r-- | testsuite/systemtap.context/backtrace.tcl | 4 | ||||
-rw-r--r-- | testsuite/systemtap.exelib/ustack.tcl | 7 | ||||
-rw-r--r-- | testsuite/systemtap.string/str_replace.exp | 4 | ||||
-rw-r--r-- | translate.cxx | 11 |
4 files changed, 17 insertions, 9 deletions
diff --git a/testsuite/systemtap.context/backtrace.tcl b/testsuite/systemtap.context/backtrace.tcl index 975e6c4d..d401d89f 100644 --- a/testsuite/systemtap.context/backtrace.tcl +++ b/testsuite/systemtap.context/backtrace.tcl @@ -5,8 +5,8 @@ set m4 0 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 diff --git a/testsuite/systemtap.exelib/ustack.tcl b/testsuite/systemtap.exelib/ustack.tcl index a670213a..257d0b9f 100644 --- a/testsuite/systemtap.exelib/ustack.tcl +++ b/testsuite/systemtap.exelib/ustack.tcl @@ -31,11 +31,8 @@ set main 0 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 { diff --git a/testsuite/systemtap.string/str_replace.exp b/testsuite/systemtap.string/str_replace.exp index 4eedf1c6..e6526ef9 100644 --- a/testsuite/systemtap.string/str_replace.exp +++ b/testsuite/systemtap.string/str_replace.exp @@ -10,5 +10,7 @@ Result = hello tap 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 diff --git a/translate.cxx b/translate.cxx index 4a6a10b5..1ddc1778 100644 --- a/translate.cxx +++ b/translate.cxx @@ -5106,9 +5106,18 @@ translate_pass (systemtap_session& s) 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"; |