Debugging: add builtin gdbstub component. (#12771)* Debugging: add builtin gdbstub component.This adds a debug component that makes use of the debug-main worlddefined in #12756 and serves the gd
Debugging: add builtin gdbstub component. (#12771)* Debugging: add builtin gdbstub component.This adds a debug component that makes use of the debug-main worlddefined in #12756 and serves the gdbstub protocol, with Wasmextensions, compatible with LLDB.This component is built and included inside the Wasmtime binary, andis loaded using the lower-level `-D debugger=...` debug-main option;the user doesn't need to specify the `.wasm` adaptercomponent. Instead, the user simply runs `wasmtime run -g <PORT>program.wasm ...` and Wasmtime will load and prepare to run`program.wasm` as the debuggee, waiting for a gdbstub connection onthe given TCP port before continuing.The workflow is:```$ wasmtime run -g 1234 program.wasm[ wasmtime starts and waits for connection ]$ /opt/wasi-sdk/bin/lldb # use LLDB from wasi-sdk release 32 or later(lldb) process connect --plugin wasm connect://localhost:1234Process 1 stopped* thread #1, stop reason = signal SIGTRAP frame #0: 0x40000000000001cc-> 0x40000000000001cc: unreachable 0x40000000000001cd: end 0x40000000000001ce: local.get 0 0x40000000000001d0: call 13(lldb) siProcess 1 stopped* thread #1, stop reason = instruction step into frame #0: 0x4000000000000184-> 0x4000000000000184: block 0x4000000000000186: block 0x4000000000000188: global.get 1 0x400000000000018e: i32.const 3664[ ... ]```This makes use of the `gdbstub` third-party crate, into which I'veupstreamed support for the Wasm extensions in daniel5151/gdbstub#188,daniel5151/gdbstub#189, daniel5151/gdbstub#190, anddaniel5151/gdbstub#192. (I'll add vets as part of this PR.)* cargo vets.* Handle Trap events as well as breakpoints.* Review feedback.* Fix gdbstub artifact build to make it publishable (by disabling it when isolated crates are used).* Review feedback.* fix published-crates list* For now, empty gdbstub data but no compile error when artifact crate is published.* add some more Cargo metadata: version for artifact crate dep
show more ...