## require is_lto=false
## require optimize=none

[zxdb] set debug-mode true
Set

[zxdb] run-component fuchsia-pkg://fuchsia.com/zxdb_e2e_inferiors#meta/async_rust.cm
Launched Process 1 state=Running koid=?? name=async_rust.cm component=async_rust.cm
🛑

# TODO(https://fxbug.dev/292107156): Use local unwinding once we can download symbols in E2E tests.
[zxdb] frame --force-remote-unwind
▶ 0

[zxdb] async-backtrace
## allow-out-of-order-output
Task(id = 0x??)
└─ async_rust::main::func • select_mod.rs:??
   └─ select!
      └─ async_rust::foo • join_mod.rs:??
         └─ join!
            └─ async_rust::baz • async_rust.rs:??
               └─ fuchsia_async::runtime::fuchsia::timer::Timer
            └─ async_rust::baz • async_rust.rs:??
               └─ fuchsia_async::runtime::fuchsia::timer::Timer
            └─ fuchsia_async::scope::Join(0x??)
            └─ fuchsia_async::scope::Join(0x??)
            └─ fuchsia_async::JoinHandle(id = 0x??)
      └─ async_rust::bar • async_rust.rs:??
         └─ async_rust::baz • async_rust.rs:??
            └─ fuchsia_async::runtime::fuchsia::timer::Timer
      └─ async_rust::main::func::λ • async_rust.rs:??
         └─ fuchsia_async::Task(id = 0x??)
Task(id = 0x??)
└─ async_rust::baz • async_rust.rs:??
   └─ fuchsia_async::runtime::fuchsia::timer::Timer
Task(id = 0x??)
└─ async_rust::baz (Unresumed) • async_rust.rs:??
Scope("scope1")
└─ Task(id = 0x??)
   └─ async_rust::baz • async_rust.rs:??
      └─ fuchsia_async::runtime::fuchsia::timer::Timer
Scope("scope2")
└─ Task(id = 0x??)
   └─ async_rust::baz (Unresumed) • async_rust.rs:??
└─ Task(id = 0x??)
   └─ async_rust::foo::λ (Unresumed) • async_rust.rs:??
└─ Scope("scope2_child")
   └─ Task(id = 0x??)
      └─ async_rust::baz (Unresumed) • async_rust.rs:??

[zxdb] async-backtrace --use-tree
## allow-out-of-order-output
Task(id = 0x??)
└─ async_rust::main::func • select_mod.rs:??
   └─ select!
      └─ async_rust::foo • join_mod.rs:??
         └─ join!
            └─ async_rust::baz • async_rust.rs:??
               └─ fuchsia_async::runtime::fuchsia::timer::Timer
            └─ async_rust::baz • async_rust.rs:??
               └─ fuchsia_async::runtime::fuchsia::timer::Timer
            └─ fuchsia_async::scope::Join(0x??)
            └─ fuchsia_async::scope::Join(0x??)
            └─ fuchsia_async::JoinHandle(id = 0x??)
      └─ async_rust::bar • async_rust.rs:??
         └─ async_rust::baz • async_rust.rs:??
            └─ fuchsia_async::runtime::fuchsia::timer::Timer
      └─ async_rust::main::func::λ • async_rust.rs:??
         └─ fuchsia_async::Task(id = 0x??)
Task(id = 0x??)
└─ async_rust::baz • async_rust.rs:??
   └─ fuchsia_async::runtime::fuchsia::timer::Timer
Task(id = 0x??)
└─ async_rust::baz (Unresumed) • async_rust.rs:??
Scope("scope1")
└─ Task(id = 0x??)
   └─ async_rust::baz • async_rust.rs:??
      └─ fuchsia_async::runtime::fuchsia::timer::Timer
Scope("scope2")
└─ Task(id = 0x??)
   └─ async_rust::baz (Unresumed) • async_rust.rs:??
└─ Task(id = 0x??)
   └─ async_rust::foo::λ (Unresumed) • async_rust.rs:??
└─ Scope("scope2_child")
   └─ Task(id = 0x??)
      └─ async_rust::baz (Unresumed) • async_rust.rs:??

[zxdb] kill
Process 1 killed.
