Задать вопрос

HipHop PHP не видит ошибок в файлах?

Уже долгое время пытаюсь разобраться в причинах проблемы. Поиск не дал никаких результатов, кроме пары неплохих музыкальных композиций.


Система Ubuntu 12.04.

Ситуация следующая: я скачал и собрал из исходников HipHop PHP, пользуясь вот этой инструкцией: github.com/facebook/hiphop-php/wiki/Building-and-i...


Все отлично поставилось и собралось.


После этого я запустил статический анализ кода, пользуясь вот этой статьей: habrahabr.ru/post/145683/


Анализатор запустился, отработал, создал нужные файлы — но не видит никаких ошибок, какой бы код я не анализировал.


Для того чтобы разобраться в проблеме я специально создал файл «errors.php»:
<?php
// на случай если error_reporting в PHP влияет на работу hiphop
error_reporting(E_ALL); 

// Обращение к необъявленной переменной
$a = $b;

// ошибочный порядок необязательных аргументов
function test($x=false, $y)
{
    // Обращение к локальной необъявленной переменной
    return $value;
}

// Вызов функции с неправильным количеством параметров
test();

// обращение к несуществующей функции
test_bad_function();

// попытка вывести необъявленную переменную
echo $undefined_variable;
?>



Заставил hiphop PHP проанализировать его вот такой командой:
$HPHP_HOME/src/hphp/hphp  /home/frost/errors.php --output-dir=$OUTPUT_DIR --log=4 --force=1 --keep-tempdir=1 --target=analyze



Результат выполнения команды в консоли:
running hphp...
Analyzing Includes
Analyzing All
Corrected function return type Boolean -> Variant
Corrected function return type [0x1] -> Variant
Corrected function return type [0x1] -> Object - iterator
Analyzing Includes
Analyzing All
Analyzing Includes
Analyzing All
parsing inputs...
parsing /home/frost/errors.php ...
Analyzing Includes
Analyzing All
parsing inputs took 0'00" (5 ms) wall time
pre-optimizing...
pre-optimizing took 0'00" (4 ms) wall time
analyze includes...
analyze includes took 0'00" (0 ms) wall time
inferring types...
inferring types took 0'00" (3 ms) wall time
post-optimizing...
post-optimizing took 0'00" (7 ms) wall time
saving code errors and stats...
saving stats...
saving stats took 0'00" (9 ms) wall time
all files saved in /home/frost/hiphop/reports ...
running hphp took 0'00" (195 ms) wall time



Как и ожидалось, в результате анализа создалось два файла:

Stats.js и CodeError.js


Содержимое Stats.js:
{
"FileCount":1,
"LineCount":19,
"CharCount":546,
"FunctionCount":2,
"ClassCount":0,
"TotalTime":0,
"AvgCharPerLine":28,
"AvgLinePerFunc":9,
"SymbolTypes":
{
    "Array":20,
    "Boolean":8,
    "Double":19,
    "Int64":2248,
    "Object":3,
    "Object - Specific":20,
    "Primitive":13,
    "String":134,
    "Variant":306,
    "_all":2771,
    "_strong":2452,
    "_weak":319
}
,"VariableTableFunctions":[]
}


Самое главное:

Содержимое CodeError.js:
[0,{}
]



То есть файл CodeError.js всегда содержит 0 ошибок вне зависимости от того сколько кода анализируется и сколько ошибок находится в файлах. Просмотрел --help но не нашел там никаких параметров, которые помогли бы решить проблему.


Есть ли какие-нибудь идеи по поводу причин такой ошибки?
  • Вопрос задан
  • 2983 просмотра
Подписаться 8 Оценить 1 комментарий
Пригласить эксперта
Ответы на вопрос 2
pr0tect0r
@pr0tect0r
Error_reporting (0)?
Ответ написан
nswbit
@nswbit
для начала включите более подробный лог и посмотрите на отлов ошибок, может из доступных вариантов ни один просто не включён в отлов?

В общем сначала подробный лог в студию
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы