--- tags: debugging --- # wg-debugging 2022-12-05 meeting ## Agenda - Next upcoming meeting: Triage meeting on Mon, December 19th, 10am ET. - Text meeting in Zulip channel. - Last triage meeting we covered 5 issues. - Next status & design meeting: Wed, January 4th, 12pm ET. - We could also consider skipping with holidays/vacations/etc. ## Recent updates - Merged: [llvm: dwo only emitted when object code emitted](https://github.com/rust-lang/rust/pull/104105) - Fixes [linux split-dwarf fails with -Clinker-plugin-lto](https://github.com/rust-lang/rust/pull/103932) - Thanks @davidtwco - In progress: [Fix variable debuginfo being optimized away at mir-opt-level=2](https://github.com/rust-lang/rust/pull/103657) - 0.3% - 1.6% compiler throughput cost on builds with debuginfo enabled - Related Zulip discussion in #wg-mir-opt: [Revisiting MIR opt levels](https://rust-lang.zulipchat.com/#narrow/stream/189540-t-compiler.2Fwg-mir-opt/topic/Revisiting.20MIR.20opt.20levels) - Others? Notes: - jswrenn has been working on a crate for DWARF based reflection - https://github.com/jswrenn/deflect - https://rust-lang.zulipchat.com/#narrow/stream/317568-t-compiler.2Fwg-debugging/topic/DWARF-directed.20reflection - mw has been working on a gdb python script that can traverse a graph of async tasks and provide a "backtrace" - https://github.com/michaelwoerister/rust-dbg-ext/tree/async-stack-traces-wip - https://rust-lang.zulipchat.com/#narrow/stream/187312-wg-async/topic/Async.20stack.20trace.20support.20library * much discussion of loading debugging extensions * should rust provide a "standard library" for debugger extension authors? * there isn't a great standard way for debugger extensions to be distributed; https://pypi.org/project/gdbundle/ exists but its not clear how much uptake/success it has had * talking about mixing/matching semi-arbitrary debugger-extensions, pnkfelix asked if we could set things up so that each crate could specify which debugger extension it works well with, and mw pointed out that the existing source-code attributes already somewhat serve this purpose well, except that the case of multiple versions of a type from multiple versions of a given crate might not be handled well.