[Lldb-commits] [lldb] 2abcf44 - [Reproducer] Add test case for expression evaluation
Pavel Labath via lldb-commits
lldb-commits at lists.llvm.org
Wed Nov 6 06:56:15 PST 2019
It seems that this test is very flaky (fails ~10% of time) on linux.
E.g:
<http://lab.llvm.org:8011/builders/lldb-x86_64-debian/builds/211/steps/test/logs/stdio>.
It always fails on the same assertion: "Encountered unexpected packet
during replay". I've done a bit of digging, and the problems seems to be
down to a nondeterministic $M packet being sent while evaluating one of
the expressions:
recording:
$M7ffff7fcc140,108:06000000000000000a0000000600000000000000000000000c000000000000000a00000005000000000000000000000012000000000000000a00000005000000650000000000000016000000000000000a0000000900000000000000000000001a000000000000000a000000050000007b000000000000001e00000000000000010000000400000000000000000000002b000000000000000100000004000000000000000000000039000000000000000a00000005000000950000000000000043000000000000000a00000005000000b20000000000000051000000000000000a00000005000000d00000000000000062000000000000000a00000005000000c200000000000000#f7
replay:
$M7ffff7fcc140,108:06000000000000000a0000000600000000000000000000000c000000000000000a00000005000000000000000000000012000000000000000a00000005000000650000000000000016000000000000000a0000000900000000000000000000001a000000000000000a000000050000007c000000000000001e00000000000000010000000400000000000000000000002b000000000000000100000004000000000000000000000039000000000000000a00000005000000960000000000000043000000000000000a00000005000000b30000000000000051000000000000000a00000005000000d10000000000000062000000000000000a00000005000000c300000000000000#fc
It's possible that this is specific to linux, as this particular failure
happened while evaluating the mmap() helper expression (which we don't
do on mac), but it's also possible (and more likely, I think) that this
is a more general problem. Nonetheless, I haven't seen it fail on green
dragon, so I've disabled in only on linux for now.
pl
On 05/11/2019 21:33, Jonas Devlieghere via lldb-commits wrote:
>
> Author: Jonas Devlieghere
> Date: 2019-11-05T12:33:21-08:00
> New Revision: 2abcf44f4c91a326d1f4513fb5c25fec51c6ca66
>
> URL: https://github.com/llvm/llvm-project/commit/2abcf44f4c91a326d1f4513fb5c25fec51c6ca66
> DIFF: https://github.com/llvm/llvm-project/commit/2abcf44f4c91a326d1f4513fb5c25fec51c6ca66.diff
>
> LOG: [Reproducer] Add test case for expression evaluation
>
> Added:
> lldb/test/Shell/Reproducer/Functionalities/Inputs/ExpressionEvaluation.in
> lldb/test/Shell/Reproducer/Functionalities/TestExpressionEvaluation.test
>
> Modified:
>
>
> Removed:
>
>
>
> ################################################################################
> diff --git a/lldb/test/Shell/Reproducer/Functionalities/Inputs/ExpressionEvaluation.in b/lldb/test/Shell/Reproducer/Functionalities/Inputs/ExpressionEvaluation.in
> new file mode 100644
> index 000000000000..8887c201d92e
> --- /dev/null
> +++ b/lldb/test/Shell/Reproducer/Functionalities/Inputs/ExpressionEvaluation.in
> @@ -0,0 +1,10 @@
> +breakpoint set -f foo.cpp -l 11
> +run
> +p foo
> +next
> +p Foo(2, 3.33);
> +p $1
> +p foo = Foo(3, 4.44);
> +p foo
> +cont
> +reproducer generate
>
> diff --git a/lldb/test/Shell/Reproducer/Functionalities/TestExpressionEvaluation.test b/lldb/test/Shell/Reproducer/Functionalities/TestExpressionEvaluation.test
> new file mode 100644
> index 000000000000..d826a47cb245
> --- /dev/null
> +++ b/lldb/test/Shell/Reproducer/Functionalities/TestExpressionEvaluation.test
> @@ -0,0 +1,18 @@
> +# UNSUPPORTED: system-windows, system-freebsd
> +
> +# This tests that expression evaluation continues to work when replaying a
> +# reproducer.
> +
> +# RUN: rm -rf %t.repro
> +# RUN: %clangxx_host %S/Inputs/foo.cpp -g -o %t.out
> +
> +# RUN: %lldb -x -b -s %S/Inputs/ExpressionEvaluation.in --capture --capture-path %t.repro %t.out | FileCheck %s
> +# RUN: %lldb --replay %t.repro | FileCheck %s
> +
> +# CHECK: stop reason = breakpoint 1.1
> +# CHECK: (Foo) $0 = (m_i = 0, m_d = 0)
> +# CHECK: stop reason = step over
> +# CHECK: (Foo) $1 = (m_i = 2, m_d = 3)
> +# CHECK: (Foo) $1 = (m_i = 2, m_d = 3)
> +# CHECK: (Foo) $2 = (m_i = 3, m_d = 4)
> +# CHECK: (Foo) $3 = (m_i = 3, m_d = 4)
>
>
>
> _______________________________________________
> lldb-commits mailing list
> lldb-commits at lists.llvm.org
> https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits
>
More information about the lldb-commits
mailing list