c++ - 遵循代码流程

标签 c++ debugging execution flow breakpoints

我正在尝试学习我最喜欢的一款游戏中的关卡格式,这几乎完全没有记录。基本上,描述关卡格式的唯一文档就是简单地说明诸如 First 12 bytes: header
4 following bytes: number of materials
x next bytes: array of materials,
诸如此类。

我对十六进制非常缺乏经验,不完全理解他们在说什么。但是,有一个关卡编辑器,源代码可在 google code 上免费获得。我正在考虑将其添加到我的 Visual Studio 中,并尝试通过阅读关卡编辑器如何打开文件来学习关卡格式。

然而,另一个问题,我不会c++(我会python)。这意味着我可能无法找到代码的哪一部分读取字节等等。

我正在寻找的是能让我在代码执行过程中遵循代码流程的东西。本质上类似于在每一行设置断点,并让我在读取文件内容时显示代码的特定部分正在执行。 但是,显然在每一行都设置断点是非常困惑和缓慢的。当我在编辑器中打开文件时,我正在寻找能够简单地显示正在运行的代码的东西。

有人知道我能做什么吗?谢谢。

最佳答案

您正在寻找一种从一个语句跳转到下一个语句的功能;我知道的每个调试器都有这样的功能。您首先在感兴趣区域的开头设置一个断点,然后从那里开始“单步执行”您的代码。

例如在 Visual C++ 2010 中,F10 键执行一步;您还可以使用 F11“进入”下一条语句(例如方法调用)。

在您的情况下,将断点设置为开始读取关卡文件的位置,然后从那里继续。找到读取文件的位置也可能是一个难题——取决于代码的清晰度;但如果它的代码编写得很好,那么应该有一个名称中带有“read”或“load”或类似名称的方法 - 你会明白的!

不过,您可能必须至少了解一些基本的 C++ 语法才能了解正在发生的事情。

我还建议阅读调试方法(例如 this one)。

关于c++ - 遵循代码流程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12315157/

相关文章:

c++ - 检测函数对象(仿函数)和 lambda 特征

c++ - EXPECT_EQ 错误

c++ - Eigen:接受固定大小和类型的通用矩阵表达式的函数签名

python - 免费 Heroku 服务器 : Does Sleep Count as Active Time?

javascript - "Phased"在javascript中执行函数

c++ - 在 Windows 中编译 Faster RNNLM 的问题

Android Realm - 调试

visual-studio-2010 - Visual Studio 2010 : very slow web applications debugging!

python-3.x - 当变量取某个值时,如何使 PyCharm 中断?

javascript - 本地 Javascript 代码如何执行?