[PATCH] D75338: [Coroutines] Use dbg.declare for frame variables
Brian Gesiak via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Sun Mar 1 20:56:20 PST 2020
modocache added a comment.
I tried adding an lldb test for this, but I encountered 39 failing tests when I ran `ninja cxx check-lldb`, and it made me wonder whether tests that use libc++ are currently broken?
Testing Time: 343.25s
********************
Failing Tests (39):
lldb-api :: commands/expression/import-std-module/basic/TestImportStdModule.py
lldb-api :: commands/expression/import-std-module/conflicts/TestStdModuleWithConflicts.py
lldb-api :: commands/expression/import-std-module/deque-basic/TestDequeFromStdModule.py
lldb-api :: commands/expression/import-std-module/deque-dbg-info-content/TestDbgInfoContentDequeFromStdModule.py
lldb-api :: commands/expression/import-std-module/forward_list-dbg-info-content/TestDbgInfoContentForwardListFromStdModule.py
lldb-api :: commands/expression/import-std-module/forward_list/TestForwardListFromStdModule.py
lldb-api :: commands/expression/import-std-module/list-dbg-info-content/TestDbgInfoContentListFromStdModule.py
lldb-api :: commands/expression/import-std-module/list/TestListFromStdModule.py
lldb-api :: commands/expression/import-std-module/no-std-module/TestMissingStdModule.py
lldb-api :: commands/expression/import-std-module/queue/TestQueueFromStdModule.py
lldb-api :: commands/expression/import-std-module/shared_ptr-dbg-info-content/TestSharedPtrDbgInfoContentFromStdModule.py
lldb-api :: commands/expression/import-std-module/shared_ptr/TestSharedPtrFromStdModule.py
lldb-api :: commands/expression/import-std-module/stack/TestStackFromStdModule.py
lldb-api :: commands/expression/import-std-module/unique_ptr-dbg-info-content/TestUniquePtrDbgInfoContent.py
lldb-api :: commands/expression/import-std-module/unique_ptr/TestUniquePtrFromStdModule.py
lldb-api :: commands/expression/import-std-module/vector-bool/TestVectorBoolFromStdModule.py
lldb-api :: commands/expression/import-std-module/vector-dbg-info-content/TestDbgInfoContentVectorFromStdModule.py
lldb-api :: commands/expression/import-std-module/vector-of-vectors/TestVectorOfVectorsFromStdModule.py
lldb-api :: commands/expression/import-std-module/vector/TestVectorFromStdModule.py
lldb-api :: commands/expression/import-std-module/weak_ptr-dbg-info-content/TestDbgInfoContentWeakPtrFromStdModule.py
lldb-api :: commands/expression/import-std-module/weak_ptr/TestWeakPtrFromStdModule.py
lldb-api :: functionalities/data-formatter/data-formatter-stl/libcxx/bitset/TestDataFormatterLibcxxBitset.py
lldb-api :: functionalities/data-formatter/data-formatter-stl/libcxx/forward_list/TestDataFormatterLibcxxForwardList.py
lldb-api :: functionalities/data-formatter/data-formatter-stl/libcxx/function/TestLibCxxFunction.py
lldb-api :: functionalities/data-formatter/data-formatter-stl/libcxx/iterator/TestDataFormatterLibccIterator.py
lldb-api :: functionalities/data-formatter/data-formatter-stl/libcxx/list/loop/TestDataFormatterLibcxxListLoop.py
lldb-api :: functionalities/data-formatter/data-formatter-stl/libcxx/map/TestDataFormatterLibccMap.py
lldb-api :: functionalities/data-formatter/data-formatter-stl/libcxx/multimap/TestDataFormatterLibccMultiMap.py
lldb-api :: functionalities/data-formatter/data-formatter-stl/libcxx/multiset/TestDataFormatterLibcxxMultiSet.py
lldb-api :: functionalities/data-formatter/data-formatter-stl/libcxx/optional/TestDataFormatterLibcxxOptional.py
lldb-api :: functionalities/data-formatter/data-formatter-stl/libcxx/queue/TestDataFormatterLibcxxQueue.py
lldb-api :: functionalities/data-formatter/data-formatter-stl/libcxx/set/TestDataFormatterLibcxxSet.py
lldb-api :: functionalities/data-formatter/data-formatter-stl/libcxx/string/TestDataFormatterLibcxxString.py
lldb-api :: functionalities/data-formatter/data-formatter-stl/libcxx/tuple/TestDataFormatterLibcxxTuple.py
lldb-api :: functionalities/data-formatter/data-formatter-stl/libcxx/unordered/TestDataFormatterUnordered.py
lldb-api :: functionalities/data-formatter/data-formatter-stl/libcxx/variant/TestDataFormatterLibcxxVariant.py
lldb-api :: functionalities/data-formatter/data-formatter-stl/libcxx/vbool/TestDataFormatterLibcxxVBool.py
lldb-api :: functionalities/data-formatter/data-formatter-stl/libcxx/vector/TestDataFormatterLibcxxVector.py
lldb-api :: lang/cpp/std-function-step-into-callable/TestStdFunctionStepIntoCallable.py
Expected Passes : 1604
Expected Failures : 5
Unsupported Tests : 294
Unexpected Failures: 39
This list of 39 tests lines up fairly well with ones that specify `USE_LIBCPP := 1` in their Makefile, or `@add_test_categories(["libc++"])` in their Python test file. They all fail with the same assertion that indicates no breakpoints were hit: `AssertionError: 0 != 1 : Expected 1 thread to stop at breakpoint, 0 did.` Unfortunately, I couldn't find a working example of a test that uses libc++.
Initially, using a freshly `rm -rf` and `mkdir`'ed build directory, I ran `ninja check-lldb`, and all builds and tests succeeded. Then, I tried to add a simple test case that included `<cstdio>` and `<experimental/coroutine>`, but this failed with `fatal error: 'cstdio' file not found`. So I'm currently in a bind: build the `cxx` target that my test would depend on, and my `check-lldb` test suite begins failing. Don't build it, and I can't run my test. Also, for what it's worth, I tried a configuration that used `cmake -DLLVM_ENABLE_PROJECTS="clang;clang-tools-extra;libcxx;libcxxabi;lld;lldb"` and `ninja check-all`, and these same 39 tests also failed.
I checked the LLVM buildbots to see if any exercised a libc++ & lldb build. I found 3 active lldb buildbots:
- http://lab.llvm.org:8011/builders/lldb-x86_64-debian: It looks like the cmake-configure step of this bot uses `-DLLVM_ENABLE_PROJECTS=lldb;llvm;clang;lld`, so I think it doesn't build the libcxx project and so wouldn't encounter these failing tests.
- http://lab.llvm.org:8011/builders/lldb-aarch64-ubuntu: Same as above.
- http://lab.llvm.org:8011/builders/lldb-x64-windows-ninja: Same as above.
Let me know if this is PEBKAC, I'd love to add a coroutines regression test to the suite, but at the moment I can't figure out how to successfully run the tests.
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D75338/new/
https://reviews.llvm.org/D75338
More information about the llvm-commits
mailing list