标签: xdebug

如何关闭日志语句而不从代码中删除它们

如果在整个代码库中存在日志记录语句,如何设置记录器,以便在将代码部署到生产环境中时不必注释掉对记录器的每次调用?

这是我目前的代码:

import logging


logging.basicConfig(filename='./example.log', level=logging.DEBUG, 
                    format='%(asctime)s %(name)-12s %(levelname)-8s %(message)s',
                    datefmt='%m-%d %H:%M')

logging.debug('debug failed')
logging.info('info failed')
logging.warning('A warning')
Run Code Online (Sandbox Code Playgroud)

python logging xdebug

8
推荐指数
1
解决办法
5645
查看次数

XDebug PHP Eclipse - 错误找不到合适的文件或没有选择文件

我正在尝试远程调试一个php web应用程序但是无论何时我尝试启动一个调试会话Eclipse都会给我带来一堆弹出窗口:

调试器错误:"找不到合适的文件或没有选择文件.调试已终止".

在此输入图像描述

这是我目前的Xdebug 2.2.1配置:

[xdebug]
xdebug.remote_enable=1
xdebug.remote_autostart=0
xdebug.remote_host="localhost"
xdebug.remote_port=9000
xdebug.remote_handler="dbgp"
Run Code Online (Sandbox Code Playgroud)

这是我的Eclipse 4.2.1调试配置:

在此输入图像描述

Xdebug已正确安装,我在phpinfo()输出中看到它已启用.

php macos web-applications xdebug eclipse-pdt

8
推荐指数
1
解决办法
2416
查看次数

从命令行进行xdebug分析不起作用

当我尝试运行xdebug分析(从命令行)时,脚本立即死亡.我没有收到任何反馈.(如果我在关闭xdebug profiling的情况下运行脚本,那么脚本就会像我期望的那样执行.)我在Centos 6中运行php 5.4.13.

我尝试了两种不同的方法来启用分析:编辑php.ini,并在执行脚本时使用-d标志.

我的php.ini的相关部分如下所示:

[xdebug]
zend_extension="/usr/lib64/php/modules/xdebug.so"
xdebug.remote_enable = 1
xdebug.default_enable = 0
xdebug.profiler_output_dir = "/tmp/profiling"
# xdebug.profiler_enable = 1  # I uncomment this line to try to profile my script
Run Code Online (Sandbox Code Playgroud)

我使用这两个命令之一调用脚本(并确保ini文件行被注释掉(或不符合)).

$> /usr/bin/php scripts/daemon/PostProcess.php -c 4
Run Code Online (Sandbox Code Playgroud)

要么

$> /usr/bin/php -d xdebug.profiler_enable=1 scripts/daemon/PostProcess.php -c 4
Run Code Online (Sandbox Code Playgroud)

我确信正在正确解释设置.

$> php -d xdebug.profiler_enable=1 --info | grep profile | less

xdebug.profiler_aggregate => Off => Off
xdebug.profiler_append => Off => Off
xdebug.profiler_enable => On => On
xdebug.profiler_enable_trigger => Off => Off
xdebug.profiler_output_dir => /tmp/profiling …
Run Code Online (Sandbox Code Playgroud)

php xdebug

8
推荐指数
1
解决办法
626
查看次数

Xdebug 无法连接回 Docker 主机

我刚刚在我的机器上设置了 Docker 并且有一个 Nginx/PHP7 (FPM)/MySQL 设置一切正常,但是在 PHP 容器上安装了 Xdebug 我无法让它连接回我主机上的 PHPStorm。

这是我的 PHP Xdebug 配置...

zend_extension=/usr/local/lib/php/extensions/no-debug-non-zts-
20151012/xdebug.so
xdebug.remote_log=/usr/local/var/log/xdebug.log
xdebug.remote_enable=1
xdebug.remote_host=192.168.99.1
xdebug.remote_port=9000
xdebug.remote_connect_back=1
xdebug.remote_handler=dbgp
xdebug.remote_mode=req
xdebug.remote_autostart=true
Run Code Online (Sandbox Code Playgroud)

浏览时,如果为容器设置了 Xdebug 启用 cookie,则不会提示连接。如果我浏览一个本地托管的站点,那么我知道 PHPStorm 的收听是正确的。

在本地机器上,我可以 telnet 到端口 9000...

$ telnet 192.168.99.1 9000
Trying 192.168.99.1...
Connected to 192.168.99.1.
Escape character is '^]'.
^]
telnet> quit
Connection closed.
Run Code Online (Sandbox Code Playgroud)

...但是我不能从 boot2docker VM 或容器。当我尝试时,它只是坐在那里什么都不做。然而,VM 和容器都可以很好地 ping 主机。

我试过禁用我的 Mac 的防火墙,但仍然没有乐趣。

我不太确定如何禁用 boot2docker VM 上的防火墙。

任何有关为什么这不起作用的见解都将受到极大欢迎。提前致谢。

php xdebug docker boot2docker docker-machine

7
推荐指数
1
解决办法
3775
查看次数

NetBeans Xdebug 最大同时连接数

我正在使用 NetBeans 通过 xdebug 来调试 php,一切都很完美,但是当我正在调试的同一个脚本中有多个连接时。

我已经看到 PhpStorm 提供了配置检查:同时连接https://blog.jetbrains.com/phpstorm/2013/04/simultaneous-debugging-sessions-in-phpstorm/

我想知道 NetBeans 是否可以管理同时连接以及如何激活它?

php netbeans xdebug phpstorm

7
推荐指数
1
解决办法
377
查看次数

VSCode 的 Xdebug 在预览中截断长变量

