首页 > 解决方案 > VSCODE 中的 PHP 7 Xdebug:如何忽略异常

问题描述

我在 Visual Studio Code 中使用插件 PHP Debugger 来调试 PHP 代码。PHP <= 5.6 一切正常。调试器就像一个魅力。但是当我尝试使用 PHP 7 调试代码时,它并没有按预期工作。它不会跳到我添加的断点,我被困在千千万万个例外

发生异常。弃用:与其类同名的方法在 PHP 的未来版本中将不再是构造函数;RecurringType 有一个不推荐使用的构造函数

或者

发生异常。警告:AntlrLexer::matchAny() 的声明应该与 BaseRecognizer::matchAny($input) 兼容

或者

发生异常。注意:试图获取非对象的属性

这些异常是由框架生成的,所以我无法全部修复,我只想跳过所有这些异常并跳转到我的断点。

我怎样才能做到这一点?谢谢。

标签: phpexceptionvisual-studio-codexdebug

解决方案


我不知道这是否适用于您的配置(我将 PHP 7.2 与 WordPress 一起使用),并且发现如果我只想逐步完成我的操作,这可以防止 XDebug 触发每个异常、警告、通知等自己的代码段。

首先,取消选中调试部分Everything中的所有内容(包括,如果选中) :Breakpoints

XDebug 断点

然后将鼠标悬停在Breakpoints栏上并单击+

断点栏 - 添加功能

现在添加要调试的函数的名称:

添加断点功能

最后,在该函数中设置断点。您现在只能在该函数内触发 XDebug 单步执行:

单步执行 XDebug 会话而不触发每个异常

您可以根据需要添加任意数量的自己的函数断点。有趣的是,如果您有多个具有相同名称的函数,则只需添加一次函数名称。


推荐阅读