4 ms·
LLDB works well enough to sometimes be useful. I've used it with the VS Code native debugger extension [1]. I've encountered a couple annoyances: A. Using rus
by mikebenfield 9y ago
LLDB works well enough to sometimes be useful. I've used it with the VS Code native debugger extension [1].
I've encountered a couple annoyances:
A. Using rustc to link somehow removes debugging information from static libraries I wrote in assembly [2]. This is extremely annoying, but I haven't had time to really look into it and it seems others can't reproduce it.
B. There seem to be some occasional oddball problems when stepping through code. Like it'll skip lines, or stay on the same line for many steps. And also an annoyance regarding how that VS Code extension handles "Step Into" for functions you don't have the source for: you can easily get into an infinite popup situation and have to restart the debugger.
IMO the sad truth is that if a great debugger is a prerequisite to use a language, then you're limited to about 5 total languages.
[1] https://marketplace.visualstudio.com/items?itemName=webfreak.debug https://marketplace.visualstudio.com/items?itemName=webfreak...
[2] https://github.com/rust-lang/rust/issues/45218 https://github.com/rust-lang/rust/issues/45218
- bluejekyll 9y ago> Like it'll skip lines, or stay on the same line for many steps. I've never hit these problems, though I have the source for everything I'm compiling in Rust in general.
- syn_rst 9y agoI've run into it before, but it's not usually too serious. It only usually happens on lines with compound expressions or chained calls like this: foo.into_iter().map(|x| x+1) .filter(|y| y > 2) My working theory is that it's related to situations where there's multiple statements on the same source line (or inside a block inside a lambda).
- bluejekyll 9y agoYeah, quite possibly. I feel like I've stepped through some pretty gnarly iterator chains and it's worked surprisingly well. It is rare that I actually need to turn to the debugger, so I could be mistaken.