3 ms·
I'm referring to the MSVC "backend" for Rust, not Visual Studio.
by wbond 10y ago
I'm referring to the MSVC "backend" for Rust, not Visual Studio.
- steveklabnik 10y agoAh! What things are you looking for in its maturity? In some ways, it's actually the most mature backend; stack probes work with it, for example. Windows isn't my personal area of expertise though.
- wbond 10y agoI've been following https://github.com/rust-lang/rfcs/issues/1061 https://github.com/rust-lang/rfcs/issues/1061 for a while. It seems that high-level pieces are there, but that certain elements useful in day-to-day software engineering still need some more time.
- retep998 10y agoYay, someone actually follows that issue. If you have the time, you should really consider helping to improve the Rust experience on Windows. There's a huge shortage of Windows developers in the Rust community.
- steveklabnik 10y agoSeconded, and you have done so much work on this front. It'd be wonderful if we had more people to advocate for and help do this work.
- deleted 10y ago[deleted]
- wbond 10y agoUnfortunately I am already overcommitted with open source projects. For now I am content to wait and see how it all plays out. It will be great to have another language where Windows support is really first-rate.
- Rusky 10y agoProbably the biggest drawback of the MSVC backend is that its debugging symbols only have line numbers, no variable/type information. The rest is mostly Windows-specific issues like manifests and subsystems.
- retep998 10y agoActually, the PDB debug info has variable and type information and a lot of it actually works. There's just a few minor issues here and there with stuff like fat pointers.
- Rusky 10y agoOh, that's fantastic- how recent is this? Last time I tried debugging an -msvc binary was only a couple months ago.
- retep998 10y agoIt might have been due to either https://github.com/rust-lang/rust/pull/31319 https://github.com/rust-lang/rust/pull/31319 or an LLVM upgrade. But stuff like looking at the values of basic integer types, the fields of structs, tuple fields, thin pointers, and even many enums works fine. You just have to make sure you have debug info enabled. Keep in mind std in the Rust distribution was built without debuginfo, so if you step into functions from that, things don't work too well.
- IsmaOlvey 10y agoMSVC is commonly used to refer to Visual Studio, more specifically the C++ compiler that's part of it (originally "Microsoft Visual C++"), which would explain the parent confusing the two.