在Visual Studio中调试时向后拖动指令指针

时间:2016-06-20 10:13:23

标签: c# visual-studio debugging visual-studio-2015 intellitrace

要进行演示,请查看size

基本上,我知道这在Visual Studio Community Edition 2015中是可行的。我想知道:

a)这与Intellitrace和“历史调试”有关吗? b)当我这样做时会有副作用吗?或者这只是向后移动指令,就是这样吗?

2 个答案:

答案 0 :(得分:2)

只是向后移动指令指针就是这样,使用你自己的话语。

这意味着:

  • 您拖动它的位置与拖动位置之间已经产生的任何副作用已经发生并且不会被撤消。
  • 在指令的同一部分中更改的任何变量仍将被更改,它们不会反转为您将指令指针拖动到
  • 时的任何值。

所以你可以使用这个调试辅助来强制程序采取它没有的路径(例如通过拖动它跳过的if语句中的指令指针),跳过(通过拖动指令指针超过一些你不想执行的代码,或者重新运行一些代码。

但是必须意识到上述限制。如果代码不安全再次执行,那么这样做可能无法帮助您进行调试。

答案 1 :(得分:0)

现在已经可以使用了很长时间。发生在您拖动光标的位置的所有事情都已发生,所以您基本上会重新做这一点。

除非您正在处理某些内容或保存到数据库等,否则不会产生任何实际后果,因为写入相同的现有数据可能会导致异常或处理某些数据。

所有已设置的变量(即使将光标拖动到比初始值更高的位置)也会保留从您向上拖动光标的位置获得的值。