问题标签 [stack-level]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
526 浏览

javascript - SystemStackError - 堆栈级别太深

我知道这里有很多系统堆栈错误问题......但每个问题和答案都是独一无二的。并没有找到一个靠近我的。

我真的不明白为什么我会收到这个错误......

我不需要视图,因为表单是通过 ajax 发送的。我验证了我的编码是否可以使用 rails 控制台插入新记录。

我验证了路线:

提交此表单时出现系统堆栈错误:

通过 AJAX 提交的 JavaScript

控制器

形式:

0 投票
1 回答
202 浏览

ios - 随机堆栈级别太深 (SystemStackError)

我最近在我的代码中遇到了一个奇怪的小鬼。它会随机地在一段代码上转储一个“堆栈级别太深(SystemStackError)”错误,该代码以前(有时是之前)一直在工作。我已经阅读了此处涉及堆栈级别的类似线程,但似乎找不到我的问题。某处发生了递归,但似乎不一致。

最常见的两个错误点:

运行我的测试,第一个错误会弹出用户名,在成功完成这个测试之前只有片刻。重置后再次运行我的测试会引发第二个错误,这更加奇怪,因为测试需要通过这一点运行,甚至可以到达我们在第一次运行时达到的用户名。这个顺序并不一致。有时它只会在一件或另一件上出错,从而难以追踪。

有问题的两个错误的代码。

0 投票
1 回答
45 浏览

ruby - 如果我在方法中使用常规 if 语句,但在使用三元运算符时说“堆栈级别太深”,为什么程序会通过所有测试?

我正在处理名为机器人名称的编码挑战。我也对此进行了测试。该程序通过了所有测试。代码如下..

如果您需要查看测试文件,可以在此处查看robots_name_tests

然后我开始重构,第一件事就是重构no_duplicate方法。所以重构后的代码看起来像这样

有了这个版本,所有的测试都显示出来了SystemStackError: stack level too deep。考虑到提供的代码,为什么会出现此错误以及在这两种情况下的幕后情况?谢谢!

0 投票
0 回答
72 浏览

ruby-on-rails - Ruby on Rails -- SystemStackError:堆栈级别太深

我在创建后和更新前向我的模型添加了一些代码,现在我无法保存我的帖子 btw 两个模型(用户和帖子)都有 has_and_belongs_to_many 关系:

是什么导致了这个,我应该改变什么来摆脱这个错误?

0 投票
2 回答
490 浏览

ruby-on-rails - Rails:before_save - 堆栈级别太深

我有这个简单的模型:

每次Stack level to deep创建新的Post.

现在,当我删除before_save :re_process, on: :update一切工作正常。

这条线不应该只在我更新帖子时生效吗?

0 投票
1 回答
769 浏览

ruby - 调试堆栈级别太深的错误 - Ruby

我正在构建一个井字游戏,用户可以在其中玩电脑,或者电脑可以互相玩。在构建 AI 时,我遇到了以下错误。我该如何调试呢?我知道这与某处的循环有关,但我找不到它。


冒犯的方法

lib/players/computer.rb


库/游戏.rb


bin/tictactoe 调用#run_game 中以下块中的方法:

0 投票
0 回答
158 浏览

c++ - ruby 本机扩展中的堆栈级别太深错误,如何降低堆栈级别?

我有一个 Ruby on Rails api,它处理一个简单的 API 调用并返回一些加密数据。加密是在 C++ 中使用 ruby​​ 本机 C api 完成的。(参考这里)。

本机部分在作为独立程序编译和链接时可以正常工作,并且在 IRB 中与 ruby​​ 一起使用时也可以正常工作。

但是,当我在 Rails API 中使用它时,有时会收到“堆栈级别太深”错误。

错误似乎发生或不发生取决于处理的数据的大小。

根据这个答案,堆栈'级别'实际上是堆栈空间,所以如果我有更多数据要处理,那么我在堆栈中有更多数据,所以它会更快地填满等等......

为了简单起见并避免忘记释放分配的内存,我最初将所有变量都留在了堆栈中。看到这个错误,我切换到了动态分配的方法。然而与我的预期相反,堆栈级别太深的错误发生在更小的数据大小。

数据控制器.rb

native_encryptor.cpp

加密.h

加密.cpp

(实际的加密来自这里

我得到的错误堆栈跟踪:

相信这个错误的原因是堆栈上分配的数据过多,而不是递归问题。但是,我不明白为什么切换到堆分配并没有改善任何东西。

我可以想象2个解决方案:

  1. 在 ruby​​ 中切割数据并用更少的数据多次调用本机方法。
  2. 增加红宝石堆栈大小。但是,对于我的项目,对于性能/资源问题,这两种解决方案都不理想。

有没有其他方法可以减少程序对堆栈的使用?

0 投票
0 回答
33 浏览

ruby-on-rails-3.2 - 将 rails 3.1.10 升级到 3.2.0 时堆栈级别太深

将我的 rails 应用程序从升级3.1.103.2.0.
rails console开得很好。而且,我能够在控制台中执行代码。但是,当我rails serverbrowser. 它失败并显示以下错误。

SystemStackError(堆栈级别太深):actionpack (3.2.21) lib/action_dispatch/middleware/reloader.rb:70

Rendered /home/sarwan/.rvm/gems/ruby-1.9.3-p551@project-name/gems/actionpack-3.2.21/lib/action_dispatch/middleware/templates/rescues/_trace.erb (0.8ms)
Rendered /home/sarwan/.rvm/gems/ruby-1.9.3-p551@project-name/gems/actionpack-3.2.21/lib/action_dispatch/middleware/templates/rescues/_request_and_response.erb (0.7ms)
Rendered /home/sarwan/.rvm/gems/ruby-1.9.3-p551@project-name/gems/actionpack-3.2.21/lib/action_dispatch/middleware/templates/rescues/diagnostics.erb within rescues/layout (13.8ms)
缓存读取:http://localhost:3000/favicon.ico ?

任何帮助将不胜感激。