我正在看一个变量,在单次运行期间分配了数千个值。它被设置了好几次,并且很难通过设置断点来重新分配代码工作流。 有没有办法输出变量对.txt文件所有的值?我希望在不修改实际的C++代码的情况下实现这一点,只需使用调试工具即可。Visual Studio。调试。如何将一个变量在运行期间的所有值保存到文件中?
2
A
回答
2
为了真正接近您正在寻找的内容,您需要结合Visual Studio的两个功能:数据断点和跟踪点。只要内存中的存储值发生更改,数据断点就可以通知调试器。要设置数据断点,启动调试器,并选择调试→新建断点→数据断点...:
由于我们感兴趣的变量myValue
,我们地址设置为&myValue
,并设置大小为4个字节(因为这是一个int
就是在Windows上):
现在,这已经很酷了。但对于非侵入性的记录,我们将设置操作还有:
重要的设置是日志消息([MYSIG]
是任意的签名,这样有趣的日志条目以后可以过滤),转储变量的值,以及继续执行复选框。后者使得这种非侵入性(或低侵入性;记录大量信息对运行时性能有明显影响)。
随着到位,运行该代码
inline void DataTracepoint() {
volatile int myValue{ 0 };
for (int i = 0; i < 10; ++i) {
myValue = i;
}
}
产生在调试输出窗格中的下列输出:
[MYSIG] myValue = 0 [MYSIG] myValue = 1 [MYSIG] myValue = 2 [MYSIG] myValue = 3 [MYSIG] myValue = 4 [MYSIG] myValue = 5 [MYSIG] myValue = 6 [MYSIG] myValue = 7 [MYSIG] myValue = 8 [MYSIG] myValue = 9
该输出然后可以很容易地在分析你最喜欢的文字处理器
+0
@RaquelRedondo:[我应该怎么做当有人回答我的问题?](http://stackoverflow.com/help/someone-answers) – IInspectable
相关问题
- 1. 在整个Tomcat运行时期间保存一个变量
- 2. 将Visual Studio项目中的所有文件保存为UTF-8
- 3. 将微调值保存到变量中
- 4. 如何将对象保存到Visual Studio中的fooSettings.settings文件中?
- 5. 如何从一个文件运行所有夜间测试?
- 6. 存储厕所到一个变量保存完整的文件
- 7. 在cmake/Visual Studio项目中调试/运行可执行文件
- 8. Visual Studio:在单个项目中运行所有测试?
- 9. 在Visual Studio 2012中生成之前保存所有文件?
- 10. Visual Studio中无法找到文件 - 在Visual Studio调试
- 11. 保存工作区 - 将所有变量保存到文件。 Python没有它)
- 12. Visual Studio在调试器中显示{...}作为Javascript变量的值
- 13. 链接到所有Visual Studio $变量
- 14. 如何在Visual Studio中保存一个int值?
- 15. 使用spyder库将所有变量保存到spydata文件
- 16. 在Visual Studio 2013中,如何在调试时将变量的内容转储到文件?
- 17. 如何在文件中保存一些变量值
- 18. 在Visual Studio Online中构建期间运行负载测试
- 19. 将一个可变文件保存到一个文件夹中
- 20. 如何获取Visual Studio单元测试将文件复制到测试区域? (在运行/调试时工作)
- 21. 如何将设置文件保存到Visual Studio中的发布文件夹?
- 22. 如何在调试执行期间保存Visual Basic按钮更改
- 23. 如何将文件名保存到cmd中的变量中?
- 24. 在Visual Studio 2010中进行调试期间IntelliSense问题?
- 25. 在Visual Studio中运行所有打开的测试
- 26. Visual Studio本机测试:在所有测试运行后写入文件
- 27. Visual Studio在调试时跳到其他所有行
- 28. 在Visual Studio 2013中保存文档时运行命令行?
- 29. 我如何将它保存到一个变量中,以便我可以将它保存到文件中
- 30. 如何在Visual Studio中调试单个.cpp文件?
使用可以使用trace()命令将变量状态输出到调试器控制台。如果你想将这些值转储到一个文本文件中,你可以使用fstream函数。 – seccpur
最简单的方法:设置转储值的跟踪点(带有您喜欢的某些签名)。完成后,您可以简单地将Debug输出复制到文件中,然后搜索您的签名。与@seccpur的建议相反,这不需要任何代码更改。 – IInspectable