在 Visual Studio 2017 (15.9.16) 中,我可以在使用 Debug > Start Debugging 命令 (F5) 开始构建后继续编辑源文件。虽然我专门针对 C# 编译器提出了这个问题,但了解 C++ 的行为是否不同也会很有趣。
当我在附加调试器后进行编辑并启用编辑并继续时,编辑会带有波浪形的紫色下划线,一切都很清楚。
当我在调试器附加之前进行编辑,并且在构建成功之前保存我的编辑时,整个事情似乎处于不确定状态。要么我的编辑太晚了,调试器就会执行已经构建的代码(除了空心断点项目符号,如果有的话,不明显)。或者它是及时的,并且被包括在内。
当决定是否仍将包含最近的编辑时,构建时间线中的点在哪里?通过构建开始的时间戳?不定?在编译器处理源文件之前?链接器是否检查 obj 是否是从启动后更改的源生成的?