[Lldb-commits] [PATCH] D39727: Make TestTopLevelExprs more robust in face of linker GC
Zachary Turner via lldb-commits
lldb-commits at lists.llvm.org
Tue Nov 7 04:22:55 PST 2017
Can’t you just disable linker gc in the makefile?
On Tue, Nov 7, 2017 at 4:18 AM Pavel Labath via Phabricator via
lldb-commits <lldb-commits at lists.llvm.org> wrote:
> labath created this revision.
> Herald added a subscriber: srhines.
>
> This test was failing in various configurations on linux in a fairly
> unpredictible way. The success depended on whether the c++ abi library
> was linked in statically or not and how well was the linker able to
> strip parts of it. This introduces additional code to the "dummmy" test
> executable, which ensures that all parts of the library needed to
> evaluate the expressions are always present.
>
>
> https://reviews.llvm.org/D39727
>
> Files:
>
> packages/Python/lldbsuite/test/expression_command/top-level/TestTopLevelExprs.py
> packages/Python/lldbsuite/test/expression_command/top-level/dummy.cpp
>
>
> Index:
> packages/Python/lldbsuite/test/expression_command/top-level/dummy.cpp
> ===================================================================
> --- packages/Python/lldbsuite/test/expression_command/top-level/dummy.cpp
> +++ packages/Python/lldbsuite/test/expression_command/top-level/dummy.cpp
> @@ -1,7 +1,15 @@
> #include <stdio.h>
>
> -int main()
> -{
> - printf("This is a dummy\n"); // Set breakpoint here
> - return 0;
> +// These are needed to make sure that the linker does not strip the parts
> of the
> +// C++ abi library that are necessary to execute the expressions in the
> +// debugger. It would be great if we did not need to do this, but the
> fact that
> +// LLDB cannot conjure up the abi library on demand is not relevant for
> testing
> +// top level expressions.
> +struct DummyA {};
> +struct DummyB : public virtual DummyA {};
> +
> +int main() {
> + DummyB b;
> + printf("This is a dummy\n"); // Set breakpoint here
> + return 0;
> }
> Index:
> packages/Python/lldbsuite/test/expression_command/top-level/TestTopLevelExprs.py
> ===================================================================
> ---
> packages/Python/lldbsuite/test/expression_command/top-level/TestTopLevelExprs.py
> +++
> packages/Python/lldbsuite/test/expression_command/top-level/TestTopLevelExprs.py
> @@ -57,23 +57,6 @@
> self.runCmd("run", RUN_SUCCEEDED)
>
> @add_test_categories(['pyapi'])
> - @expectedFailureAndroid(api_levels=list(range(22+1)), bugnumber="
> llvm.org/pr27787")
> - @expectedFailureAll(
> - oslist=["linux"],
> - archs=[
> - "arm",
> - "aarch64"],
> - bugnumber="llvm.org/pr27787")
> - @expectedFailureAll(
> - bugnumber="llvm.org/pr28353",
> - oslist=["linux"],
> - archs=[
> - "i386",
> - "x86_64"],
> - compiler="gcc",
> - compiler_version=[
> - "<",
> - "4.9"])
> @skipIf(debug_info="gmodules") # not relevant
> @skipIf(oslist=["windows"]) # Error in record layout on Windows
> def test_top_level_expressions(self):
>
>
> _______________________________________________
> lldb-commits mailing list
> lldb-commits at lists.llvm.org
> http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/lldb-commits/attachments/20171107/e020d995/attachment-0001.html>
More information about the lldb-commits
mailing list