[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