当我使用 Xdebug 在 VSCode 中调试变量时,长变量(如 SQL 语句)在预览鼠标悬停或检查面板中被截断。

我怎样才能看到完整的文本?

php variables truncate xdebug visual-studio-code

7
推荐指数
1
解决办法
880
查看次数

带有 Vagrant 和 Xdebug 的 PhpStorm 中令人讨厌的警告“调试会话已完成而没有暂停”

我在 Ubuntu 上的本地电脑上的 vagrant 上正确运行了 xdebug。它显示了带有错误信息的橙色表格。我的测试页面是localhost:8030

在 Chrome 浏览器中,我有Xdebug helper.

问题是每次刷新站点时,PhpStorm 中都会显示一个烦人的警告:

调试会话没有暂停就完成了
这可能是由于路径映射配置错误或本地和远程项目不同步造成的。
要找出问题,请检查 PHP 上“本地主机”服务器的路径映射配置 | 服务器或在 PHP 脚本选项(从运行菜单中)的第一行启用中断。

我已经在“PHP | Servers”检查了“localhost”服务器的路径映射配置,它们没问题。我的 PhpStorm 项目目录与默认的 Vagrant 目录相关联/vagrant/web/

启用Break at first line in PHP scripts option确实有帮助,但我认为这是一种机会主义。

如何摆脱这些 PhpStorm 警告?

php xdebug phpstorm vagrant

7
推荐指数
2
解决办法
1万
查看次数

PHP 在异常堆栈跟踪中缺少函数参数

我正在努力为我的 php 应用程序开发我自己的错误处理程序,我需要向开发服务器上的用户发送一个漂亮的异常报告。因此,当它捕获异常时,它必须解析异常堆栈跟踪以显示函数、行参数等。但是,我不再有函数调用中的参数

我认为这是由 XDebug 引起的,我尝试更改 xdebug.collect_params 的值来修复它,但没有成功。事实上,这个配置只是改变了现在有函数调用参数的 xdebug 默认报告的显示。

我做了一个测试脚本来测试它,所以我让你看看。

<?php
$config = 'xdebug.collect_params';
echo "Current value of $config is<br />\n";
var_dump(ini_get($config));

ini_set($config, 3);

function fallDeepToHell($param) {
    echo 'Param is : ' . $param . "<br>\n";
    throw new Exception();
}

try {
    fallDeepToHell('from heaven');
} catch(Exception $e) {
    var_dump($e->getTrace());
    var_dump($e->getTraceAsString());
}
fallDeepToHell('from heaven');
Run Code Online (Sandbox Code Playgroud)

我的开发服务器上的结果是

在此处输入图片说明

我在 FPM 中使用 PHP 7.4。

我的 php.ini 更改:

max_execution_time = 30
memory_limit = 128M
error_reporting = E_ALL
display_errors = On
display_startup_errors …
Run Code Online (Sandbox Code Playgroud)

php exception xdebug

7
推荐指数
1
解决办法
776
查看次数

带有 Xdebug 3 env XDEBUG_MODE 的 Docker PHP 不起作用

我正在尝试Xdebug 3在 PHP 容器中进行配置 ,并 根据文档 https://xdebug.org/docs/all_settings#mode设置 XDEBUG_MODEenv 变量,但 显示. 怎么修?offxdebug_info()mode=develop

Dockerfile:

FROM php:7.4.11-fpm
…
ENV XDEBUG_MODE=off
ENV XDEBUG_CONFIG=""
RUN pecl install xdebug \
    && docker-php-ext-enable xdebug \
...
Run Code Online (Sandbox Code Playgroud)

docker-compose.yml:

services:
  php:
    build:
      dockerfile: ${PWD}/.devcontainer/Dockerfile
    image: php-fpm
    environment:
      XDEBUG_MODE: ${XDEBUG_MODE} // off
      XDEBUG_CONFIG: ${XDEBUG_CONFIG}
Run Code Online (Sandbox Code Playgroud)

xdebug信息:

php -r 'xdebug_info();'
Version => 3.0.0
Support Xdebug on Patreon, GitHub, or as a business: https://xdebug.org/support
Feature => Enabled/Disabled
Development Aids => ? disabled
Coverage => ? disabled …
Run Code Online (Sandbox Code Playgroud)

php xdebug docker xdebug-3

7
推荐指数
1
解决办法
6489
查看次数

如何将 xdebug 添加到 php:8.1-fpm-alpine Docker 容器?

我的 phpunit 容器有这个 dockerfile:

FROM php:8.1-fpm-alpine

WORKDIR /var/www/html

RUN apk add --no-cache --repository http://dl-cdn.alpinelinux.org/alpine/edge/community/ --allow-untrusted gnu-libiconv
ENV LD_PRELOAD /usr/lib/preloadable_libiconv.so php

ENV PHP_MEMORY_LIMIT=1G
ENV PHP_UPLOAD_MAX_FILESIZE: 512M
ENV PHP_POST_MAX_SIZE: 512M

RUN docker-php-ext-install pdo

RUN apk add --no-cache libpng libpng-dev && docker-php-ext-install gd && apk del libpng-dev

RUN apk update \
    && apk upgrade \
    && apk add --no-cache \
        freetype \
        libpng \
        libjpeg-turbo \
        freetype-dev \
        libpng-dev \
        jpeg-dev \
        libwebp-dev \
        libjpeg \
        libjpeg-turbo-dev

RUN docker-php-ext-configure gd \
        --with-freetype=/usr/lib/ \ …
Run Code Online (Sandbox Code Playgroud)

phpunit xdebug docker docker-compose xdebug-3

7
推荐指数
2
解决办法
1万
查看次数