问题标签 [callstack]
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.
java - Java 返回到调用堆栈中的位置 N
在 Java 代码中使用return
关键字会将执行返回到调用堆栈中的最后一段调用代码。如果对象foo
调用baz.bar()
,方法return
中的关键字bar
将继续执行代码foo
。
假设我有foo
调用上述场景foofoo
中调用的对象,并调用. 无论如何在Java中使用关键字或其他东西,以便方法中的代码可以一直返回到?foofoofoo
foofoofoo
baz.bar()
return
bar
foo
(没有例外)
c# - 如何设置与调用方法范围相关的属性?
我不是在寻找一种使用“SetData”方法将值与线程相关联的方法。
我需要存储仅在调用方法范围内存在的某种数据,可以是直接父级或在堆栈上进行的任何其他调用。例如:
在这种情况下,“someInfo”局部变量和带有“someKey”键的数据集都将在“SomeMethod”返回后消失。这样的事情可能吗?这可能违反堆栈规则,但谁知道是否有人有想法......
obs:目前,我想唯一的方法是让编译器在每个方法的调用堆栈的开头声明对字典的引用。当方法返回时,该字典将有资格进行垃圾收集。
javascript - 复杂的 JavaScript。什么叫我?
我正在开发的项目使用 jQuery。
我进行了一系列 Ajax 调用,加载()其他 HTML 片段,而这些片段又加载()其他片段。整个事情令人困惑。我没有写代码。
是否有任何工具可以让我遍历调用堆栈,以便我可以弄清楚什么是调用方法?有什么浏览器工具可以帮助我解决这个问题吗?
解决方案:
最终这是因为在服务器端代码中注入了 <script src="..." 导致的。你的建议真的很有帮助——它是这些和临时将 Ajax 设置为同步而不是异步的组合,这帮助我找到了问题。
java - Java中的继承
最近我经历了继承概念。
众所周知,在继承中,superclass
对象是在对象之前创建/初始化的subclass
。因此,如果我们创建一个 的对象subclass
,它将包含所有超类信息。
但我一度陷入困境。
超类和子类方法是否存在于单独的调用堆栈中?如果是这样,有没有specific reason
相同的?如果不是这样,为什么它们不出现在同一个调用堆栈上?
例如
那么上述 2 种方法是否出现在单独的调用堆栈上 play1( )
?play2( )
谢谢。
codeigniter - 用于 DB 驱动的动态控制器选择的 Codeigniter pre_system 钩子 - 最佳方法?
虽然我可以暂时看到一个解决方案,但我想知道是否有一个明显更简单的方法。
我的目标是使用给定 URI 的第一段来查询数据库应该运行哪个控制器。
我假设我必须使用段 1 中的结果控制器名称来修改 URI,然后允许系统继续正常处理(因此是 pre_system 挂钩)。
虽然不是必需的,但我还想从同一个 DB 请求中保留几个其他变量,以便稍后在调用堆栈中使用,并假设这必须使用全局变量来完成?
任何更好的建议都会很高兴收到。
谢谢。
android - 基于函数调用栈优化Android App代码的方法?
有人告诉我,Android 操作系统将所有函数调用存储在一个堆栈中。即使程序功能正确,这也可能导致许多问题并在运行时导致“打嗝”,对吗?
那么问题来了,我们怎样才能防止这种情况发生呢?显而易见的解决方案是减少功能化,以及其他明智的行为,例如避免过度/不必要地创建对象,对不访问字段的函数执行静态调用等......
还有其他方法吗?或者这只能通过程序员仔细编写代码来完成?JVM/JIT 是否会在编译时自动优化字节码来解决这个问题?
非常感谢您的回复!!
.net - 如何获取 FaultException 的完整调用堆栈
我有一个抛出异常的 WCF 服务。
我在没有 InnerException 的客户端中得到一个 FaultException。
我只有原始异常的调用堆栈的一部分,从中很难理解是什么原因造成的。
如何获得原始异常或至少所有调用堆栈?
谢谢。
c++ - C++程序中非常奇怪的堆栈溢出
我前段时间写了一个程序(Mac OS X、C++、SDL、FMOD),它的性能相当不错。但最近我想扩展它的功能并添加更多代码。现在,当我运行它并尝试测试新功能时,程序会因 SIGABRT 而崩溃。
查看调试器,在函数堆栈上我看到:
- _杀
- 杀死$UNIX2003
- 增加
- __中止
- __stack_chk_fail
- odtworz <-- 我的函数被修改了
据我所知,“__stack_chk_fail”表示堆栈溢出。但这还不是最奇怪的。在这个函数“odworz”中,我有一些这样的代码:
mode 是一个全局变量,在之前的函数中设置为值“2”。现在想象一下——如果我删除了在这种模式下永远不会执行的第三个 if 语句(模式 == 3),程序不会崩溃!删除甚至无法执行的代码有助于解决这种情况!
现在,我不想删除此代码,因为它适用于我程序的其他模式。它在那里工作得很好。那么我可以在哪里搜索的任何提示?这可能有什么问题?
r - R关于递归表达式的警告消息:如果失败,请尝试,再试一次
我想创建一个函数,如果它失败将重试表达式。这是我的工作版本:
如果我删除suppressWarnings()
上面的函数,那么每次递归调用都会收到一组警告。有谁知道我做错了什么会导致这种情况?
这是一个可以重复运行的示例:
java - 是什么导致 java.lang.StackOverflowError
什么会导致java.lang.StackOverflowError
?我得到的堆栈打印输出根本不是很深(只有 5 种方法)。