__FILE__ magic constant containing wrong values #2

Closed
opened 2018-07-12 19:33:16 +02:00 by belliash · 8 comments
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 2018-07-12 19:33:16 +02:00
Author
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
Author
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 2018-07-13 18:21:19 +02:00

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
Author
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.
Member

How is it now with the current code ?

How is it now with the current code ?
BigDave was assigned by belliash 2018-07-23 11:25:19 +02:00
belliash self-assigned this 2018-07-23 11:25:20 +02:00
Author
Owner

I'll do my best to close this today.

I'll do my best to close this today.
belliash referenced this issue from a commit 2020-06-20 00:20:29 +02:00
Sign in to join this conversation.
No Milestone
3 Participants
Notifications
Due Date
The due date is invalid or out of range. Please use the format 'yyyy-mm-dd'.

No due date set.

Dependencies

No dependencies set.

Reference: aerscript/Aer#2
No description provided.