gpt4 book ai didi

c++ - 是否有记录代码执行的工具?

转载 作者:塔克拉玛干 更新时间:2023-11-03 07:30:24 24 4
gpt4 key购买 nike

假设我有一个程序由几个关于积分变量的“基本”算法组成,例如:

if(a<b)
a += c;

有没有一种工具可以让我在运行时自动记录对不同变量所做的所有更改?

例如,在这种情况下它会显示在日志文件中:

 "condition passed because 5=a < b=10
a += 10; because c=10"

或一些等价物。

我知道我可以手动记录每个操作,但那太复杂了。有什么工具可以让我做这样的事情吗?我不关心重构/重新编译,只要它不是完全手动的。

最佳答案

您可以编写自己的整数类来相应地重载运算符(使用自动日志记录)。如果该类还提供隐式转换(从 int 的构造函数和到 int 的转换运算符),那么您“仅”需要更改变量和参数的类型以自动记录。但是你只能记录地址而不是名字(或者从它派生的东西,比如 var20)。在 #define 的帮助下,您可以轻松地在原始整数(无日志记录)或带日志记录的整数类之间切换。

要将变量的名称也写入日志中,要么必须用宏重写运算符,例如

if (LESS(a,b))
INC(a,c)

或者有一个解析器可以自动将您的代码转换成这样的东西。但我不知道有任何现有工具提供此功能。

关于c++ - 是否有记录代码执行的工具?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13035245/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com