问题标签 [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.
c# - 这个简单的 C# 代码会导致堆栈溢出吗?
我有一个主要将字符串记录到文本文件的类库。它的方法之一是 LogString(string str) 所以我只是想知道基于下面的函数,如果我多次调用它,比如超过 600 次,它会导致 stackoverflow 吗?
c++ - C++ 程序中堆栈溢出的症状是什么?
我刚刚遇到一个问题,当本地对象试图调用一个非常简单的过程时,HPUX 上的线程 c++ 程序中的堆栈溢出导致 SEGV_MAPERR。我有一段时间感到困惑,但幸运的是,我与一个认识到这是堆栈大小问题的人交谈,我们能够通过增加线程可用的堆栈大小来解决这个问题。
如何识别堆栈何时溢出?windows/linux/hpux 上的症状是否不同?
wcf - IIS 堆栈溢出
我们一直在寻找我的 WCF Web 应用程序 (W2K3 IIS) 上的一个错误,该错误导致了 stackoverflow。
为了解决这个问题,我需要通过创建一个具有我想要分配的内存量的线程来增加我的应用程序的堆栈。
但是子线程会发生什么?我的应用程序创建了许多线程,它们会继承该值还是我必须为每个线程设置新值?
编辑:如果我将(WCF)服务作为控制台主机运行,它们就可以正常工作。此外,如果我修改 w3wp.exe 的堆栈(使用 EDITBIN),它们在 IIS 上也可以正常工作。
所以我需要增加堆栈。我知道我可以创建一个具有堆栈大小的线程(还有其他方法吗?)但我需要知道子线程会发生什么。
Edit2:我们需要定义一些导致堆栈溢出的大向量。所以这不是我们系统中的错误。我真的需要(必须)增加堆栈
c# - 在 C# 中使用递归
在使用递归时是否有任何一般规则来避免stackoverflows?
c - C 标准是否定义了堆栈溢出行为?
是否有处理堆栈溢出的定义行为?
除了终止进程之外,似乎没有很多事情可以做。我只是想知道是否有人可能知道 C 标准对此有何评论。
internet-explorer - Internet Explorer 上的“第 0 行堆栈溢出”
今天我的博客突然弹出这个错误,我在谷歌上搜索但仍然没有找到任何东西。但它不会发生在 Firefox 上,只发生在 IE7 和 IE8 上。我已经停用了所有 wordpress 的插件,但仍然出现错误。
我已经上传了截图
delphi - 保存和堆栈溢出
我在 Delphi 中保存不同的大型数据库类型时遇到问题。它包含一个 TItem 的数组 [1..3500],而 TItem 又包含两个数组 [1..50] 和 [1..20]。除非我将变量设置为指针并使用下面的 GetMem、FreeMem 命令,否则我会出现堆栈溢出,但是我无法保存它。代码如下。
c++ - 在 Windows 中调试堆栈溢出?
所以我试图调试这个奇怪的问题,一个进程在没有调用一些析构函数的情况下结束......
在 VS (2005) 调试器中,当我看到以下内容时,我点击了“Break all”并查看了神秘消失进程的线程的调用堆栈:
闻起来像 SO http://img6.imageshack.us/img6/7628/95434880.jpg
这绝对看起来像一个正在制作的 SO,这可以解释为什么这个过程会在没有先打包手提箱的情况下运行到它快乐的地方。
问题是,VS 调试器的调用堆栈只显示您在图像中看到的内容。
所以我的问题是:我怎样才能找到无限递归调用的开始位置?
我在某处读到,在 Linux 中,您可以将回调附加到 SIGSEGV 处理程序并获取有关正在发生的事情的更多信息。
Windows上有类似的东西吗?
c - 如何检测堆栈溢出的点
我的 C 程序有以下问题: 某处是堆栈溢出。尽管在没有优化和调试器符号的情况下进行编译,但程序会以以下输出退出(在 Linux 上的 gdb 内部或外部):
程序因信号 SIGSEGV、分段错误而终止。该程序不再存在。
我可以检测到这实际上是堆栈溢出的唯一方法是通过 valgrind 运行程序。有什么办法可以强制操作系统转储调用堆栈跟踪,这将帮助我找到问题?
可悲的是,gdb 也不允许我轻松进入该程序。
c# - 实时调试堆栈溢出
我有一个托管代码 Windows 服务应用程序,由于托管 StackOverFlowException,它在生产中偶尔会崩溃。我知道这一点是因为我在崩溃模式下运行了 adplus 并使用 SoS 分析了崩溃转储事后分析。我什至附加了 windbg 调试器并将其设置为“未处理的异常”。
我的问题是,我看不到任何托管堆栈或切换到任何线程。当调试器中断时,它们都被拆除了。
我不是 Windbg 专家,并且没有在实时系统上安装 Visual Studio 或使用该工具进行远程调试和调试,是否有人对我如何从有问题的线程中获取堆栈跟踪有任何建议?
这就是我正在做的事情。
!线程
...
XXXX 11 27c 000000001b2175f0 b220 已禁用 00000000072c9058:00000000072cad80 0000000019bdd3f0 0 Ukn System.StackOverflowException (0000000000c010d0)
...
此时你会看到 XXXX ID 表明线程已经死了。