你们这些比我更了解的人。
我通过swig包装器调用c ++库。当我在rails控制台中运行它时,当我通过我的规范调用它时,它工作正常。但是,当我在服务器模式下调用它时,它会给出
SystemStackError - 堆栈级别太深:
actionpack(4.2.0)lib / action_dispatch / middleware / reloader.rb:79:in'
那就是它!
问题是在服务器模式下发生的事实是否仅指向任何特定的事情?不知道如何调试它。
我已经在服务器模式下使用了一段时间了。但是我稍微重构了一些东西(在c ++ API中称为不同的方法)并且它突然崩溃了,而且只在服务器模式下。
一个例子(不确定它是非常有启发性的):
require 'awcbc' # Not gemified - is this significant? The awcbc.bundle et al is just plonked in an app/cbc directory
class SolverOfThings < ActiveRecord::Base
def solve_something
model = Awcbc::Model_Builder.new
model.solve # Calls C++ library.
end
end
从控制器调用SolverOfThings :: solve_something,通过html,打破。进入rails c并调用它,不会。
我尝试将ruby堆栈大小增加到荒谬的东西,但没有骰子。
对不起,我已经得到了。有线索吗?