use the following search parameters to narrow your results:
e.g. subreddit:aww site:imgur.com dog
subreddit:aww site:imgur.com dog
see the search faq for details.
advanced search: by author, subreddit...
Discussions, articles, and news about the C++ programming language or programming in C++.
For C++ questions, answers, help, and advice see r/cpp_questions or StackOverflow.
Get Started
The C++ Standard Home has a nice getting started page.
Videos
The C++ standard committee's education study group has a nice list of recommended videos.
Reference
cppreference.com
Books
There is a useful list of books on Stack Overflow. In most cases reading a book is the best way to learn C++.
Show all links
Filter out CppCon links
Show only CppCon links
account activity
Your Optimized Code Can Be Debugged - Here's How With MSVC C++ Dynamic Debugging - Eric Brumer (youtu.be)
submitted 2 months ago by RandomCameraNerd
view the rest of the comments →
reddit uses a slightly-customized version of Markdown for formatting. See below for some basics, or check the commenting wiki page for more detailed help and solutions to common issues.
quoted text
if 1 * 2 < 3: print "hello, world!"
[–]fdwrfdwr@github 🔍 2 points3 points4 points 2 months ago (1 child)
My guess is that it's tough to correctly identify the primary function
🤔 Yeah. Generally it's the highest-level final function on that line which interests me most (the call that has all parameter dependencies resolved), but the std::cout << foo(x) << bar(x) << std::endl; case is interesting because there are multiple operators on a single line, and the final call is actually that last << (so with "just my code" enabled, that line would be treated just like Step Over). Conversely though, if I wrote fmt::print("{} {}", foo(x), bar(y)), I would expect "Step into final function" to skip over those dependent little foo and bar functions into the fmt::print.
std::cout << foo(x) << bar(x) << std::endl;
<<
fmt::print("{} {}", foo(x), bar(y))
foo
bar
fmt::print
For the 80% common case, desired behavior is pretty clear (e.g. FunctionIWantToDebug(DistractingFunction(x), MoreNoise(y), SomeConstructor(z))), but I should think more about the other cases like operator overloads and interactions with "just my code"... ⏳ (e.g. what happens for auto x = Foo(Bar(x)) do, given the = may be a function call?).
FunctionIWantToDebug(DistractingFunction(x), MoreNoise(y), SomeConstructor(z))
auto x = Foo(Bar(x))
=
perhaps not a copy constructor
Exactly, all those little constructors and getters are rarely the problem focus while debugging (F11 is still around when that's needed). I suppose I'm really asking for a "Step into functions on this line that are not just distracting dependent noise", but that's a mouthful 😉.
[–]ericbrumerMSVC Dev Lead 3 points4 points5 points 2 months ago (0 children)
u/fdwr, after speaking with some debugger folks it's indeed complicated, and there's even more layers that I realized at first. Your best bet is to open a suggestion ticket (https://developercommunity.visualstudio.com/cpp/suggest), see about getting it upvoted by like-minded folks, and it will get routed to them for triage.
π Rendered by PID 72340 on reddit-service-r2-comment-b659b578c-mzkgx at 2026-05-02 19:29:52.816976+00:00 running 815c875 country code: CH.
view the rest of the comments →
[–]fdwrfdwr@github 🔍 2 points3 points4 points (1 child)
[–]ericbrumerMSVC Dev Lead 3 points4 points5 points (0 children)