php / php/php-src

Wrong line & file on error trace

Abierto
#18,105 3 comentarios 0 reacciones 0 asignados Ver en GitHub

Nadie ha tomado este issue todavía.

Bug Category: Engine Status: Verified
Lenguaje dominante
C
Estrellas
40.4k
Forks
8.2k
Merge medio
2 d 15 h
PR fusionados (30 d)
103

Descripción

Description
definitions.php
<?php

class ThrowableParam {
	
   public function __construct() {
		
       // this will be line #7 for definitions.php:
      throw new Exception(sprintf('I expect to indicate file %s on line %s but it throws', basename(__FILE__), __LINE__));
		
   }
	
}

trait TraitInASeparateFile {

    // but this will be line #16 for definitions.php:		
    public function execute(ThrowableParam $param=new ThrowableParam): void {}
	
}

?>
main.php
<?php

include './definitions.php';

class Foo  {

    use TraitInASeparateFile;

}

$bar=new Foo;
$bar->execute(); // line #11 for main.php

// So, there is no line #16 for main.php

?>
RESULT :

Fatal error: Uncaught Exception: I expect to indicate file definitions.php on line 7 but it throws in ./main.php:16

  Stack trace:
  #0 ./definitions.php(7): constant expression
  #1 ./definitions.php(16): ThrowableParam->__construct()
  #2 ./main/php(11): Foo->execute()
  #3 {main}
  thrown in /var/www/html/nbcloud/_tests/bugPHP.php on line 16

BUT EXPECT :

Fatal error: Uncaught Exception: I expect to indicate file definitions.php on line 7 but it throws in ./definitions.php:7

  Stack trace:
  #0 ./definitions.php(7): constant expression
  #1 ./definitions.php(16): ThrowableParam->__construct()
  #2 ./main/php(11): Foo->execute()
  #3 {main}
  thrown in /var/www/html/nbcloud/_tests/bugPHP.php on line 16

PHP Version

8.4.5

Operating System

Debian 11

Guía de contribución

Abrir la guía de contribución

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Línea de trabajo

Comienza reproduciendo el informe con definitions.php y main.php en PHP 8.4.5, comparando la ubicación en la que se produce el lanzamiento con el stack trace. Investiga el manejo en tiempo de ejecución del argumento predeterminado del constructor que contiene una expresión constante y verifica que la ubicación de lanzamiento indicada sea definitions.php:7 en lugar de main.php:16.

Escrito por el modelo de indexación a partir del texto del issue.

Evaluación

Stack tecnológico
php
Área
backend
Tipo de issue
Error
Dificultad
4/5
Tiempo estimado
3-5 días
Estado de actividad
Estancado
Claridad
Bastante claro
Aptitud para principiantes
35/100

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.