php / php/php-src

Show symlinks in stack trace file paths

Offen
#15,000 5 Kommentare 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen

Dieses Issue hat noch niemand übernommen.

Category: Engine Feature Status: Needs Triage
Vorherrschende Sprache
C
Sterne
40.4k
Forks
8.1k
Ø Merge
2 T. 13 Std.
Gemergte PRs (30 T.)
96

Beschreibung

Description
Summary

Stack trace (from debug_backtrace(), exceptions, errors ..) shows always absolute/real/evaluated file paths, even though the script was run from symlink context.

How to reproduce
  1. Create a directory "d2" and a symlink to that directory "d1"
mkdir D:\d2
mklink /D "D:\d1" "D:\d2"
  1. Create a "D:\d2\test.php" script
<?php

var_dump($argv);

(function(){
	  var_dump(debug_backtrace());
})();
  1. Run the script using symlink path
    php.exe D:\d1\test.php
Current behavior
array(1) {
  [0]=>
  string(14) "D:\d1\test.php"
}
array(1) {
  [0]=>
  array(4) {
    ["file"]=>
    string(14) "D:\d2\test.php"
    ["line"]=>
    int(8)
    ["function"]=>
    string(9) "{closure}"
    ["args"]=>
    array(0) {
    }
  }
}
Expected behavior
array(1) {
  [0]=>
  string(14) "D:\d1\test.php"
}
array(1) {
  [0]=>
  array(4) {
    ["file"]=>
    string(14) "D:\d1\test.php"
    ["line"]=>
    int(8)
    ["function"]=>
    string(9) "{closure}"
    ["args"]=>
    array(0) {
    }
  }
}
...
PHP Version

8.3.9

Operating System

Windows

Beitragsleitfaden

Beitragsleitfaden öffnen

Erste Schritte

  1. Lies das ganze Issue und danach den Beitragsleitfaden des Projekts.
  2. Schreib ins Issue, dass du es übernimmst — das erspart doppelte Arbeit.
  3. Forke das Repository und arbeite in einem Branch.
  4. Öffne einen Pull Request, der die Issue-Nummer nennt.

Rechercherichtung

Verwende die Windows-Reproduktion mit php.exe, debug_backtrace(), Ausnahmen und Fehlern als Ausgangspunkte. Vergleiche argv und die Dateipfade der stack-trace, wenn D:\d1\test.php über den symlink aufgerufen wird. Als erledigt gilt, dass die gemeldeten Pfade für die beschriebenen Fälle durchgängig den symlink-Pfad beibehalten, wobei das bestehende Verhalten auf Regressionen geprüft wird.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Bewertung

Tech-Stack
php
Bereich
operating-systems
Issue-Typ
Bug
Schwierigkeit
4/5
Geschätzter Aufwand
3-5 Tage
Aktivitätsstatus
Veraltet
Klarheit
Klar beschrieben
Anfängerfreundlichkeit
45/100

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.