2010-05-06 105 views
14

我很想知道是否有方法在C#VS 2008中编辑代码,当它碰到断点时我正在通过代码行走......我可以修改代码(例如变量中的值,或者如果我的stepthrough行将要打if语句...我可以修改if语句....等等)? 到目前为止,我必须停止运行VS,修改代码,然后按F5并等待直到再次命中断点。在调试模式下在Visual Studio 2008中编辑代码

当断点遇到并且我正在执行代码时,我尝试编辑代码时,收到消息“当调试器已连接到正在运行的正在调试的代码的进程时,不允许进行更改在构建或运行时进行了优化。“

+0

你试过了吗? – SLaks 2010-05-06 12:37:18

+0

什么语言? – SLaks 2010-05-06 12:37:36

+0

我正在使用C#。我试过了,但是我收到一条消息:“在调试器已连接到正在运行的正在调试的代码的进程已在构建或运行时进行了优化时,不允许进行更改。” – user279521 2010-05-06 13:13:45

回答

6

我知道为什么Edit + Continue在Debug版本中被禁用的原因只有几个。首先是64位操作系统,E + C只适用于32位代码。使用Project + Properties,Build选项卡,Platform Target = x86修复此问题。

这也是一个可能已被关闭的选项。工具+选项,调试,编辑并继续,启用复选框。

如果这没有帮助,请告诉我们更多关于您正在调试的代码类型,您在启动项目时选择的项目模板,如何让调试器中断以及从Call Stack窗口。

+0

目标平台是“任何中央处理器”。我更改为x86,E&C仍然无法正常工作。 工具+选项,调试。 E&C复选框已启用。 – user279521 2010-05-06 14:05:29

+0

我在后面的代码中调试C#代码。该项目模板为WebForm.aspx。我放了一个断点让调试器断开。我如何获得堆栈跟踪副本? – user279521 2010-05-06 14:09:54

+2

@user,请阅读:http://whyiamright.wordpress.com/2007/12/20/aspnet-edit-and-continue-in-visual-studio-2005/ – 2010-05-06 14:47:57

4

是的,你可以。
这被称为Edit and Continue
请注意,它有一些limitations

编辑:您需要切换到调试版本。

+0

如何做“编辑并继续”? – user279521 2010-05-06 12:37:18

+0

打入调试器(打一个断点或按暂停按钮)和*编辑*的代码然后*继续*播放按钮或F5(或F10或F11取决于你在做什么) – Paolo 2010-05-06 12:39:26

0

在回答这个问题:

我可以修改代码(如一个变量,如果我 stepthrough线即将撞上如果 语句 价值......我可以修改如果 声明....等)?

不能弹出一个新的值到一个变量直接,但你可以做的是这样的:

  1. 设置断点
  2. 当该断点时,请单击左侧的箭头保证金并拖动它到上一行
  3. 现在你可以添加代码来改变的情况下(例如,您可以将变量设置为一个新值,添加/从集合中删除项等)

请参阅关于启用编辑&继续的其他解答 - 特别是确保您处于调试模式。

0

要解决这个问题,我做了以下...

BUILD>配置管理器

活动解决方案配置:DEBUG 项目环境配置:DEBUG

然后工具>选项>调试>编辑& CONTINUE 确保编辑&继续选择

然后BUILD> CLEAN SOLUTION then BUILD> REBUILD SOLUTION

然后开始调试,然后暂停,然后你的代码应该是可编辑的

1

要在中断模式下修改变量的值或设置属性,请转到立即窗口,设置新值并返回例如

strValue = "newValue" 
Calendar1.Enabled = true 

要检索一个值,您可以将其打印到窗口e.e.

?strValue 
?Calendar1.Enabled 
1
  1. 停止运行您的应用。
  2. 转到工具>选项>调试>编辑并继续
  3. 禁用“启用编辑并继续”。
相关问题