To debug a C ++ program, additional information must be stored in the DLL so that the debugger can learn about the code at runtime. C ++ does not require runtime in order to be able to check the code, unlike C #, which allows for extensive runtime control, also known as reflection. This information is in C # using debug or release mode.
In addition, C ++ is usually compiled directly into machine code in release mode, the goal of the compiler is to optimize the code as much as possible, for example. delete any and all extraneous information and code. In C #, the compiler is compiled into pseudocode, which just in time compiles as needed. This code saves much of what is required for debugging, regardless of whether it is the release or debugging you are creating. So much so that you can write a decompiler to give you the code back from the runtime assembly.
source
share