问题标签 [debug-backtrace]

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 回答
3542 浏览

php - Is debug_backtrace() safe for serious usage in production environment?

It's functionality is so strong that I worry about its stability and performance.

What do you think?

UPDATE

What I'm doing is this:

Essentially it just does include ( $included_file );,but inside that $included_file it can't find 3.php which is in the same directory as itself is in,so I manually set the cwd and it works.But it would be nice if I find the reason why it can't find.As for why debug_backtrace is needed,it's because 3.php is included by another func,since the relative path doesn't work,it has to use debug_backtrace to get the including file path,finally using the absolute path as mentioned below.

It's not easy to reproduce,as the above code is in the context of a method,and much more..If no one else has met this kinda problem I'd like to just stop here,anyway,the cost is just the 3 extra lines,not a big deal.

0 投票
2 回答
1738 浏览

php - PHP:朋友类和不贪婪的调用者函数/类

除了 debug_backtrace() 之外,还有什么方法可以获取调用者函数?

我正在寻找一种不那么贪婪的方法来模拟像朋友内部这样的范围。

假设我有一个 A 类和一个 B 类。

直到现在,我一直在使用debug_backtrace(),这太贪心了(恕我直言)。

我想到了这样的事情:

如果您想将其限制为一个特定的课程可能没问题,但是假设我有 300 个课程,并且我想将其限制为其中的 25 个?

一种方法是使用接口进行聚合:

public function __construct(CallerInterface $callerObj)

但它仍然是一个丑陋的代码

此外,您不能在静态类中使用该技巧。

有更好的主意吗?

0 投票
3 回答
1186 浏览

php - 尝试调试显示所有调用函数列表的 symfony 应用程序,debug_backtrace() 不适合我

我试图调试一个 symfony 应用程序。

我在下面添加了对这个函数的 debug_backtrace() 调用。它输出一个调用函数的列表,但是 save() 函数(就在 debug_backtrace() 调用之前)不是那个列表。为什么?任何其他显示更多内容的调试方式,在这种情况下是 save() 调用?

问候

哈维

0 投票
1 回答
842 浏览

php - 如何从 debug_backtrace 函数中删除敏感数据?

我正在使用 print_r(debug_backtrace(), true) 来检索调试回溯的字符串表示形式。这很好用,因为 print_r 处理递归。

当我尝试在将 debug_backtrace() 返回数组转换为字符串之前对其进行递归迭代时,它会遇到递归并且永远不会结束。

有没有一些简单的方法可以从回溯数组中删除某些敏感的键/值对?也许有某种方法可以使用 print_r 将数组转换为字符串,然后返回到将递归位置更改为字符串RECURSION的数组,我可以对其进行迭代。

如果可能的话,我不想在字符串表示上执行正则表达式。

0 投票
2 回答
5544 浏览

php - debug_print_backtrace 不起作用

我有 PHP 5.3.4,当我尝试使用 debug_print_backtrace 时,我什么也没得到。当我使用 vardump 时,我得到一个空数组,如下所示。

索引.php:

返回

谁能告诉我出了什么问题?我期待看到运行中调用的所有内容。相反,我什么也没看到。

0 投票
1 回答
881 浏览

php - PHP - debug_backtrace() 崩溃 - 我该怎么办?

我查看了我能找到的消息,但没有找到似乎有帮助的答案。我有一个调用 debug_backtrace() 的例程,然后循环遍历元素,以一种不错的格式将它们输出到我的日志中。这在大多数情况下都可以正常工作。

在某些呼叫中,系统只是挂起。假设如下:

在某些情况下,PHP 会死掉——我可以看到它处理当前项目的日志,但是它在 foreach 行上崩溃了(或者至少在我以编程方式查看下一个 $myStackLevel 的内容之前)。

在这里的一条消息中,我看到了一些关于递归调用和使用序列化的信息,但我不能使用序列化(我使用 PDO 并收到消息“你不能序列化或反序列化 PDO 实例”)所以就这样了。

有趣的是,如果它崩溃,PHP 错误系统仍然提供堆栈的完整转储......(我在尝试使用序列化时发现了这一点)。

任何帮助表示赞赏....

谢谢,

JustMeToo

0 投票
5 回答
9678 浏览

php - 来自 PHP 中注册的关闭函数的 debug_backtrace()

在修补这个问题的答案时,我发现当从其中调用时,debug_backtrace()它不会超出注册到的函数register_shutdown_function()

这在 PHP 文档的评论中提到,说明:register_shutdown_function()

您可能会想到从关闭函数内部调用 debug_backtrace 或 debug_print_backtrace 来跟踪发生致命错误的位置。不幸的是,这些函数在关闭函数中不起作用。

解释得更详细一点,对此答案状态的评论:

不工作。关闭功能在堆栈展开后发生。没有要转储的堆栈信息。

有什么办法可以规避这种情况,强制 PHP 保留堆栈跟踪,直到进程完全终止,还是由于 PHP 内部机制我们应该接受它作为给定的?

0 投票
2 回答
140 浏览

objective-c - 解释这个回溯告诉我什么

我有一个程序,当设备断开或连接时随机发生崩溃。当我在其中运行bt命令时,gdb我得到以下信息:

XCode 在 NSApplicationMain 上中断,而不是在我的代码中的任何地方,我已经告诉它在所有异常上都中断。这让我认为这是在蓝牙堆栈本身发生的。这是正确的吗?有什么办法可以防止这种情况发生,或者至少尝试/抓住它来清理东西并防止崩溃?

0 投票
1 回答
4450 浏览

c - 子进程的 GDB 回溯

我有一个分叉子进程的应用程序。

子进程做了一些工作,在中间的某个地方给出了分段错误。我用 GDB 来调试这个,我用过:

我还为孩子中的一个函数设置了一个断点。但是 GDB 不会在我的断点处暂停。

父进程也处理段错误,所以我不得不 ctrl-c 退出。然后当我backtrace用来打印堆栈时,我得到的只是

无堆栈

为什么没有设置断点,为什么我没有得到堆栈?

0 投票
3 回答
155 浏览

php - 为什么这表现更好?

debug_backtrace因此,我正在尝试使用PHP 反射在我的架构中实现面向方面的设计。该设计有效,但我决定看看它对性能的影响有多严重,因此我编写了以下分析测试。有趣的是,当AdvisableandNonAdvisable方法什么都不做时,其影响大约是使用可取的方法与使用不可取的方法的 5 倍,但是当我增加每种方法的复杂性时(这里通过增加迭代次数到30 或更多),可取的方法开始表现得更好,并随着复杂性的增加而继续增加。

基类:

一个实现的类:

并描述方法:

如果我以 100 (A::executions = 100) 的复杂度运行这个测试,我会得到以下结果:

有任何想法吗?