问题标签 [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 投票
3 回答
843 浏览

c++ - 什么是阅读堆栈/堆和符号表概念的好资源?

请推荐一些非常详细地处理这些主题的网站或书籍。

我需要更好地理解这些概念(参考 C++):

  1. 堆栈和堆
  2. 符号表
  3. 范围规则的实施
  4. 函数调用的实现
0 投票
3 回答
9084 浏览

php - Treating Warnings as Errors

I have a php application that I have just re-factored. Unfortunately it spewing out warnings like:

Warning: preg_match() expects parameter 2 to be string, object given in /home/yacoby/dev/netbeans/php/Zend/Db/Select.php on line 776

Which is impossible (or very hard work) to work out the issue as I don't have a callstack so can't tell which parts of my code are causing the warning and there is a lot of code.

I need a method to either treat warnings like errors (In that the application dies and prints the stacktrace) or I need the stacktrace to be shown when printing errors. Is there a method to do this?

0 投票
1 回答
1994 浏览

matlab - 编译后的matlab中的调用堆栈

在 matlab 中,可以使用 dbstack 在当前时间检索调用堆栈,但是 dbstack 在独立编译的 matlab 程序版本中不可用,是否有另一种方法来获取调用堆栈,或者至少是调用当前函数的函数?我想编写一个需要知道它被谁调用的设施函数,但最好使用完整的调用堆栈。

0 投票
2 回答
3064 浏览

objective-c - Xcode - 在断言上调用堆栈跟踪?

现在,当我在 Xcode 中触发我的一个断言时,我会收到断言消息,以及堆栈的转储,其中充满了对我来说意义不大的数字。

为了跟踪调用堆栈,我需要调试应用程序,并将其运行到断言发生的位置,并希望它再次断言。对于 100% 可重现的错误,这不是什么大问题,但仍然是浪费时间。

如果每次命中断言时我都得到一个调用堆栈跟踪会好得多。

您如何定义将在 Xcode 中转储调用堆栈跟踪的断言宏?

0 投票
3 回答
4719 浏览

x86 - 当我从内联汇编中调用 C++ 函数时,如何将参数传递给它们

所以,我希望能够从 c++ dll 调用函数。出于某些原因,我想从我的 C++ 代码中的 __asm 块中调用它们。我的问题是:我知道在调用函数之前,我必须按照函数调用约定指定的顺序将其参数推送到堆栈上。但是,我可以简单地做这样的事情吗:

让我担心的是,我似乎记得汇编中的标准字大小是 2 字节,而 C++ 中 int 的大小通常是 4 字节,而双精度则为 8 字节。所以,在上面的例子中,我真的是推送每个变量的完整值,还是仅推送前几个字节?如果上面的代码不正确,那么正确的方法是什么?另外,如果我们调用的函数返回一个双精度值,这个值存储在哪里?我假设它不能在寄存器中,因为它只能存储 32 位(4 字节)。对于这个混乱的任何帮助将不胜感激:)

0 投票
1 回答
125 浏览

.net - WinCE 6.0 上 .NET 和 C 之间的堆栈调用约定

我正在将一个用 C 语言编写的 DLL 从 WinCE 5.0 移植到 ARM 目标上的 WinCE 6.0。此 DLL 由 .NET 软件调用。在 WinCE5.0 上,一切运行良好。在 WinCE6 上,我有以下问题:

  • 在我的 DLL 的 InitInstance() 上,我可以毫无问题地调用任何东西(例如 MessageBox())或使用递归。

  • 过了这一点,.NET 代码调用 DLL。然后它失败了:即使是 .NET 代码传递的参数也看起来很奇怪。我可以调用 MessageBox() 一次,但我不能调用调用 MessageBox() 然后调用自身的函数:递归性被破坏。

似乎 .NET 代码使用堆栈的方式与我的 C 代码不同。

我对 Windows 世界非常陌生,为我提供 .NET 应用程序的公司还不明白为什么会出现这样的失败。

欢迎任何指针/提示/建议!

谢谢!

0 投票
5 回答
8499 浏览

delphi - 需要一种方法来定期记录调用的每个方法/过程/函数的调用堆栈/堆栈跟踪

我正在开发一个非常大的应用程序,我想定期记录整个调用堆栈,直到当前执行点(而不是异常)。这里的想法是,我想要一张准确的代码路径图,它引导我到达我现在的位置。我一直在使用 madExcept,使用 jclDebug 进行工具化,虽然我可以获得一些调用堆栈,但我似乎无法让应用程序中进行的每个方法/过程/函数调用都显示在日志中。

我在项目上启用了堆栈帧、调试信息等。我什至尝试在未包含在调用堆栈中的单个方法上打开堆栈帧,但无济于事。

我想要做的甚至可能吗?我真的在努力避免在我们数百万行代码中添加日志代码以记录代码路径。

0 投票
2 回答
186 浏览

c# - 如果调用堆栈被破坏,那只会崩溃当前线程,还是我的整个应用程序?

当谈到 C# 中的线程时,我是个菜鸟,我不确定每个线程是否应该有自己的调用堆栈?基本上,如果我得到一个“运行时检查失败 #0 - ESP 的值不正确”,那只会崩溃它发生的线程,还是整个程序?

0 投票
2 回答
1757 浏览

c# - 什么是执行框架?

在C#中,什么是执行框架(也与此有关我听说过激活框架)。IIRC 它是方法参数所在的插槽,但无法记住所有细节。

谢谢

0 投票
6 回答
2836 浏览

c++ - 堆栈上分配的异常如何超出其范围?

在下面的代码中,基于堆栈的变量 'ex' 被抛出并捕获在一个超出 ex 声明范围的函数中。这对我来说似乎有点奇怪,因为(AFAIK)基于堆栈的变量不能在声明它们的范围之外使用(堆栈未展开)。

我在 SomeKindOfException 的析构函数中添加了一个 print 语句,它表明 ex 一旦超出 f() 的范围就会被破坏,但是它会在 g() 中被捕获并在它超出范围时再次被破坏。

有什么帮助吗?