问题标签 [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.
.net - 如何更改托管可执行文件.net 的默认堆栈大小
我们发现我们的一个自动生成的程序集在 new() 上抛出了 StackOverflowException。此类具有(请耐心等待)400 多个在构造函数中初始化的简单属性(大多数默认情况下(字符串)等)。
我们注意到它在 64 位上很好,但在 32 位上它会爆炸!
我们需要测试我们的用例是否可以合理地创建一个更大的默认堆栈,以便在我们重新设计代码生成器时给我们喘息的空间。
我们会特别是。如果可能的话,对涉及 app.config 的解决方案感兴趣。但我是一个现实主义者,所以一切都会好的。
重新堆栈溢出的原因。我们已将错误范围缩小到有问题的构造函数中。我的第一印象也是无限递归的类型。但是,我们使用 3 行控制台应用程序重现了该错误:
- 创建一个空的类实例。
- 调用类的非静态方法(克隆),第一个工作是创建和空实例准备将属性传递到。
当它碰到第二个构造函数时它会爆炸。
现在使用 .net 源代码进行调试,我们看到堆栈溢出在 Guid.NewGuid() 中,它作为第二个参数传递给构造函数。实际的代码行是对本机 CoCreateGuid() 调用的调用。
因此,虽然它可能是 CoCreateGuid() 中的错误,但我们希望从问题中消除我们的代码。我的第一个想法是大量增加堆栈的大小,看看这个错误是否再次发生。然后,因为我认为我们可以控制所有用例,所以将构造函数替换为对象初始化 - 认为这可以减轻堆栈的压力。
NB。我们可以通过从类中删除 int 属性来阻止错误的发生。
java - StackOverFlow 错误 - 来自实例化我的对象类
我正在尝试在 Java 中创建一个类,该类构建一个类型的对象,该对象Action
包含三个整数并将其返回给我在数组中的另一个类history
,其中history
是类型数组Action
。当它被调用时,我立即得到一个无限循环;因此堆栈溢出。
错误 - 我打印了 1 行,它继续...
班级:
dependency-injection - 使用 StructureMap 时有没有办法检测和调试循环引用?
最近我一直在使用大量的小对象,因为它们更简单,更容易重用。大多数情况下,使用 StructureMap(很棒的工具,顺便说一句)将这些对象相互注入没有任何问题。但偶尔,我搞砸了,我以堆栈溢出异常(tm)为幌子得到了一个很好的循环引用。
因此,除了查看自上次测试运行以来我最近所做的所有更改之外,StructureMap 是否提供任何用于调试循环引用的机制,或者是否有一个简单的工具可以在这种情况下有用?
感谢大家!
c# - 在 C# 中使用 ApplicationCommands 打开菜单时堆栈溢出
当我将 ApplicationCommands 命令添加到文件菜单中的 MenuItem 时,无论是通过 XAML 还是通过代码,当我打开菜单时,应用程序在堆栈溢出中崩溃,完全没有关于问题的详细信息。当我删除命令时,问题也消失了。我使用哪个 ApplicationCommand 并不重要。
调用堆栈的一部分:
- WindowsBase.dll!MS.Utility.ArrayItemList.ArrayItemList(int size) + 0x20 bytes
- WindowsBase.dll!MS.Utility.FrugalStructList.Capacity.set(int value) + 0x6a bytes
- WindowsBase.dll!MS.Utility.FrugalStructList.FrugalStructList(int size) + 0x9 bytes
- PresentationCore.dll!System.Windows.EventRoute.EventRoute(System.Windows.RoutedEvent routedEvent) + 0x35 字节
- PresentationCore.dll!System.Windows.EventRouteFactory.FetchObject(System.Windows.RoutedEvent routedEvent) + 0x31 字节
- PresentationCore.dll!System.Windows.UIElement.RaiseEventImpl(System.Windows.DependencyObject sender = {System.Windows.Controls.RichTextBox},System.Windows.RoutedEventArgs args = {System.Windows.Input.CanExecuteRoutedEventArgs})+ 0x3f 字节
- PresentationCore.dll!System.Windows.UIElement.RaiseEvent(System.Windows.RoutedEventArgs args = {System.Windows.Input.CanExecuteRoutedEventArgs}, bool trust) + 0x35 字节
- PresentationCore.dll!System.Windows.Input.RoutedCommand.CriticalCanExecuteWrapper(对象参数,System.Windows.IInputElement 目标,bool 可信,System.Windows.Input.CanExecuteRoutedEventArgs 参数)+ 0x80 字节
PresentationCore.dll!System.Windows.Input.RoutedCommand .CanExecuteImpl(object parameter = null, System.Windows.IInputElement target = {System.Windows.Controls.RichTextBox}, bool trust = false, out bool continueRouting = false) + 0x70 bytes - PresentationCore.dll!System.Windows.Input.RoutedCommand.CriticalCanExecute(object parameter, System.Windows.IInputElement target, bool trust, out bool continueRouting) + 0x3a bytes
- PresentationCore.dll!System.Windows.Input.CommandManager.TransferEvent(System.Windows.IInputElement newSource, System.Windows.Input.CanExecuteRoutedEventArgs e = {System.Windows.Input.CanExecuteRoutedEventArgs}) + 0x52 字节
- PresentationCore.dll!System.Windows.Input.CommandManager.OnCanExecute(object sender, System.Windows.Input.CanExecuteRoutedEventArgs e) + 0x8c bytes
PresentationCore.dll!System.Windows.UIElement.OnCanExecuteThunk(object sender, System.Windows.Input. CanExecuteRoutedEventArgs e) + 0x44 字节 - PresentationCore.dll!System.Windows.Input.CanExecuteRoutedEventArgs.InvokeEventHandler(System.Delegate genericHandler, object target) + 0x41 bytes
PresentationCore.dll!System.Windows.RoutedEventArgs.InvokeHandler(System.Delegate handler, object target) + 0x27 bytes PresentationCore。 dll!System.Windows.RoutedEventHandlerInfo.InvokeHandler(object target, System.Windows.RoutedEventArgs routedEventArgs) + 0x3e 字节
PresentationCore.dll!System.Windows.EventRoute.InvokeHandlersImpl(object source = {System.Windows.Controls.RichTextBox}, System. Windows.RoutedEventArgs args = {System.Windows.Input.CanExecuteRoutedEventArgs},bool reRaised = false) + 0x1bf 字节 - PresentationCore.dll!System.Windows.UIElement.RaiseEventImpl(System.Windows.DependencyObject 发件人 = {System.Windows.Controls.RichTextBox},System.Windows.RoutedEventArgs args = + 0x79 字节
- PresentationCore.dll!System.Windows.UIElement.RaiseEvent(System.Windows.RoutedEventArgs args = {System.Windows.Input.CanExecuteRoutedEventArgs}, bool trust) + 0x35 字节
- PresentationCore.dll!System.Windows.Input.RoutedCommand.CriticalCanExecuteWrapper(对象参数,System.Windows.IInputElement 目标,bool 可信,System.Windows.Input.CanExecuteRoutedEventArgs 参数)+ 0x80 字节
看起来应用程序陷入了无限循环。这是我的错(我做错了什么)还是 .NET 3.5 中的错误?
我使用这段代码:
无论我是通过代码还是在 XAML 中创建 menuItem 都没有关系,就像我说的那样,在哪里设置命令也无关紧要。使用 MediaCommands 时也会出现这个问题,所以我猜一般是所有命令。
富文本框代码:
RichTextBox 被添加到从 TabItem 派生的控件的构造函数中。
stack-overflow - 尝试使用 Spirit 解析内容时,我不断收到堆栈溢出
我想当我开始出现堆栈溢出时,是时候来这里询问了;)
我现在正在尝试学习如何使用 Boost Spirit。我已经弄清楚了基本的东西。由于我手头有 K&R(其中包含 C 的语法),我决定看看我是否可以为该语言创建一个接受器。无论如何,这或多或少是我最初的目标,因为我最终想用它作为预处理器从数据结构和东西中收集一些信息。
我能够解析常量和字符串,但是当我尝试解析这个时,我开始遇到问题。
当我传递类似i++
它失败的东西时。我认为这是因为i
它是有效的primary_expression
,所以它不会继续检查++
or --
。我试着把它放在底部,然后我得到堆栈溢出。我在这里得到了一些无限的左递归,但我不知道如何解决它。
language-agnostic - 什么是堆栈溢出?
什么是堆栈溢出错误?它可能出现在哪种类型的程序/编程语言中?它不太可能出现在 Web 应用程序代码中吗?
c# - 为什么这个 Linq 代码总是抛出 System.StackOverflowException?
唯一解决问题的是一个显式循环:
operating-system - 堆栈溢出和缓冲区溢出有什么区别?
编程中的堆栈溢出和缓冲区溢出有什么区别?
apache-flex - flex组合框自定义问题
我是 flex 新手,我需要在组合框中创建项目和子项目,其中只有子项目是可点击的。类似于给定链接中显示的内容,如下所示:http: //blog.flexexamples.com/2007/09/25/creating-a-custom-combobox-item-renderer-in-flex/ 但这里有标题和选项同时点击,而我需要唯一的选项应该是可点击的有没有办法做同样的事情。请帮忙。提前谢谢。
javascript - Javascript 投票服务器。这会导致堆栈溢出吗?
我不太熟悉每个浏览器上每个 javascript 实现的细节。但是我知道使用 setTimeout,传入的方法会在单独的线程上调用。那么在方法内部递归使用 setTimeout 会导致其堆栈无限增长,直到导致堆栈溢出?或者它会创建一个单独的调用堆栈并在失去焦点后销毁当前帧?这是我想知道的代码。
我想每隔一秒左右轮询一次服务器,但不想通过“阻塞循环”浪费 CPU 周期——我也不想设置用户在浏览器死机之前可以访问页面的时间限制。
编辑
使用萤火虫,我设置了几个断点,通过查看“脚本 - >堆栈”面板看到调用堆栈实际上只是“pollServer”,它不会在每次调用时增长。这很好 - 但是,JS 的任何其他实现是否有不同的行为?