标签: stack-overflow

导致PHP崩溃

PHP如何导致内存泄漏,缓冲区溢出,堆栈溢出以及此类任何其他错误?PHP甚至会导致这样的错误吗?

php stack-overflow memory-leaks buffer-overflow

13
推荐指数
1
解决办法
433
查看次数

打开Eclipse Android Layout Editor时出错

从昨天起我每次在Eclipse中为Android UI打开布局编辑器时都会遇到以下异常:

未处理的事件循环异常

    java.lang.StackOverflowError
    at com.android.ide.eclipse.adt.internal.editors.layout.configuration.ConfigurationComposite.isTheme(Unknown Source)
    at 
    com.android.ide.eclipse.adt.internal.editors.layout.configuration.ConfigurationComposite.isTheme(Unknown Source)
    at... 
Run Code Online (Sandbox Code Playgroud)

如果发生Stackoverflow异常,最后一部分会按预期继续.

有没有其他人经历过这个并找到了解决方案?我正在使用Eclipse 3.5.2在Mac OS X上使用最新的android sdk

我刚安装了eclipse的Carbon版本,即使在这个全新的eclipse副本中我也遇到了这个错误.

非常奇怪,我是唯一遇到此错误的人.也许这不是Eclipse问题,而是我的项目设置问题......

eclipse stack-overflow android

13
推荐指数
1
解决办法
5760
查看次数

Windows服务/无法创建堆栈的新保护页面

我有一个Windows服务,每隔一分钟做一些密集的工作(实际上它每次启动一个新的线程,它通过http同步到不同的系统).问题是,几天后突然停止,没有错误信息.

我有NLog,我已注册'AppDomain.CurrentDomain.UnhandledException'.textfile-log中的最后一个条目只是一个正常的条目,没有任何问题.查看EventLog,我也无法在应用程序日志中找到任何消息,但是,系统日志中有两个条目.

一个人基本上说服务意外终止了.而已.第二个事件(与第一个事件同时)说:"......无法创建堆栈的新保护页面......"

从我读过的内容来看,这可能是堆栈溢出异常.我没有解析任何XML而且我不做递归工作.我使用Gate,Nancy和SignalR托管一个Web服务器,并使RavenDB以嵌入模式运行.每分钟都使用.NET 4.0中的Taskfactory启动一个新任务,我还有一个ContinueWith,我重新启动System.Timers.Timer,在一分钟内再次启动.

我该如何开始调查此问题?可能出现这种错误的原因是什么?

c# stack-overflow debugging clr windows-services

13
推荐指数
1
解决办法
6万
查看次数

为什么我没有堆栈溢出?

编辑在你兴奋之前,最后看到重要的编辑,如果你仍然好奇,这些被报道为:


我一直在尝试一段代码,并惊讶地发现我没有得到堆栈溢出.试图简化我甚至得到的东西:

#include <stdio.h>

int main()
{
    int i;

    /* 1,500,000,000 x 4 bytes = 6,000,000,000 bytes = 6GB */
    int size = 1500000000;
    int arr[size];
    for (i = 0; i < size; i++) {
        arr[i] = 1;
    }
    printf("first: %d\n", arr[0]);
    printf("last:  %d\n", arr[size - 1]);

    return 0;
}
Run Code Online (Sandbox Code Playgroud)

这使我怀疑我甚至不知道内存管理的基础知识.我认为arr[size]应该轻松分配堆栈和溢出,但它使用我的所有内存和交换并成功完成.我错过了什么?

笔记

  • 我在64位ubuntu 12.04上运行
  • 我试过gccclang版本:

    gcc (Ubuntu/Linaro 4.6.3-1ubuntu5) 4.6.3
    Ubuntu clang version 3.0-6ubuntu3 (tags/RELEASE_30/final) (based on LLVM 3.0)
    
    Run Code Online (Sandbox Code Playgroud)
  • 我关闭了优化(-O0) …

c memory stack-overflow memory-management

13
推荐指数
1
解决办法
537
查看次数

在Java中为Trampoline处理StackOverflow

