Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/visual-studio-2012/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Debugging 在调试期间是否可以运行额外的代码行_Debugging_Visual Studio 2012_Fortran - Fatal编程技术网

Debugging 在调试期间是否可以运行额外的代码行

Debugging 在调试期间是否可以运行额外的代码行,debugging,visual-studio-2012,fortran,Debugging,Visual Studio 2012,Fortran,我想在Visual Studio 2012中调试期间执行额外的代码行。 有可能吗。 一个应用程序是执行一些WRITE(,)语句,或计算一些表达式。您可以在Visual Studio中使用#if来执行此操作 #if DEBUG Console.WriteLine("Debug version"); #endif 如果您在英特尔编译器中使用F77,请查看/D-lines选项。您可以像这样编写代码 if (x.gt.10) then x = 0 D

我想在Visual Studio 2012中调试期间执行额外的代码行。 有可能吗。 一个应用程序是执行一些WRITE(,)语句,或计算一些表达式。

您可以在Visual Studio中使用#if来执行此操作

#if DEBUG
    Console.WriteLine("Debug version");
#endif

如果您在英特尔编译器中使用F77,请查看/D-lines选项。您可以像这样编写代码

      if (x.gt.10) then
          x = 0
D         print *, 'x reset'
      end if
如果存在/D-lines选项,它将只编译第1列中带有D的行,否则它将被视为注释。我只在F77上用过这个。我不知道它是否适用于F90等

参考文献

英特尔编译器还支持预处理。你可以用任何一个

  • 带有#if等的C类型宏
  • 原始Microsoft/DEC宏与!十二月美元

如果您使用的是Silverfrost,请查看CIF-CELSE-CENDIF/VPARAM/SPARAM选项。

谢谢您的解释。但我想我没有说清楚。我实际上在寻找类似于GDB中的“p”命令的东西。也就是说,在调试时,您可以打印到屏幕上并查看您想要的任何内容。(VisualStudio监视窗口)设计为以这种方式工作,但对于Fortran,调试器的工作方式不太好。当数据结构为“deep”时,我无法看到对象的所有属性。GDB中的一些其他功能,如“up”和“down”,可用于临时访问范围之外的内存,我将很高兴了解Visual Studio中的类似功能。谢谢。但是有没有一种方法可以让我在调试模式下打印这些行,并且代码不需要重新编译就可以运行额外的代码行呢?我对这个问题补充了一些评论,使自己更清楚。谢谢你的回复!谢谢我从Fortran 95开始。。。所以基本上对遗留F77知之甚少。但是谢谢你的信息!