问题标签 [edit-and-continue]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c# - 避免或接受破坏编辑并继续的 C# 构造?
我开发并维护了一个用 C# 2.0 编写的大型 (500k+ LOC) WinForms 应用程序。它是多用户的,目前部署在大约 15 台机器上。该系统的开发正在进行中(可以被认为是永久测试版),并且几乎没有采取任何措施来保护用户免受每周构建中可能引入的潜在新错误的影响。
出于这个原因,除其他外,我发现自己变得非常依赖调试器中的编辑并继续。它不仅有助于寻找错误和修复错误,而且在某些情况下也有助于正在进行的开发。我发现能够从正在运行的应用程序的上下文中执行新编写的代码非常有价值——无需重新编译并向新代码添加特定的入口点(必须添加虚拟菜单选项、按钮等)应用程序并记住在下一次生产构建之前删除它们) - 一切都可以在不停止过程的情况下实时尝试和测试。
我非常重视编辑并继续,以至于我积极编写代码以完全兼容它。例如,我避免:
- 匿名方法和内联委托(除非完全不可能重写)
- 通用方法(稳定、不变的实用程序代码除外)
- 针对“任何 CPU”的项目(即从不以 64 位执行)
- 在声明点初始化字段(初始化移动到构造函数)
- 编写使用的枚举器块
yield
(实用程序代码除外)
现在,我完全意识到 C# 3 和 4 中的新语言特性在很大程度上与编辑并继续(lambda 表达式、LINQ 等)不兼容。这是我拒绝将项目升级到更新版本的框架的原因之一。
我的问题是避免使用这些更高级的结构来支持非常非常容易调试的代码是否是一种好习惯?这种发展有合法性,还是浪费?此外,重要的是,这些构造(lambda 表达式、匿名方法等)是否会产生性能/内存开销,而编写良好、编辑和继续兼容的代码可以避免这些开销?...或者 C# 编译器的内部工作是否使这种高级构造比手动编写的“扩展”代码运行得更快?
c++ - 在 GDB 上编辑并继续
我知道 E&C 是一个有争议的主题,有人说它鼓励错误的调试方法,但仍然 - 我认为我们可以同意在很多情况下它明显有用 - 尝试一些常量的不同值,重新设计 GUI 参数即时找到好看的外观...您的名字。
我的问题是:我们会在 GDB 上进行 E&C 吗?我知道这是一个特定于平台的功能,需要与编译器、调试器和操作系统进行认真的合作(MSVC 很容易做到这一点,因为编译器和调试器总是放在一个包中),但是......它仍然应该是可行的。我什至听说过苹果在他们的 GCC 版本中实现了它[需要引用]。我想说这确实是可行的。
知道所有关于 MSVC 的 E&C 的炒作(我的经验表明这是 MSVC 用户在被问到“为什么不切换到 Eclipse 和 gcc/gdb”时首先提到的),我很惊讶在多年之后 GCC/GDB 仍然没有有这样的特点。有什么好的理由吗?我们说话的时候有人在研究它吗?
c# - 编辑和继续功能在 Visual Studio 2010 中停止工作
Visual Studio Edit and Continue 功能在 Visual Studio 2010 上停止,我不知道是什么导致了问题。
我正在使用 C# 开发一个 Windows 应用程序。此应用程序最初是在 Visual Studio 2008 中开发的,后来升级到 Visual Studio 2010。
一切正常,包括编辑并继续,直到我将 .NET Framework 从 3.5 升级到 4.0。
现在,当我使用调试模式时,更改 IDE 中的任何代码行都会导致以下消息:
进行了无法编译的编辑。在修复编译错误之前无法继续执行。
实际上,没有编译错误,我必须重新启动 Visual Studio 才能运行更新。
如何让“编辑并继续”再次工作?
asp.net - ASP.NET 调试问题
我在 Visual Studio 2010 中构建网站。我最近升级到运行 Windows 7 64 位的新开发机器。现在,当我对网页进行更改时,我必须停止调试,杀死 cassini,并在新代码生效之前重新开始调试。我在XP中没有这个问题。
我尝试过的事情...
- 配置文件中的编译 debug="true"
- 选项->调试->编辑并继续已启用
我不确定这是否遵循动态编译或编辑并继续 - 任何帮助将不胜感激。
编辑
我的一位同事没有这个问题。他与我有相同的设置,使用相同的项目,相同的构建配置(任何 CPU)
visual-studio - 在 Visual Studio 2008 二级窗体中调试
我正在使用 Visual Studio 2008 开发 VB.NET windows 应用程序,该应用程序包含 MDI_PARENT 表单和许多 MDI_CHILDS 表单。
当我运行 F5(开始调试)并停在 BREAK-POINTS 并需要编辑代码时,它允许我以 MDI-PARENT 表单代码进行编辑,但是当我尝试编辑 MDI-CHILD 代码时它给了我以下信息 :
当调试器已附加到已运行的进程时,不允许更改.....
我去了:
工具 -> 选项 -> 调试 -> 编辑并继续
然后我禁用“启用编辑并继续”删除它之前的复选框。然后当我试图编辑它给了我以下错误
当前无法在编辑器中修改此文本。它是只读的
那么,如何在 MDI-CHILDS 表单中启用编辑并继续?
嗯……
asp.net - 在 ASP.NET MVC 3 应用程序中编辑并继续
是否可以使用 Visual Studio 2010 在 ASP.NET MVC 3 应用程序中编辑和继续?如果是这样,我该怎么做?
顺便说一句,我的操作系统平台是 x86。
编辑:当我按 f5 然后尝试编辑代码时,我收到以下错误:代码运行时不允许更改,或者如果禁用了“一个进程中断时中断所有进程”选项。该选项可以在工具、选项、调试中启用。
即使启用了该选项,我也无法在代码运行时编辑我的代码。
c++ - 为什么“编辑并继续”停止工作
我在 VS2008 下有一个大型 C++ 项目,在调试期间使用编辑和继续相当多。但是,有时在进行了很小的更改后,edit and continue 就会停止工作。调试/应用代码更改显示为灰色。如果我全部重建,它往往会回来,但这需要大约 30 分钟。它似乎非常零星,比以前版本的 Visual Studio 更是如此。有什么想法可能导致这种情况吗?
FWIW,我在 VS2008 SP1 上,带有 Whole Tomato 插件,在 32 位 2G XP 盒子上运行。我怀疑这个问题可能与资源有关,但这只是基于这样一个事实,即如果我最近没有重新启动,问题似乎更频繁地发生。
visual-studio-2010 - 我可以将 'Edit-and-continue' = true 作为 Visual Studio 中所有新 Web 项目的默认设置吗?
在 Visual Studio 2010 中创建新的 Web 项目时,我总是忘记启用“编辑并继续”,直到“为时已晚”。(即直到我在调试时进行编辑并希望我能够继续)。所以我希望默认启用“编辑并继续”。
我所指的设置位于项目属性、Web 选项卡、“调试器”部分下。我发现此设置未存储在 .csproj 文件中,而是存储在项目的 .user 文件中,位于名为 <EnableENC> 的节点中。默认情况下它是“假”,但我希望它是“真”。
(这同样适用于 VS2008 和 2005,但我只需要为 VS2010 解决它)
silverlight - 是什么让 Silverlight 的“编辑并继续”变得困难/不可能?下一个最好的事情是什么?
注意:大约 2 年前的相关问题刚刚确认 SL3 无法做到。
由于 Silverlight 5 (AFAICT) 仍然没有编辑和继续支持(即使对于浏览器外的 AFAICT 也是如此),我想问是否有人知道是什么让为 Silverlight 工作变得如此困难?如果它甚至仅限于特定场景(例如,Win7+ 上的 IE10,仅限 32 位 Silverlight 5),我会很高兴,因为至少那时我可以更快/更高效地针对该场景进行开发,然后拥有其他平台用于测试/验证,一旦它在一种情况下工作正常。
我想知道哪些场景最接近但可以进行编辑并继续。唯一让我感到惊讶的是创建一个存在于同一解决方案中的 WPF 应用程序(可能使用 Prism 4,因为它的目标是最大限度地减少 WPF 和 Silverlight 应用程序之间所需的更改)并“一起”开发它们,能够使用用于 WPF 应用程序的 EnC,然后希望只需要在 Silverlight 中进行少量开发。
不过,这比我想经历的麻烦要多得多,我想知道还有什么办法?例如,.NET 4 可以加载/使用 Silverlight 4 程序集,而 WPF 可以托管(IIRC)Silverlight,所以我可以制作一个实际运行我真正的 Silverlight 应用程序的 WPF“外壳”(仅托管在 WPF 应用程序中,本身运行在.NET 4 CLR)。
然而,这样的努力(充其量)是在黑暗中进行的,至少没有对当前 Silverlight CLR/运行时/任何使 EnC 变得困难的原因有一些基本的了解。至少在理论上,知道这一点可能有助于指导更可行(更少麻烦)的解决方法。:)
注意:仅在某些情况下有效的答案(如上所述,如 IE10+Win8+SL5)仍然很值得了解 - 我宁愿在某些时候拥有该功能而不是从不拥有!:)
c++ - 对于 C/C++、Linux,热交换/编辑并继续
我正在寻找一个支持(Visual Studio 的) Edit and continue 功能的 IDE。我知道 Netbeans 为 Java 提供了它(称为热交换、修复和继续),但找不到任何关于 Linux 系统的 C/C++ 实现的信息。
任何帮助将不胜感激。