私は Ruby の専門家ではありませんが、いくつかのスクリプトで問題を追跡しようとしていますが、この特定のスクリプトの専門家に連絡して、このエラーが発生した理由を理解することができませんでした。この特定の関数に絞り込みましたが、私が知る限り、最初の print ステートメントは発生しますが、end print ステートメントは発生しません。スタック レベルが深すぎるというエラーは、この関数が以下のように正確に存在する場合にのみ発生します。
def load_power_ports(io_info)
return if !io_info
io_info.each_key do |key|
print key
if !@power_controllers[key.to_s.downcase]
@power_controllers[key.to_s.downcase] = Object.const_get($equipment_table['power_controller'][key.to_s.downcase][0].driver_class_name).new($equipment_table['power_controller'][key.to_s.downcase][0])
end
end
print "end of equipment power block"
rescue Exception => e
raise e.to_s + "\nUnable to create power controller: " + io_info.to_s
end
printステートメントは、どの情報が渡されているか、プログラムがどこまで到達しているか、反復が実行されているかを確認するためだけのものです。