问题标签 [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.

0 投票
2 回答
145 浏览

visual-studio - VS .Net 中是否有 CallStack 的可视化表示(而不是内置的堆叠表示)?

是否有可用于 Visual Studio .Net 的插件,它在调试时提供 CallStack 的可视化表示(而不是内置的方法调用的堆叠表示)?(我正在想象类似于我们在 SQL 服务器中的执行路径的东西)恕我直言,这将有助于可视化程序的逻辑流程。

0 投票
3 回答
140 浏览

javascript - 在调用堆栈中较高的方法中访问“this”对象

我有以下 JavaScript:

这将显示消息“5”。但是,我想显示“10”,即在函数 b 中我想访问调用者的“this”属性。这可能吗,怎么做?

0 投票
4 回答
1840 浏览

javascript - Javascript 投票服务器。这会导致堆栈溢出吗?

我不太熟悉每个浏览器上每个 javascript 实现的细节。但是我知道使用 setTimeout,传入的方法会在单独的线程上调用。那么在方法内部递归使用 setTimeout 会导致其堆栈无限增长,直到导致堆栈溢出?或者它会创建一个单独的调用堆栈并在失去焦点后销毁当前帧?这是我想知道的代码。

我想每隔一秒左右轮询一次服务器,但不想通过“阻塞循环”浪费 CPU 周期——我也不想设置用户在浏览器死机之前可以访问页面的时间限制。

编辑

使用萤火虫,我设置了几个断点,通过查看“脚本 - >堆栈”面板看到调用堆栈实际上只是“pollServer”,它不会在每次调用时增长。这很好 - 但是,JS 的任何其他实现是否有不同的行为?

0 投票
3 回答
5625 浏览

winapi - 如何读取调用堆栈?

我们有一个通过 COM+ 在 Windows 2003 服务器上运行的本机 C++ 应用程序。我最近从事件查看器中注意到它抛出异常,特别是 C0000005 异常,根据http://blogs.msdn.com/calvin_hsia/archive/2004/06/30/170344.aspx表示该过程正在尝试写入不在其地址空间内的内存,也就是访问冲突。

事件查看器中的条目提供了一个调用堆栈:

LibFmwk!UTIL_GetDateFromLogByDayDirectory(char const *,class utilCDate &) + 0xa26c LibFmwk!UTIL_GetDateFromLogByDayDirectory(char const *,class utilCDate &) + 0x8af4 LibFmwk!UTIL_GetDateFromLogByDayDirectory(char const *,class utilCDate &) + 0x13a1 LibFmwk:::! )const + 0x1070 LibFmwk!utilCLogController::GetFLFInfoLevel(void)const + 0x186

现在,我知道它给了我要查看的方法名称,但我感觉每行末尾的地址(例如 + 0xa26c)试图将我指向该方法中的特定行或指令。

所以我的问题是:

  1. 有谁知道我如何使用这个地址或调用堆栈中的任何其他信息来确定代码中的哪一行?
  2. 有没有我可以阅读以更好地理解调用堆栈的资源,
  3. 是否有任何免费软件/开源工具可以帮助分析调用堆栈,可能通过附加到调试符号文件和/或二进制文件?

编辑:根据要求,这是似乎导致问题的方法:

}

这是我们公司的一位成员在 10 多年前编写的代码,他早已离开,所以我不认为确切知道这是在做什么,但我确实知道它涉及从“今天”重命名日志目录的过程' 到特定日期,例如 %20090329。数组索引、memcpy 和运算符的地址确实使它看起来相当可疑。

我们似乎遇到的另一个问题是,这只发生在生产系统上,我们永远无法在我们的测试系统或开发系统上重现它,这将允许我们附加调试器。

非常感激!安迪

0 投票
4 回答
545 浏览

c# - 调用堆栈中时间戳的可视化

我正在尝试调整我的应用程序的性能。而且我很好奇哪些方法处理时间最长,因此应该查看任何优化机会。

