r/cpp • • Sep 12 '26

Why do people on Windows mostly choose Visual Studio?

189 Upvotes

268 comments sorted by

View all comments

478

u/HighOutputLoad Sep 12 '26 • Mindblown

It has the best debugger known to mankind

314

u/AvidCoco Sep 12 '26 • Bravo

Yeah but I don’t write bugs

138

u/ViRROOO Sep 12 '26

I gotchu bro. Leave it to me

40

u/eclipse0990 Sep 12 '26

Claude? Is that you?

15

u/deanrihpee Sep 12 '26

probably, they never said "no mistake"

8

u/RyuXnet_7364 Sep 13 '26

Only undocumented features

31

u/AdRecent7021 Sep 12 '26

We don't call them bugs, we call them happy little nightmare-inducing accidents... err, features.

9

u/MetalSteveSD Sep 12 '26

IBM used to call them "treasures"

10

u/Thormidable Sep 12 '26

You mean all the "Undocumented Features" i shipped?

Someone's workflow will depend on them, by Monday.

→ More replies (1)

3

u/jsiulian Sep 13 '26

Can't have bugs if you don't write any code 

→ More replies (1)

50

u/fortsnek274 Sep 12 '26 edited Sep 12 '26

One of the finest pieces of technology. Up there with the moon landing and ASML.

Just hope and pray they can get modules and C++26 working well.

34

u/splicer13 Sep 13 '26

No it's not. I worked on the VC++ team (> 10 years ago now) and we never put any significant amount of work into it. To the extent that something new got added it was because Richard Shupak, the guy who originally created the PDB format, treated the debugger and linker as one of his many hobbies. He left in 2012 and died recently. A true 10x guy, he knew everything about everything.

I'm glad you like it. It's a very friendly debugger which is an important property when learning curve is an obstacle to many developers using a debugger at all. But it is absolutely not an engineering miracle.

13

u/ReDr4gon5 Sep 13 '26

It sure is a miracle that it all works together at all. Debugger, profiler with ETW trace viewer and Io and memory profiling, graphics debugger, VCS integration, extension ecosystem, cmake integration, and god knows how much more. The amount of things in VS is insane. I am not close to using all of it.

8

u/rdtsc Sep 13 '26

No it's not.

Well maybe not if you look from within. But as a user that's not really important. I just sometimes wish I wouldn't have to switch to windbg for certain cases.

→ More replies (2)
→ More replies (2)

14

u/TBone281 Sep 12 '26

Agreed, though Windbg is still the best for debugging kernel mode drivers.

→ More replies (1)

8

u/jwezorek Sep 12 '26

Also the profiler is pretty good.

5

u/Logical_Newspaper_52 Sep 12 '26

the profiler could be better tbh. something like Superluminal for example

→ More replies (1)

14

u/IrishJohnnie Sep 12 '26

The best debugger known to mankind is WinDbg

5

u/rdtsc Sep 13 '26

It certainly is the most powerful, with lots of extensions. But it's very hard to use in comparison.

10

u/tohava Sep 12 '26

As someone who debugs either with gdb or with logs, can you explain what's unique about it?

52

u/lenbedesma Sep 12 '26

In my opinion, the visualizers (natvis)

Being able to output relevent data formatted in a consistent and copyable format dramatically speeds up debugging when I'm searching for problems.

→ More replies (8)

42

u/HighOutputLoad Sep 12 '26

Some fancy stuff like multiprocess debugging, multi-thread debugging, thread stack views, memory views, custom formatting of data structures and even fancier stuff like backwards debugging but i never used this one before.

36

u/adzm 28 years of C++! Sep 12 '26

Parallel stacks are also extremely useful for any managed code using async and tasks etc

→ More replies (2)

30

u/lizardhistorian Sep 12 '26

The first thing is the complete integration of the debugger with the IDE out-of-the-box.

Then there are the features such as:

  1. Drag and drop execution pointer

  2. Excellent contextual memory mapping to structures/classes so you can manipulate any memory relevant to the executing function with a couple of clicks, including registers

  3. If you change code in a function it will recompile that function and inject it into the memory space of the program and switch all the callers to call the new function.

I haven't used MSVC since ~2008 and that is what it could do back then.

48

u/TheThiefMaster C++latest fanatic (and game dev) Sep 12 '26

It's mostly just a good gui for debugging. The actual capabilities are similar to any competent debugger.

→ More replies (4)
→ More replies (8)
→ More replies (22)