我想通过在遇到StackOverflowError时返回一个thunk来实现java中的trampoline.是否有任何关于StackOverflowError的保证,比如,如果在StackOverflowError之后我唯一要做的就是在堆上创建对象并从函数返回,我会没事的?

如果上面的内容听起来很模糊,我在延续传递方式中以尾递归的方式添加了一些用于计算偶数/奇数的代码,每当堆栈流过时返回一个延迟的thunk.代码在我的机器上运行,但Java是否保证它始终有效?

public class CPS {
public static class Thunk {
    final Object r;
    final Continuation c;
    final boolean isDelayed;
    public Object force() {
        Thunk t = this;
        while (t.isDelayed)
            t = t.compute();
        return t.r;
    }
    public Thunk compute() {
        return this;
    }
    public Thunk(Object answer) {
        isDelayed = false;
        r = answer;
        c = null;
    }
    public Thunk(Object intermediate, Continuation cont) {
        r = intermediate;
        c = cont;
        isDelayed = true;
    }
}

public static class Continuation {
    public …
Run Code Online (Sandbox Code Playgroud)

java stack-overflow

12
推荐指数
1
解决办法
2643
查看次数

金丝雀是否会阻止返回libc和面向返回的编程攻击?

我试图了解如果使用金丝雀,是否/如何返回到libc和面向返回的编程漏洞是可能的.
金丝雀将被放置在返回值和要溢出的缓冲区之间的堆栈上,并且需要被覆盖以便将返回值更改为库函数或计算的位置.金丝雀自1997年以来一直存在(StackGuard),而ROP是2007年首次推出的技术(Shacham).

金丝雀是否无法进行这些类型的攻击?

stack-overflow security exploit

12
推荐指数
2
解决办法
4494
查看次数

Android:增加调用堆栈大小

我有一个非常复杂的UI应用程序,包含许多layouts嵌套的应用程序.在创建另一个布局时,我抓住了一个StackOverflowError

想知道,我创建了两个测试示例:

1)以下xml主要活动的Hello world应用程序

<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent" >

    <FrameLayout
        android:layout_width="fill_parent"
        android:layout_height="fill_parent" >

        <FrameLayout
            android:layout_width="fill_parent"
            android:layout_height="fill_parent" >

            <!-- ...So on 30 times... -->

                <FrameLayout
                    android:layout_width="fill_parent"
                    android:layout_height="fill_parent" >

                </FrameLayout>

            <!-- ...So on 30 times... -->

        </FrameLayout>
    </FrameLayout>
</FrameLayout>
Run Code Online (Sandbox Code Playgroud)

在绘制布局时导致StackOverflowError(导致每个布局递归地绘制它的子节点)

2)以下测试用例

