[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