暂停和继续嵌入的ruby代码

时间:2010-02-11 21:17:30

标签: ruby scripting embedded-ruby pausing-execution

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

1 个答案:

答案 0 :(得分:1)

如果要存储Ruby变量以供日后使用,则需要使用名为Marshaling的功能。创建一个类,您可以在其中存储要保存的所有变量,并使用Marshal::dump将类存储到文件中。稍后可以使用Marshal::load将数据重新组合成Ruby变量。

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