c++ - 如何在 Visual Studio 2015 C++ 项目调试期间将变量值更改记录到 CSV 文件?

标签 c++ debugging visual-studio-2015 breakpoints export-to-csv

我正在使用遗留 C++ 代码开发一个 war 游戏项目。攻击似乎在“极端情况”下运作异常(例如,一场游戏“方 block ”中的一场战斗,其中 5000 支箭射向一组 3 个团,其中一个可以成为约 5000 支潜在“在一个游戏回合中击中”)。我的任务是整理游戏回合中发生的事情的数据。

我需要记录一个特定局部变量的值在一个游戏回合中对于任何受到攻击的单位的变化情况(仅限于“测试场景”,其中只有一个方 block 中的团受到攻击)。

调试 session 开始时我的 Visual Studio“观察窗口”看起来像这样:

Name----------------------Value------------Type
targ-----------------------011-------------short
(gUnit[011]).damage--------0---------------short
(gUnit[047]).damage--------0---------------short
(gUnit[256]).damage--------0---------------short

这意味着:在第一个断点处,嵌套数组 gUnit[011]) 中表示的团已被确定为该团之前“命中”和“伤害”的目标(“targ”)此命中 = 0。

一个循环后可能会变成这样:

Name----------------------Value------------Type
targ-----------------------256-------------short
(gUnit[011]).damage--------3---------------short
(gUnit[047]).damage--------0---------------short
(gUnit[256]).damage--------0---------------short

这意味着:011团在一次“命中”后遭受了3点伤害,现在确定发生的下一次命中是047团的目标。因此,对于调用循环的每个周期,任何潜在目标都可以重新分配为目标,并且“损坏”的值可以更改。对于这个发射 5000 支箭的示例,可能有 5000 次命中(尽管发射那么多箭不太可能超过 1300 次命中)。对于一个游戏回合中发生的每次命中,我需要记录: 目标和伤害

我有断点设置,我可以手动做我需要做的事情,意思是:

  1. 首先调用确定命中的函数 ["MissileHit()"]

  2. 再次前进并注意 (gUnit[011]).damage 的值已从 0 更改为 3。/* 即 ID 为“011”的军团已受到“3”伤害。 . . */

  3. 对实验 ONE 重复 5000 次(并注意,每个循环 targ 可以更改为三个数组中的任何一个,代表图 block 中受到攻击的单位。

  4. 为测试的第一阶段重复另外 7 个实验(条件略有不同)。

  5. 重复大概 3 或 4 个以上的测试阶段。 . .

总而言之,至少有两列的数千行: targ.......伤害

(作为旁注,此 csv 将在每个测试周期后插入额外的列,因此最终电子表格看起来更像这样: atkrID....地形....atkrExpr....atkrFatig....targID....targDamage

所有这些数据收集的最终结果是:可以根据调解攻击结果的各种游戏内变量计算描述性统计数据)

显然,“手动”执行此操作是荒谬的。

有没有一种简单的方法可以让 Visual Studio 生成 csv 文件来为我记录这些数据?

我当然可以继续编写在这些断点执行时运行的脚本,并将内容流式传输到文件中。但是,我仍然不知所措(包括 Visual Studio、C++ 和一般开发!)所以,我认为值得一问 Visual Studio 是否有内置功能可以促进这一点。

最佳答案

我认为像 Drop 的评论这样的 VS 扩展会是解决这个问题的更好途径,但我认为它需要高扩展知识,所以我只是为这个问题提供另一种解决方法:添加数据断点并将值输出到输出窗口,即使您还需要将值复制并粘贴到您的文件中,但我认为这也方便您在调试期间分析该值。

Visual Studio. Debug. How to save to a file all the values a variable has had during the duration of a run?

关于c++ - 如何在 Visual Studio 2015 C++ 项目调试期间将变量值更改记录到 CSV 文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39902793/

相关文章:

c++ - 在 Windows 7 的 CodeBlocks 16.01 中构建 glfw3 程序失败

msbuild - 一键发布绕过证书验证

debugging - 如何用VS2010 CLR调试SQL Server 2k8

Python pdb(调试器)disp 等效?

c++ - 编译器之间的宏扩展顺序混淆

C++ 多个版本的默认特殊成员函数——MSVC 2015 中的错误

c++ - Boost.Qi 规则与 skipper 不匹配 '.' 字符

c++ - 如何修复宏定义太大的错误

c++ - 将 Mat 对象转换为 double arr (OpenCV)

ios - 边界检查错误