问题标签 [stack-overflow]

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 回答
986 浏览

wcf - StackOverflowException 序列化 .netTiers 实体

我有一个简单的 WCF 服务:

当它返回时,它会在 mscorlib 中引发 StackOverflowException。知道是什么原因造成的吗?

OrderService 是 NetTiers 生成的服务,而 Order 是 NetTiers 实体对象。当我返回时,数据已经从数据库中提取并准备好了。在我从操作返回后,除了 WCF 中的错误之外,还有什么可能导致 StackOverflowException?

0 投票
3 回答
1252 浏览

java - 许多返回的记录导致 Hibernate 的 stackoverflow

如果有很多来自 DB 的返回记录。它会得到stackoverflow问题。 User是一个类,它具有一对多的关系(与其他 3 个类)。当我打印出 SQL 时,我发现系统多次运行相同的查询以从 DB 中获取数据。有谁知道问题是什么?

0 投票
8 回答
3978 浏览

java - Project Euler (P14):递归问题

嗨,我正在做 Euler 项目中的 Collat​​z 序列问题(问题 14)。我的代码适用于低于 100000 的数字,但如果数字更大,则会出现堆栈溢出错误。

有没有办法可以重构代码以使用尾递归,或防止堆栈溢出。代码如下:

0 投票
2 回答
338 浏览

c++ - 运算符 ThisClass() 导致堆栈溢出

我想保持类简单而不是定义构造函数,所以我可以做 Pt data = {0, 5}; 所以我认为将 Pt_t 从短期转换为长期或反之亦然的最佳方法是做这样的事情。

编译器不喜欢这样,并在返回 pt 时调用运算符 Pt_t;从而得到堆栈溢出。我该如何防止这种情况?我能想到的唯一解决方案是让 Pt_t 使用构造函数删除 Pt_t pt = {1, 2}; 如果可以的话,我更愿意保留它。

0 投票
8 回答
4411 浏览

c - 产生堆栈溢出

如何在 GNU/linux 中创建堆栈溢出的条件?

0 投票
5 回答
2936 浏览

c++ - 如何保证在 Visual Studio 2005 下的 C++ 中捕获 EXCEPTION_STACK_OVERFLOW 结构化异常?

背景

  • 我有一个带有Poof-Crash [ 1 ] 的应用程序。我相当肯定这是由于堆栈爆炸造成的。
  • 该应用程序是多线程的。
  • 我正在用“ Enable C++ Exceptions: Yes With SEH Exceptions (/EHa)”编译。
  • 我写了一个 SE Translator 函数并_set_se_translator()用它调用。
  • 我已经为 和 setupset_terminate()set_unexpected().
  • 要获得 Stack Overflow,我必须在重负载下以发布模式运行几天。在调试器下运行不是一种选择,因为应用程序的执行速度不够快,无法达到查看问题所需的运行时间。
  • 我可以通过在执行其中一个函数时添加无限递归来模拟问题,从而测试EXCEPTION_STACK_OVERFLOW异常的捕获。
  • 我将 WinDBG 设置为故障转储程序,并获得有关所有其他崩溃问题的好信息,但不是这个。故障转储将仅包含一个线程,即“Sleep()”。所有其他线程都已退出。

问题

我尝试过的所有事情都没有导致出现EXCEPTION_STACK_OVERFLOW异常。

有谁知道如何保证在发布模式下运行时有机会遇到这个异常?

定义

  1. Poof-Crash:应用程序因“噗”而崩溃并消失得无影无踪。

(考虑到这个网站的名称,我有点惊讶这个问题还没有出现在这里!)

笔记

  1. 简要发布了一个关于调整堆栈大小以可能更快地强制问题并允许使用调试器捕获它的答案。这是一个聪明的想法,但不幸的是,我不相信它会有所帮助。该问题可能是由导致无限递归的极端情况引起的。缩短堆栈不会很快暴露问题,并且可能会导致有效深度代码中的无关崩溃。好主意,感谢您发布它,即使您确实删除了它。
0 投票
3 回答
3833 浏览

sql - 如何在 CASE WHEN 语句中获取 HSQLDB 中超过 1000 个项目?

我在 Hypersonic DB (HSQLDB) 中运行以下查询:

当“WHEN”子句的数量超过大约 1000 条时,我会StackOverflowErrororg.hsqldb.jdbc.Util.sqlException().

这是真正奇怪的部分:我尝试CASE用例如 100 个 WHEN 子句后跟ELSE ( CASE foo WHEN ... ) END. 但是即使进行了这种重写,我也会得到完全相同的行为!

我在 HSQLDB 手册中没有看到任何对 1000 限制或任何其他内容的引用。帮助!

0 投票
8 回答
15440 浏览

java - 在 Java 中序列化对象时出现 StackOverflowError

我正在使用 Swing 用 Ja​​va 编写应用程序。我正在尝试实现在我正在运行的模拟中保存和加载模拟状态的功能。整个模拟被保存为一个对象,与 Swing 断开连接。我正在尝试使用以下代码序列化我的 Simulation 类:

但我收到以下错误(它很大)。

谁能告诉我是什么导致了这个异常?

0 投票
3 回答
413 浏览

operator-overloading - 删除重载,递归溢出

嘿伙计们,我写了一个快速测试。我想 delete 调用 deleteMe 然后删除自己。这样做的目的是让我可以正常删除由 lib 分配的 obj。(我不希望由于 crt 或 w/e 导致任何崩溃)。

删除这个我得到一个stackoverflow,没有它msvc说我泄露了4个字节。当我不调用测试时,我泄漏 0。我如何删除 w/oa 递归问题?-edit- 使这一点更清楚。由于crt,我希望LIB调用delete(因此deleteMe)而不是程序

0 投票
2 回答
5272 浏览

c - ubuntu 上的堆栈执行保护和随机化

作为课程作业的一部分,我需要编写一个利用代码来导致缓冲区溢出并执行堆栈上存在的代码。

我已经通过以下命令关闭了堆栈随机化: sysctl -w kernel.randomize_va_space=0 但是,我无法找到关闭堆栈执行保护的方法。我不确定 ubuntu 中是否有一些堆栈 exec 保护......所以我的第一个问题是 ubuntu 8.10 中是否有类似 red hat 的 exec-shield 的东西,如果有,我们如何将其关闭。

我一直试图导致缓冲区溢出并从堆栈执行指令,但是每当我尝试这样做时,它都会给我一个段错误。

我有 ubuntu 8.10 64 位,但是,即时调试程序是在 i386 机器上编译的,堆栈保护关闭。