View Issue Details

IDProjectCategoryView StatusLast Update
0000172XdebugUsage problems (Wrong Results)public2006-10-03 21:14
ReporterXueferAssigned Toderick 
PrioritynormalSeveritymajorReproducibilityalways
Status resolvedResolutionfixed 
PlatformgentooOSlinuxOS Versionlastest stable
Product Version2.0.0dev 
Target VersionFixed in Version 
Summary0000172: coverage produce wrong coverage
Description1. not all opcode is catched by coverage at runtime
a.php
<?php

xdebug_start_code_coverage(XDEBUG_CC_UNUSED);
include("b.php");
?>

b.php
<?php

$a = "";
$a =
""
. "abc{$a}abc"
. "abc"
;
$cov = xdebug_get_code_coverage();
print_r($cov);

?>
result:
Array
(
    [/home/xuefer/htdocs/skydotnet_php5/matrix/debug/test/a.php] => Array
        (
            [4] => 1
        )

    [/home/xuefer/htdocs/skydotnet_php5/matrix/debug/test/abc.php] => Array
        (
            [3] => 1
            [6] => 1
            [7] => -1
            [8] => -1
            [9] => 1
            [10] => -1
            [13] => -1
        )

)

at least
            [7] => -1
            [8] => -1
should be both 1

2. i'd suggest -1 to be 0
3. very slow with XDEBUG_CC_UNUSED, xdebug_prefil_code_coverage() is executed no matter if the op_array is done before.
suggested fix:
a. move it to xdebug_compile_file()
b. add a hash (by pointer) that avoid re-fill the same op_array, but the file included before xdebug_start_code_coverage is will not be prefilled
c. when xdebug_get_code_coverage(XDEBUG_CC_UNUSED), loop though all the op_array(file/function/class method) for xdebug_prefil_code_coverage(), it could be a bit hard to get the file op_array
TagsNo tags attached.
Operating System
PHP Version4.3.11

Activities

derick

2006-10-03 21:14

administrator   ~0000468

The wrong coverage output is now fixed in CVS. The performance enhancements were already added some time ago.

Issue History

Date Modified Username Field Change
2006-03-10 13:05 Xuefer New Issue
2006-10-03 21:14 derick Status new => resolved
2006-10-03 21:14 derick Resolution open => fixed
2006-10-03 21:14 derick Assigned To => derick
2006-10-03 21:14 derick Note Added: 0000468
2016-07-31 13:36 derick Category Usage problems => Usage problems (Crashes)
2016-07-31 13:38 derick Category Usage problems (Crashes) => Usage problems (Wrong Results)