[英]Dumping local variables in C++
我想编写一个函数,该函数将查找所有局部变量并将其保存到磁盘。 稍后,我要加载这些变量以及从中保存变量的调用/调试功能。 目的是加快代码深层功能的调试。
我在Matlab中使用了类似的技术,该技术可以保存整个工作区,然后加载并继续。 我可以在C ++中使用类似/相关的技术吗?
您正在寻找反射器机制。
在C ++中,没有任何反射器工具可以枚举变量,因此您不能像Matlab那样做。
您应该建立一个数据结构并在代码中手动添加变量。 然后做任何你想做的。
在实践中,程序员将使用以下步骤:
保存:
装载:
通话记录如何? 寄存器中的值呢? 您要在函数的第一行还是其他行继续。
您可以尝试编写堆栈,但是只有在没有变量具有构造函数或指向malloc的内存的指针的情况下,该方法才有效。
您可以使用setjmp()获取寄存器中的所有值,并使用longjmp()恢复它们。
如果您使用的是Windows,则可以查看DbgHelp API。 它可能有一种枚举所有局部变量的方法。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.