public class TestOverflowActivity extends Activity {
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        overflow(0);
    }

    private void overflow(int i){
        android.util.Log.i("Stack depth:", " = " …
Run Code Online (Sandbox Code Playgroud)

stack-overflow android

12
推荐指数
1
解决办法
7711
查看次数

如何避免递归函数的堆栈溢出?

例如,如果我们通过跟随函数遍历一个相当大的树,我们可能会得到堆栈溢出.

void inorder(node* n)
{
  if(n == null) return;
  inorder(n->l);
  n->print();
  inorder(n->r); 
}
Run Code Online (Sandbox Code Playgroud)

如何在函数中添加条件或某些东西以防止这种溢出发生?

c c++ stack-overflow recursion

12
推荐指数
2
解决办法
1万
查看次数

sbt编译导致stackoverflow错误

我有一段时间以来一直面临这个错误.完全因此而烦恼.尝试了在stackoverflow和其他站点中看到的所有类似解决方案.

我有4个单独的scala项目.其中,我在编译拖曳项目时遇到StackOverflow错误.这两个项目是4个项目中最大的项目.当我尝试在Ubuntu Server机器中构建项目时,我收到此错误.我尝试在sbt配置文件中增加Xmx选项,但没有成功.

任何人都可以帮我解决这个问题,因为我因此而生气.如果我构建项目10次,它将在1或2次尝试中成功.

我从错误日志中理解的是,问题伴随着类型检查.但是,我不知道发生了什么.

其中一个失败的项目有超过1000个类/特征(不包括案例类).

细节:

Ubuntu Server(14)
Sbt : 0.13.6 and 0.13.8 tried
Scala Version : 2.11.6
JDK: 1.8
Run Code Online (Sandbox Code Playgroud)

下面粘贴了几行错误:

java.lang.StackOverflowError
    at scala.tools.nsc.transform.Erasure$Eraser.typed1(Erasure.scala:696)
    at scala.tools.nsc.typechecker.Typers$Typer.runTyper$1(Typers.scala:5396)
    at scala.tools.nsc.typechecker.Typers$Typer.scala$tools$nsc$typechecker$Typers$Typer$$typedInternal(Typers.scala:5423)
    at scala.tools.nsc.typechecker.Typers$Typer.body$2(Typers.scala:5370)
    at scala.tools.nsc.typechecker.Typers$Typer.typed(Typers.scala:5374)
    at scala.tools.nsc.typechecker.Typers$Typer$$anonfun$96.apply(Typers.scala:4523)
    at scala.tools.nsc.typechecker.Typers$Typer$$anonfun$96.apply(Typers.scala:4523)
    at scala.tools.nsc.typechecker.Typers$Typer.silent(Typers.scala:680)
    at scala.tools.nsc.typechecker.Typers$Typer.normalTypedApply$1(Typers.scala:4522)
    at scala.tools.nsc.typechecker.Typers$Typer.typedApply$1(Typers.scala:4578)
    at scala.tools.nsc.typechecker.Typers$Typer.typedInAnyMode$1(Typers.scala:5343)
    at scala.tools.nsc.typechecker.Typers$Typer.typed1(Typers.scala:5360)
    at scala.tools.nsc.transform.Erasure$Eraser.typed1(Erasure.scala:696)
    at scala.tools.nsc.typechecker.Typers$Typer.runTyper$1(Typers.scala:5396)
    at scala.tools.nsc.typechecker.Typers$Typer.scala$tools$nsc$typechecker$Typers$Typer$$typedInternal(Typers.scala:5423)
    at scala.tools.nsc.typechecker.Typers$Typer.body$2(Typers.scala:5370)
    at scala.tools.nsc.typechecker.Typers$Typer.typed(Typers.scala:5374)
    at scala.tools.nsc.typechecker.Typers$Typer.typedQualifier(Typers.scala:5472)
    at scala.tools.nsc.typechecker.Typers$Typer.typedQualifier(Typers.scala:5480)
    at scala.tools.nsc.transform.Erasure$Eraser.adaptMember(Erasure.scala:642)
    at scala.tools.nsc.transform.Erasure$Eraser.typed1(Erasure.scala:696)
    at scala.tools.nsc.typechecker.Typers$Typer.runTyper$1(Typers.scala:5396)
    at scala.tools.nsc.typechecker.Typers$Typer.scala$tools$nsc$typechecker$Typers$Typer$$typedInternal(Typers.scala:5423)
    at scala.tools.nsc.typechecker.Typers$Typer.body$2(Typers.scala:5370)
    at scala.tools.nsc.typechecker.Typers$Typer.typed(Typers.scala:5374)
    at scala.tools.nsc.typechecker.Typers$Typer$$anonfun$96.apply(Typers.scala:4523)
    at scala.tools.nsc.typechecker.Typers$Typer$$anonfun$96.apply(Typers.scala:4523)
    at scala.tools.nsc.typechecker.Typers$Typer.silent(Typers.scala:680) …
Run Code Online (Sandbox Code Playgroud)

stack-overflow scala sbt

12
推荐指数
1
解决办法
2260
查看次数

最后没有抛出堆栈溢出异常

据我所知,这段代码应该抛出StackOverflowError,但事实并非如此.可能是什么原因?

public class SimpleFile {

    public static void main(String[] args) {
        System.out.println("main");

        try{
        SimpleFile.main(args);
            }

        catch(Exception e){
            System.out.println("Catch");
        }

        finally{
            SimpleFile.main(args);
        }
    }

}
Run Code Online (Sandbox Code Playgroud)

java stack-overflow exception-handling exception

12
推荐指数
2
解决办法
233
查看次数