在Visual Studio中,我可以在断点中打印变量吗? 在VisualStudio中为我的本机C++程序,我想在调试期间得到一些变量的绘图。我主要通过编辑autoexp.dat来使用对象的文本表示。但对于某些变量,最好有一个绘图,而不是文本形式的值

在Visual Studio中,我可以在断点中打印变量吗? 在VisualStudio中为我的本机C++程序,我想在调试期间得到一些变量的绘图。我主要通过编辑autoexp.dat来使用对象的文本表示。但对于某些变量,最好有一个绘图,而不是文本形式的值,c++,visual-studio,visual-studio-2008,debugging,C++,Visual Studio,Visual Studio 2008,Debugging,到目前为止,我使用了一个函数plot(const void*address,const char*type),并从立即窗口调用它,给出变量地址和类型,并在内部将其转换为正确的类型 但这种方法有两个缺点: 首先,当从调试器调用函数时,函数重载几乎不起作用(因此我必须将type作为第二个参数传递),并且函数调用偶尔会崩溃,尽管从代码中调用时,它工作得很好 第二个是,我不想编写一个C++函数来绘图,我很想用脚本语言(比如AutoExp.DAT或VBScript)来给C++对象的内部数据而不写任何包装

到目前为止,我使用了一个函数
plot(const void*address,const char*type)
,并从立即窗口调用它,给出变量地址和类型,并在内部将其转换为正确的类型

但这种方法有两个缺点:

  • 首先,当从调试器调用函数时,函数重载几乎不起作用(因此我必须将type作为第二个参数传递),并且函数调用偶尔会崩溃,尽管从代码中调用时,它工作得很好
  • 第二个是,我不想编写一个C++函数来绘图,我很想用脚本语言(比如AutoExp.DAT或VBScript)来给C++对象的内部数据而不写任何包装器,这样我就可以使用脚本来把数据存储在一个文件中或者绘制它。

一般来说,我对Matlab或Ch IDE之类的东西感兴趣,当程序处于调试中断时,我可以在外部绘制某些变量。

你能用它吗?将要打印的数据吐出为调试打印,然后在断点处将其复制到外部文件并通过绘图仪运行。

自VS 2005以来,Visual Studio已包括在内,它几乎可以是专为您的问题设计的。MSDN比我更能解释这个概念:

可视化工具是 Visual Studio调试器用户界面。 可视化工具会创建一个对话框或 用于显示变量的其他界面 或者以一种有意义的方式 适合其数据类型。对于 例如,HTML可视化工具解释 一个HTML字符串,并显示结果 就像它会出现在浏览器中一样 窗口中,位图可视化工具解释 位图结构,并显示 它所代表的图形,等等。一些 可视化工具也允许您进行编辑 作为查看数据的工具


有关如何编写的教程,请参阅。

正如其他人所指出的,我不确定您希望绘制什么。我通常理解,当有人说他想“画点东西”时,他通常指的是一些带有数值的数组。
如果你的情况是这样,英特尔的可能会有所帮助。它可以免费下载,并集成到visual studio中,您可以通过两种方式使用它:作为独立应用程序或在调试(“在某个断点中”)时使用它,这样您可以“在程序运行时”绘制数组值。

您可以使用和在实时图表中绘制变量


当你说“绘图”时,你的意思是在调试中断时拥有关于变量的所有信息吗?这不是很清楚…一般来说,使用“绘图”我的意思是可以访问变量/对象的所有数据,这样我就可以在这个特定的上下文中以任何形式表示它(比如以特定的格式存储在文件中),“绘图”指的是在屏幕上绘图(比如我可以将向量/数组绘制为2D绘图),可视化工具很好。但不幸的是,我没有找到任何合适的方法来使用它来实现本地C++应用程序。它们是基于.NET的应用程序。混合C++ + C++ + CLI应用程序?重新循环的存在似乎是因为可视化工具的调试对象端需要公开一个.NET接口。从哪里获取数据并不重要。这是一个不错的方法,但NetDebugPlot程序不断崩溃
#include "NetDebugLog.h"

NetLog(myvar);
NetLog("test", myvar2);