__FILE__ magic constant containing wrong values #2

Closed
opened 4 years ago by belliash · 8 comments
belliash commented 4 years ago
Owner

Aer Information

  • Aer Version (or commit ref): e53cfb8ba0
  • Operating System: Linux
  • System Architecture (eg. arm, x86_64, ...): x86_64

Your problem description

When several source files are included/required, the magic constant contains wrong data. Code snippet contains 3 files:

test.php:

test2.php:

test3.php:

Expected result differs from the actual result. This bug makes debugging more difficult.

Expected results

test.php - 2

test2.php - 2

test3.php - 2

test2.php - 4

test.php - 4

Current results

test.php - 2

test2.php - 2

test3.php - 2

./test3.php - 4

test2.php - 4

Additional information

debug_backtrace() function is also affected by this bug, but there line number is also not working correctly, returning always 1:

<?php
    echo "TEST:\n"
    var_dump(debug_backtrace());
?>

The above code results in:

TEST:
array(2) {
[line] =>
int(1)
[file] =>
string(8 'test.php')
}

<!-- 1. Please speak English, this is the language all of us can speak and write. 2. Please take a moment to check that your issue doesn't already exist. 3. Please give all relevant information below for bug reports, because incomplete details will be handled as an invalid report. --> # Aer Information - Aer Version (or commit ref): e53cfb8ba0 - Operating System: Linux - System Architecture (eg. arm, x86_64, ...): x86_64 # Your problem description When several source files are included/required, the magic constant contains wrong data. Code snippet contains 3 files: test.php: <?php echo __FILE__ . ' - ' . __LINE__ . "\n"; require_once('test2.php'); echo __FILE__ . ' - ' . __LINE__ . "\n"; ?> test2.php: <?php echo __FILE__ . ' - ' . __LINE__ . "\n"; require_once('test3.php'); echo __FILE__ . ' - ' . __LINE__ . "\n"; ?> test3.php: <?php echo __FILE__ . ' - ' . __LINE__ . "\n"; ?> Expected result differs from the actual result. This bug makes debugging more difficult. # Expected results test.php - 2 test2.php - 2 test3.php - 2 test2.php - 4 test.php - 4 # Current results test.php - 2 test2.php - 2 test3.php - 2 ./test3.php - 4 test2.php - 4 # Additional information debug_backtrace() function is also affected by this bug, but there line number is also not working correctly, returning always 1: <?php echo "TEST:\n" var_dump(debug_backtrace()); ?> The above code results in: TEST: array(2) { [line] => int(1) [file] => string(8 'test.php') }
belliash added the
bug
label 4 years ago
Poster
Owner

This can be related with https://github.com/symisc/PH7/issues/20

This can be related with https://github.com/symisc/PH7/issues/20

This is the one bug i ran into thats when i decided to give up on my project

This is the one bug i ran into thats when i decided to give up on my project
Poster
Owner

Unfortunately this is a bug in basic functionality and we have to fix it. This will make any kind of debugging harder.

Unfortunately this is a bug in basic functionality and we have to fix it. This will make any kind of debugging harder.

Im looking into this

Im looking into this
BigDave was assigned by belliash 4 years ago

i have completed one part but for the life of me i cant think how todo replace ../ etc with the actual dir i will commit changes into file_magic branch shortly i hope the unix eqiv works too but the win32 version does

i have completed one part but for the life of me i cant think how todo replace ../ etc with the actual dir i will commit changes into file_magic branch shortly i hope the unix eqiv works too but the win32 version does
Poster
Owner

This is connected with #3, I think. This is connected with #2, I think. There is a general problem with information about file & line position in PH7. FILE shows some trash, while debug_backtrace() simply gets currently processed file and returns only last callback instead of whole backtrace.

This is connected with #3, I think. This is connected with #2, I think. There is a general problem with information about file & line position in PH7. __FILE__ shows some trash, while debug_backtrace() simply gets currently processed file and returns only last callback instead of whole backtrace.
Collaborator

How is it now with the current code ?

How is it now with the current code ?
BigDave was assigned by belliash 4 years ago
belliash self-assigned this 4 years ago
Poster
Owner

I'll do my best to close this today.

I'll do my best to close this today.
belliash closed this issue 4 years ago
belliash referenced this issue from a commit 2 years ago
Sign in to join this conversation.
No Milestone
3 Participants
Notifications
Due Date

No due date set.

Dependencies

This issue currently doesn't have any dependencies.

Loading…
There is no content yet.