jjzjj

stack-overflow

全部标签

c# - Windows 服务/无法为堆栈创建新的保护页

我有一个Windows服务,每分钟做一些密集的工作(实际上它每次启动一个新线程,在其中它通过http同步到不同的系统)。问题是,几天后,它突然停止,没有任何错误消息。我已经安装了NLog并且我已经注册了AppDomain.CurrentDomain.UnhandledException。文本文件日志中的最后一个条目只是正常条目,没有任何问题。查看事件日志,我在应用程序日志中也找不到任何消息,但是,系统日志中有两个条目。基本上说服务已意外终止。而已。第二个事件(与第一个事件同时发生)说:“...无法为堆栈创建新的保护页...”根据我的阅读,这可能是堆栈溢出异常。我不解析任何XML,也不做

c# - UInt64 和 "The operation overflows at compile time in checked mode"- CS0220

这感觉像是一个愚蠢的问题,但我似乎看不到答案。我有一个UInt64,它的最大值应该是UInt64.MaxValue18446744073709551615但是,当我尝试分配一个中等大小的数字时,出现“在检查模式下编译时操作溢出”的溢出错误。如果我将它包装在一个“未经检查”的block中,那么它会编译并运行,就像这个变量为零一样:UInt64value1=1073741824*8;//CompileerrorCS0220UInt64value2=8589934592;//Actualvalue-noerror为什么会这样? 最佳答案

c# - 调试由于 StackOverflow 异常而失败的单元测试

每当单元测试由于StackOverflowException而失败时,单元测试过程会立即退出-找出发生了什么(据我所知)的唯一方法是调试单元的故障转储按照此处找到的步骤获得的测试过程CollectingUser-ModeDumps获取在抛出StackOverflowException时正在运行的单元测试的名称的最简单方法是什么?即使在调试单元测试时,我也很难找到当前单元测试的名称,因为它位于堆栈底部,而VisualStudio不会在调试窗口中显示整个堆栈,因为它太大了。有没有办法在不收集和调试故障转储的情况下找出哪个单元测试失败? 最佳答案

c# - C# setter 中的堆栈溢出异常

这个有效:usingSystem;usingConstraintSet=System.Collections.Generic.Dictionary;namespaceConsoleApplication2{classtest{publicConstraintSeta{get;set;}publictest(){a=newConstraintSet();}staticvoidMain(string[]args){testabc=newtest();Console.WriteLine("done");}}}这不是:usingSystem;usingConstraintSet=System.

c# - x64 和 x32 中的不同行为展开堆栈

为什么在下面详述的场景中,堆栈空间在x64中增加而在x32中减少,代码相同?背景:我们的客户可以使用领域语言编写脚本,该语言在运行时使用递归技术进行解释并在网络服务器上执行。他们可能会在脚本中犯错误而引发异常,该异常会被捕获并记录。由于这种递归技术,我们通过检查解释器执行脚本时使用的堆栈空间来防止堆栈溢出异常,并在我们实际用完堆栈之前终止脚本。在32位模式下一切正常,当脚本编写器出错时Exception生成,记录,堆栈展开,在此期间堆栈上剩余的空间增加并且脚本很好地终止。在64位模式下,一切都不太好,当脚本编写器出错时Exception生成,记录,堆栈展开,在此期间堆栈上剩余的空间减少

c# - 在 C# 中使用递归

在使用递归时,有没有关于如何避免堆栈溢出的一般规则? 最佳答案 您能够递归多少次取决于:堆栈大小(通常为1MBIIRC,但二进制文件可以手动编辑;我不建议这样做)递归的每个级别使用多少堆栈(例如,具有10个未捕获Guid局部变量的方法将比没有任何局部变量的方法占用更多堆栈)您正在使用的JIT-有时JIT将使用尾递归,有时则不会。规则很复杂,我记不住了。(有一个blogpostbyDavidBromanbackfrom2007和anMSDNpagefromthesameauthor/date,但它们现在可能已经过时了。)如何避免堆栈溢

C# 重新抛出异常 : how to get the exception stack in the IDE?

这里之前已经讨论过重新抛出异常的正确方法。相反,这个问题是关于如何在使用rethrow时从VisualStudio获得有用的行为。考虑这段代码:staticvoidfoo(){thrownewException("boo!");}staticvoidMain(string[]args){try{foo();}catch(Exceptionx){//dosomestuffthrow;}}出现的异常具有正确的堆栈跟踪,将foo()显示为异常源。但是,GUI调用堆栈窗口只显示Main,而我期望它显示异常的调用堆栈,一直到foo。当没有重新抛出时,我可以使用GUI非常快速地导航调用堆栈,以查看

javascript - 我该如何修复 'Maximum call stack size exceeded' AngularJS

我正在使用AngularJs和Ui-Router,我正在尝试设置两个不同的主页,一个用于已登录的用户,另一个用于未登录的用户。但是我收到以下错误:RangeError:Maximumcallstacksizeexceeded我运行了console.trace(),我发现存在导致状态无限循环(或类似情况)的问题。但是我不知道如何修复它。这是产生错误的代码。.run(function($rootScope,$state,$location,Auth){$rootScope.$on('$stateChangeStart',function(event,toState,toParams,fro

javascript - react ,未捕获的范围错误 : Maximum call stack size exceeded

我正在做React,基本上我想制作一个带有工具提示的按钮,现在我正在制作工具提示。我正在更改css显示属性,以便在鼠标进入和离开期间使其可见或不可见。但是出现错误,我不知道该怎么办...这是我的代码:importReactfrom'react';importReactDOMfrom'react-dom';importStylefrom'style-it';varInk=require('react-ink');importFontIconfrom'../FontIcon/FontIcon';varIconButton=React.createClass({getInitialState

javascript - 查询/JS : Detect user's scroll attempt without any window overflow to scroll to

我正在制作一个转换网站,虽然我想使用用户的滚动尝试作为转换启动器,但我不希望有一个窗口滚动条。现在,我只是检测到用户使用jquery滚动(我已经使我的窗口大小比用户的滚动条屏幕高1px,尽管这是我试图避免的)使用jquery.scroll(function)方法,并使用它来转换我的页面,但是我想检测用户的滚动尝试,而不必让我的页面溢出一个像素,从而显示滚动条如何做到这一点?我所知道的乱码可能性:将窗口定位在外部包装器内,并将滚动条隐藏在包装器的溢出中。这是一个修补工作,而不是解决方案。它会导致页面内容偏离中心,因为并非所有浏览器都使用相同的滚动条宽度。 最佳