Even with IDEs, reading C++ source code and compiler/debugger output consumes so much mental overhead for no reason. It is so ugly.
Do I need to see the freaking train-long types of every single thing in my entire codebase at all times? No.
We should have an option to only reveal types of specific items. For example I could hover over a variable and then reveal to me that it is a boost::beast::basic_flat_buffer<std::allocator<char> >.
By default types should be hidden, you care about the logic flow of your program. If you are triaging types, then they are still there for you.
"Here is what I want from a future debugger when working on a hard to debug problem:
It should be able to show me the source code
It should be able to show me the IR
It should be able to show me disassembly
I want to be able to step through the program on each of these levels of abstraction, depending on the function and the problem."
You don't need a "future debugger" since current debuggers can do all of those already so I am not sure what the rant is about. Probably a skill issue.
> We should have an option to only reveal types of specific items. For example I could hover over a variable and then reveal to me that it is a boost::beast::basic_flat_buffer<std::allocator<char> >.
Which IDE do you use that does not support that already?
With zero reference to IDE based tooling, which exists for 30 years for a reason.
Even with IDEs, reading C++ source code and compiler/debugger output consumes so much mental overhead for no reason. It is so ugly.
Do I need to see the freaking train-long types of every single thing in my entire codebase at all times? No.
We should have an option to only reveal types of specific items. For example I could hover over a variable and then reveal to me that it is a boost::beast::basic_flat_buffer<std::allocator<char> >.
By default types should be hidden, you care about the logic flow of your program. If you are triaging types, then they are still there for you.
Everything you asked for has existed for like decades..
"Here is what I want from a future debugger when working on a hard to debug problem:
It should be able to show me the source code
It should be able to show me the IR
It should be able to show me disassembly
I want to be able to step through the program on each of these levels of abstraction, depending on the function and the problem."
You don't need a "future debugger" since current debuggers can do all of those already so I am not sure what the rant is about. Probably a skill issue.
> We should have an option to only reveal types of specific items. For example I could hover over a variable and then reveal to me that it is a boost::beast::basic_flat_buffer<std::allocator<char> >.
Which IDE do you use that does not support that already?
See, a good example of lacking IDE experience, that is just one of many Visual Studio debugger capabilities.
Which is about decade old feature by now.
C++ itself is a nightmare