是否有任何现有的免费工具可以帮助我可视化调用堆栈以及每个方法需要多长时间才能完成?我正在考虑将调用堆栈显示为堆积条形图或树形图的东西,因此很容易看出MethodA()需要 10 秒才能完成,因为它调用MethodB()Method(C)需要 3 和 7 秒才能完成完全的。

这样的事情存在吗?

0 投票
2 回答
833 浏览

php - php错误日志缩短字符串

我在 Magento 中阅读了调用堆栈,但由于字符串短缺,它们不可读,例如:

我怎样才能看到完整的字符串,在这种情况下是完整的路径?

0 投票
2 回答
1691 浏览

iphone - 有人可以帮我了解一下 iPhone 应用程序中的这个堆栈跟踪吗?

目前我的程序中有一个非常奇怪的错误。有时会发生,有时不会。但这里是正在发生的事情的摘要:

程序启动时:

  • 保存的数据(只是一个由 13 个元素组成的简短 plist)如果存在则加载。
  • 一个包含 1014 个字符串的巨大 plist 被加载到 NSMutableDictionary 中。
  • 另一个包含 78 个字符串的 plist 被加载到 NSArray 中。
  • 播放 .mp4 电影。

错误发生在 OpenGL ES View 正在被删除并且用户即将查看 NSMutableDictionary 中 1014 个字符串中的一个字符串的部分。

模拟器中永远不会出现此错误。它只发生在 iPhone 上,有时运行良好,但有时会崩溃。

但是,在阅读了堆栈跟踪之后,我在其中看到了 CFDictionaryApplyFunction,所以我认为这可能是可能的原因之一。是不是因为在模拟器上,它读取的东西太快了,以至于 plist 中的整个字典都会立即加载,而在设备上,它的读取速度较慢?老实说,我不知道字典是如何工作的。它是瞬间读取所有 1014 个字符串,还是使用其他一些线程缓慢读取?请指教。谢谢你。

0 投票
1 回答
1566 浏览

sql-server - SQL 2005/2008 创建存储过程和db交互时序图

我们有一组非常复杂的存储过程,它们已从 Oracle 迁移到 SQL 2005。有一次,我听说有一种解决方案可以通过在 VS 中观察堆栈跟踪或通过 SQL 分析器来创建序列图. 我进行了长时间的艰苦搜索,发现了可以创建代码序列图的工具,而不是数据库交互。有没有人知道一套可能可以帮助我的工具。

我可以支持许多不同的环境,包括 SQL 2005、SQL 2005、VS 2005、VS 2008。

0 投票
9 回答
2196 浏览

c++ - 是否可以在不展开调用堆栈的情况下杀死 Windows XP 上的 C++ 应用程序?

我的理解是,当您在 Windows XP 中通过任务管理器终止 C++ 应用程序时,该应用程序仍然“干净”地被破坏 - 即调用堆栈将展开并且所有相关的对象析构函数都将被调用。不确定我的理解是否有误。

是否可以在不展开堆栈的情况下立即终止这样的应用程序?

例如,应用程序可以使用 RAII 模式,当对象被破坏时,这些模式将破坏或释放资源。如果通过任务管理器的传统“终止进程”是正常的,那么提供一种立即终止应用程序的方法将允许我测试不正常的关机(例如断电)。

编辑:

澄清一下,我正在寻找一个允许我这样做的现有实用程序或程序。我应该能够在我没有源代码的程序上使用该解决方案,这意味着编程解决方案实际上是不可接受的。

编辑:

只是为了提供更多上下文,有时我必须使用非常侵入性的第 3 方服务(例如,每隔一小时就唠叨我重新启动)。因为我知道我不需要重新启动,所以我想终止进程/服务,这样它就不会再唠叨我了。不幸的是,一些第 3 方开发人员“聪明”到足以阻止我这样做,当我通过任务管理器终止进程时,系统将立即重新启动(我猜是使用 RAII 来实现这一点)。

0 投票
2 回答
8073 浏览

javascript - 在javascript中确定调用函数

可能重复:
你如何找出 JavaScript 中的调用者函数?

如何在 javascript 函数中找出调用(调用堆栈中的前者)函数?

我想确定之前调用的函数是否是 onbeforeunload 事件中的 __doPostback 。