I tried compile this code:
use std::time::Duration;
fn main() {
let runtime = tokio::runtime::Builder::new_multi_thread()
.enable_time()
.build()
.unwrap();
runtime.spawn(async {
tokio::time::sleep(Duration::from_secs(1)).await;
println!("hello world");
});
std::thread::sleep(Duration::from_secs(2));
}
Now, inspect DWARF info for the type:
Arc<tokio::runtime::scheduler::multi_thread::queue::Inner<alloc::sync::Arc<tokio::runtime::scheduler::multi_thread::handle::Handle, alloc::alloc::Global>>, alloc::alloc::Global>
Expected Behavior
Complete type description including members (as in Rust 1.87):
DW_TAG_structure_type
DW_AT_name "Arc<...>"
DW_AT_byte_size 8
// ... with member descriptions
Actual Behavior
Truncated type info in Rust 1.88:
< 3><0x000039bb> DW_TAG_structure_type
DW_AT_name "Arc<...>"
DW_AT_byte_size 8
// NO member descriptions
Impact
This breaks debugger tools that rely on parsing these types. In my case, it prevents analyzing tokio's scheduler context for async debugging, as critical type information is missing.
Meta
rustc --version --verbose:
rustc 1.88.0 (6b00bc388 2025-06-23)
binary: rustc
commit-hash: 6b00bc3880198600130e1cf62b8f8a93494488cc
commit-date: 2025-06-23
host: x86_64-unknown-linux-gnu
release: 1.88.0
LLVM version: 20.1.5
I tried compile this code:
Now, inspect DWARF info for the type:
Arc<tokio::runtime::scheduler::multi_thread::queue::Inner<alloc::sync::Arc<tokio::runtime::scheduler::multi_thread::handle::Handle, alloc::alloc::Global>>, alloc::alloc::Global>Expected Behavior
Complete type description including members (as in Rust 1.87):
Actual Behavior
Truncated type info in Rust 1.88:
Impact
This breaks debugger tools that rely on parsing these types. In my case, it prevents analyzing tokio's scheduler context for async debugging, as critical type information is missing.
Meta
rustc --version --verbose: