callstack相关内容
如果我运行 Array.apply(null,new Array(1000000))。map(Math.random); Chrome 33上的 我得到 RangeError:超出最大调用堆栈大小 为什么? 解决方案 浏览器无法处理那么多参数。例如,请参阅此代码段: alert.apply(window,new Ar
..
使用setTimeout方法调用函数而不是直接调用函数,可以在javascript中避免堆栈溢出吗?我对setTimeout的理解是它应该启动一个新的callstack。当我查看chrome和IE的callstack时,似乎setTimeout调用正在等待函数调用返回。 这只是调试器的属性还是我的理解是否有缺陷? 编辑 虽然下面提供的答案是正确的,我遇到的实际问题与我调用setT
..
function main() { Hello(); } 函数Hello() { //你怎么知道调用函数是'main'? } 有没有办法找出调用堆栈? 解决方案 function Hello() { alert(“caller is” + Hello.caller); } 请注意,此功能为非标准,来自 Function.cal
..
我正在寻找一个简单的Java动态调用图记录器,您可以在几行代码中添加它。我知道有一个 Aspect J解决方案。另外,我帮助Zola开发 Glow for C / C ++ ,这样我就可以重写一个类似的工具,但我不想深入研究JVM内部。 现在任何开源解决方案都比AspectJ解决方案稳定且更好? 目的是作为伴侣使用单元测试代码的某些部分,以获得有关其行为的更多信息。 解决方案
..
这可能听起来很愚蠢,但我仍然不清楚Java Stack和内存堆。我从学习中得知的是: 1)所有方法调用都在堆栈上。 2)本地分配的所有内存都在内存堆上(关于这一点不是很清楚) 3)新运算符分配的所有内存(在方法或类中) )继续记忆堆。 我担心以下情况: 1)如果我创建了一个方法中的int变量并返回它,它在哪里(我相信它在堆栈上,但需要澄清)。 2)如果我在中创建
..
今天早上我回答了一个与StackoverflowException相关的问题。该人询问何时发生Stackoverflow异常 请参阅此链接在C#,C ++和Java中导致堆栈溢出的最简单方法 所以我的问题是,有没有任何方法可以在程序中动态计算方法调用堆栈大小,然后在调用方法之前应用检查,该方法检查方法调用堆栈是否有空间来容纳它,以防止StackOverflowException。
..
我可以使用 Thread.currentThread()。getStackTrace()来检索当前的堆栈跟踪,但是这只给出了调用中涉及的类。是否可以检索调用跟踪中涉及的对象实例?也许某种类型的库允许我从堆中检索对象? 我有一个问题需要我追溯到一个间接创建对象的Spring bean我正在请求堆栈跟踪。 UPDATE 如果在Java中没有内置工具我正在搜索一个可嵌入的库,它可以在运行时
..
我希望动态构建调用图,从任意方法调用开始,或者从运行的JVM本身更容易的新线程开始。 (这个软件将成为负载测试另一个消耗调用图的软件的测试工具) 我知道有一些SPI接口,但它看起来很像就像你需要用它们运行-javaagent标志一样。我想直接在VM本身访问它。 理想情况下,我想获得每个方法调用的进入和退出的回调,该方法调用的参数和那个方法的时间。显然在单个线程中。 我知道AOP可
..
我想在这件事上提供一些帮助, 示例: 公共类A { private void foo(){ //谁调用了我 } } 公共等级B延伸A {} 公共等级C延伸A {} 公共等级D { C.foo(); } 这基本上就是这种情况。我的问题是方法 foo()如何知道谁在调用它? EDIT :基本上我正在尝试做一
..
在我正在创建的iPad应用中,我正在尝试通过输出异常的callStackSymbols来处理未捕获的异常。这可以通过 [NSException callStackSymbols] 完成。但是,我希望能够看到callStackSymbols在所有其他活动线程上也是如此。我知道我可以在任何线程上使用 [NSThread callStackSymbols] ,但我需要遍历所有活动线程才能这样做。
..
是否可以检索方法/构造函数的调用者实例? 此问题已经发布,但每次答案都在讨论调用者类(使用stacktrace)而不是调用者实例。 如果存在一个解决方案,那么构建对象图(使用常见的超类型)并使用默认构造函数处理父子导航可能非常方便。 public class TestCallStack { public static class BaseClass { BaseClass ow
..
我使用Direct Web Remoting(DWR)JavaScript库文件,并且仅在Safari(台式机和iPad)中出现错误。 超出最大调用堆栈大小。 这个错误是否意味着它会完全停止处理? 还有对 Safari 浏览器的任何修正(其实在 iPad Safari ,它说 JS:执行超时超时 我假设它是相同的调用堆栈问题) 解决方案 这是几乎总是因为递
..
我们如何列出在应用程序中调用的所有函数。我尝试使用GDB,但它的回溯列表仅限于主函数调用。 我需要更深的列表,即主函数调用的所有函数的列表以及这些调用的函数调用的函数等等。 有没有办法在gdb中得到这个?或者你能给我一些关于如何获得这些信息的建议吗? 在应用程序中调用函数 对于任何实际大小的应用程序,此列表将包含数千个条目,这可能会使其无用。 您可以在 nm 的应用程序中找
..
我需要一些关于将参数“转发”给被调用者的建议(在LLVM-IR中)。 假设我有一个函数 F ,它在 all 其他开头被调用功能在模块中。从 F >我需要访问(读取)传递给它的直接调用者的参数。 现在执行此操作我将调用者中的所有参数都放在一个结构体中,并将一个 i8 * 指针传递给 F 标识符,告诉来自哪个调用者 F 。 F 然后有一个巨大的开关,分支到相应的拆箱代码。这是必须完成的
..
可能存在重复: 如何在JavaScript函数中找到调用函数(前者在调用堆栈中)? I想要确定前面调用的函数是否是onbeforeunload事件中的__doPostback。 解决方案 每个函数都有一个调用者定义的属性。 来自 https://developer.mozilla.org/en/Core_JavaScript_1.5_Reference/Global_Ob
..
我可以使用gcc的回溯来在程序的任何给定点获取堆栈跟踪,但是我想从抛出异常时的堆栈的任何帧获取跟踪,即在堆栈展开。 例如,以下块 func ){ throw std :: exception(); } try { func(); } catch(std :: exception){ std :: cout
..
此问题之前已经被问过,并且已经有Windows特定的答案,但没有令人满意的gcc答案。我可以使用 set_terminate()设置一个将被调用的函数(代替 terminate())未处理的异常被抛出。我知道如何使用backtrace库从程序中的给定点生成堆栈跟踪。但是,当我的终止替换被调用时,这不会有帮助,因为在这一点堆栈已经被解开了。 然而,如果我只是允许程序 abort(),它将产生一
..
在Javascript中,假设当异常发生时我想执行一些清理,但是让异常继续传播到堆栈,例如: try { enterAwesomeMode(); doRiskyStuff(); //可能会抛出一个异常 } catch(e){ leaveAwesomeMode(); throw e; } doMoreStuff(); leaveAwesomeMode();
..
今天,在我的C ++多平台代码中,我有一个每个函数的try-catch。在每个catch块中,我将当前函数的名称添加到异常中并将其重新抛出,以便在最上面的catch块(我终于打印异常的详细信息)中,我有完整的调用堆栈,这有助于我跟踪异常的原因。 这是一个很好的做法,还是有更好的方法来获取异常的调用堆栈? 解决方案 不,这是非常可怕的,我不明白为什么你需要一个调用堆栈在异常本身 - 我
..
我有几个同事在Excel VBA中看到一些不好的代码,想知道调用堆栈中的级别数量有限制 解决方案 除非函数是尾递归的,否则VBA可以处理它(它不能),那么你将遇到堆栈溢出。 作为一个简单的测试,我将以下代码片段合并在一起: Dim count As Integer Sub Rec () count = count + 1 单元格(1,1)=计数 调用Rec E
..