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

php - debug_backtrace() 捕获函数参数的什么状态?

一些抽象代码:

debug_trace 会告诉我们关于测试函数的参数什么?
它会捕获$a为 5 还是 10?

0 投票
0 回答
96 浏览

php - 将 debug_backtrace 与 auto_prepend_file 组合时的问题

我有一个 PHP 脚本,它允许我通过 debug_backtrace() 跟踪哪个文件需要它。我想自动添加(通过 php.ini 中的 auto_prepend_file)文件,这样我就可以建立一个日志,记录运行每个 PHP 脚本以进行内部分析的频率。

当我创建一个需要它的文件时它工作正常,但是当我“auto_prepend_file”它时它会导致错误。我对自动前置的理解是它将需要您识别的任何文件。但是,自动前置时返回的 debug_backtrace 数组似乎为空。关于可能发生的事情的任何想法?

好奇者的代码示例

第一个.php

第二个.php

对于实际的自动前置,我只是在识别 second.php。当自动前置时,我得到:

在浏览器中访问 first.php 时,我得到:

任何和所有的帮助表示赞赏!

谢谢。

0 投票
1 回答
1802 浏览

php - 跟踪 PHP 中的每个函数调用

我正在尝试在我的 PHP 应用程序中创建跟踪日志。打开调试模式将开始跟踪函数的流程。

以下是我期望的实现:

我想跟踪 PHP 代码的流程。

我知道我可以使用debug_backtrace,但在这种情况下,我需要显式调用debug_backtrace其中一个函数。

但是,我想要的是自动跟踪代码流。

有没有办法做到这一点。

0 投票
1 回答
309 浏览

php - PHP 警告:传递 mysqli 连接时的 print_r 和 debug_backtrace

我有一个非常复杂的系统,每次它想要执行查询时都会打开和关闭 MySQLi 连接 - 每个给定操作它大约执行 40,000 次(我知道效率低下)。我决定在函数之间传递 mysqli 连接,以防止这种反复打开和关闭的低效率。

我的问题是:当查询失败时,我想给自己发电子邮件debug_backtrace(),格式为易于阅读的格式(所以我将其包装在 中print_r())。出于某种原因,我现在收到一个 PHP 警告,上面写着print_r(): Property access is not allowed yet in... on line XXXXXX 行的内容addNotification("Backtrace: ".print_r(debug_backtrace(), true), "debug");

当回溯中传递的参数之一是对象时,是否有一些print_r()不喜欢的原因?debug_backtrace()mysqli_connect mysqli_connect 是否缺少 toString 函数?

编辑经过更多研究,我发现您可以调用print_rvar_dump在一个mysqli_connect对象上,但如果该对象是mysqli_closed 它会导致此警告。如果它是关闭的,unset它是好的。

0 投票
2 回答
5239 浏览

ios - 在调试模式下,记录的堆栈帧不支持控制台

崩溃后,我无法bt在调试模式下使用该命令进行回溯。我已经搜索但没有得到解决方案。我试过[NSThread callStackSymbols]了,但它在控制台中给出了相同的消息:

记录的堆栈帧不支持控制台

我怎样才能做到这一点?

0 投票
2 回答
559 浏览

php - 跟踪错误行和文件 nr 的正确方法。在使用自定义错误处理方法的自定义函数中使用 debug_backtrace()

我已经制作了可以正常工作的自定义错误处理程序(见下文)。我添加了用于打印和记录错误的方法add() 。基本上它处理所有 PHP 注册的错误。

我尝试在类外部添加add_error()函数,以便开发人员更友好地使用添加错误。我遇到的问题是,我想从中获取正确的行和文件,但是使用debug_backtrace()似乎太复杂了。我的意思是..它可以解决问题,但是它返回了其他不必要的东西的数组,我尝试过滤数组,以返回文件和调用错误的行,但没有运气。

例如,如果我从load.php文件中调用$error->add(' test ',' test ') ,其中包含类文件error-handle.php,它会返回

如您所见,它返回index.php而不是load.php

基本上,每当我调用add_error()$error->add()时,我都需要获取调用函数的正确文件和行。可能通过使用带有一些高级过滤的debug_backtrace() 。

对于如何获得此结果的任何指导或想法,我将不胜感激。提前致谢!

自定义错误处理程序:

0 投票
0 回答
107 浏览

php - 在 PHP 中查找两个堆栈跟踪/“相对堆栈跟踪”的差异?

在 PHP 中,您可以从\Exception::getTrace()或从获取堆栈跟踪数组debug_backtrace()

同一进程/请求中的两个堆栈跟踪通常有一些共同的调用,然后是一些独立的调用。或者有时一个堆栈跟踪可能完全包含在另一个更深的堆栈跟踪中。

例如,如果你捕获一个异常,然后在你调用的 catch 块中debug_backtrace(),那么这通常是异常回溯的子跟踪。

出于调试目的,仅查看与包含 try/catch 的函数相关的跟踪部分可能会很有趣。

获取此部分或相对堆栈跟踪的优雅方法是什么?

我确实知道我自己会如何做,并且可能会将其发布为答案。但我很好奇是否有更好的方法。

我预料到的一个特别困难是:任何一条轨迹上的两个项目看起来都一样,即使它们实际上不同。我假设从同一个循环发出的两个调用是无法区分的。我想知道是否有任何技巧可以使它们区分。

0 投票
1 回答
71 浏览

php - 所有函数的PHP var_dump?

我已经在全局目录中加载了一个 SMTP 进程/函数 - 已经工作了多年。今天它突然停止了。我已经通过了我的代码,并且我的子域正在调用 smtp。但是没有任何东西被记录/记录。我没有 SMTP 电子邮件(密码)。

在我的子域中,我有一个注册函数。

register_shutdown_function('关机'); 在这个关闭例程中,我调用了回溯。

这已保存到我的服务器上的文件中并正确记录。

问题是回溯显示的唯一功能是我的关闭功能。

有没有办法跟踪/记录 ALL 的进度以及程序已经使用或正在尝试使用的任何功能?

Ps 我有我的日志记录程序的日志和显示我正在记录东西的日志......我有比实际程序更多的日志记录东西 - 试图调试东西......

0 投票
1 回答
11689 浏览

ios - 在控制台中使用的有用 Xcode DEBUG 命令

我一直想知道,但在任何地方都没有找到在 Xcode 中有用的命令列表。

我知道并且我经常使用的是 Backtrace,它的输入命令是bt,在您遇到未捕获异常后的应用程序崩溃后,它有时会给出问题可能出在哪里的 int。

你能分享更多有用的命令吗?这些命令变得很方便,可以让我们与调试器和应用程序本身进行交互?

谢谢

0 投票
2 回答
3891 浏览

php - debug_backtrace() 在 php 中到底有什么作用?

在处理我的一个项目时,我在代码文件的开头PHP得到了一个函数,即.debug_backtrace()<?php debug_backtrace() || die ("Direct access not permitted"); ?>

在研究它时,我得到了一些解释,它的工作原理是:

在 Drupal 网站中调试 PHP 问题可以是快速简单的,也可以是严重的问题。PHP 包含一个名为 debug_backtrace 的调试函数,它将打印出导致调用 backtrace 函数的位置的代码链。

当我使用var_dump()withdebug_backtrace()我得到以下结果:

我不知道什么debug_backtrace()功能到底是有效的。

请任何人解释是受欢迎的。提前致谢。

学习链接:

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

使用 debug_backtrace 调试 PHP 代码

将 debug_backtrace() 分配给 PHP 中的变量

打印 PHP 调用堆栈

如何将 PHP 回溯保存到错误日志?