1

我通过嵌入命令(rb_eval 等)从我的 C++ 代码中调用 Ruby 函数。有什么方法可以中途停止代码的执行,保存局部变量,然后从同一个地方重新启动它?

4

1 回答 1

1

如果您想存储 Ruby 变量以供以后使用,您需要使用一个名为Marshaling的功能。创建一个类,您可以在其中存储要保存的所有变量,并用于Marshal::dump将类存储到文件中。稍后可以使用Marshal::load.

从特定点重新启动代码可能并不容易。您可以编组类和数据,但不一定是整个 Ruby 解释器本身的状态。一种可能性是在您的封送数据中存储足够的状态信息,以便您重新加载数据并确定您需要从哪里获取数据。

于 2010-02-11T22:31:04.970 回答