[Lldb-commits] [PATCH] D132624: [LLDB] Devirtualize coroutine promise types for `std::coroutine_handle`

Jason Molenda via Phabricator via lldb-commits lldb-commits at lists.llvm.org
Fri Nov 25 12:33:43 PST 2022


jasonmolenda added a comment.

I temporarily reverted this via

  commit 2b2f2f66141d52dc0d3082ddd12805d36872a189
  Author: Jason Molenda <jason at molenda.com>
  Date:   Fri Nov 25 12:28:28 2022 -0800
  
      Revert "[LLDB] Recognize `std::noop_coroutine()` in `std::coroutine_handle` pretty printer"
      
      This reverts commit 4346318f5c700f4e85f866610fb8328fc429319b.
      
      This test case is failing on macOS, reverting until it can be
      looked at more closely to unblock the macOS CI bots.
      
        File "/Volumes/work/llvm/llvm-project/lldb/test/API/functionalities/data-formatter/data-formatter-stl/generic/coroutine_handle/TestCoroutineHandle.py", line 121, in test_libcpp
          self.do_test(USE_LIBCPP)
        File "/Volumes/work/llvm/llvm-project/lldb/test/API/functionalities/data-formatter/data-formatter-stl/generic/coroutine_handle/TestCoroutineHandle.py", line 45, in do_test
          self.expect_expr("noop_hdl",
        File "/Volumes/work/llvm/llvm-project/lldb/packages/Python/lldbsuite/test/lldbtest.py", line 2441, in expect_expr
          value_check.check_value(self, eval_result, str(eval_result))
        File "/Volumes/work/llvm/llvm-project/lldb/packages/Python/lldbsuite/test/lldbtest.py", line 306, in check_value
          test_base.assertEqual(self.expect_summary, val.GetSummary(),
      AssertionError: 'noop_coroutine' != 'coro frame = 0x100004058'
      - noop_coroutine+ coro frame = 0x100004058 : (std::coroutine_handle<void>) $1 = coro frame = 0x100004058 {
        resume = 0x0000000100003344 (a.out`___lldb_unnamed_symbol223)
        destroy = 0x0000000100003344 (a.out`___lldb_unnamed_symbol223)
      }
      Checking SBValue: (std::coroutine_handle<void>) $1 = coro frame = 0x100004058 {
        resume = 0x0000000100003344 (a.out`___lldb_unnamed_symbol223)
        destroy = 0x0000000100003344 (a.out`___lldb_unnamed_symbol223)
      }
  
      Those lldb_unnamed_symbols are synthetic names that ObjectFileMachO
      adds to the symbol table, most often seen with stripped binaries,
      based off of the function start addresses for all the functions -
      if a function has no symbol name, lldb adds one of these names.
      This change was originally landed via https://reviews.llvm.org/D132624


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D132624/new/

https://reviews.llvm.org/D132624



More information about the lldb-commits mailing list