Да вроде можно узнать файл.
PHP:
require_once("PEAR.php");
define("PEAR_IS_SAINT", true);
define("DEBUG", true);
function pear_error_handler($error_obj)
{
if (DEBUG) {
print "<pre>";
foreach (array_reverse($error_obj->backtrace) as $e){
if (!isset($e['file'])) {
continue;
}
if (PEAR_IS_SAINT && preg_match("/\/pear\//", $e['file'])) {
continue;
}
if (!empty($e['file'])){
print ("{$e['file']}:{$e['line']}\n");
}
}
die($error_obj->getMessage() . "\n" . $error_obj->getDebugInfo());
} else {
print "Все пропало.";
}
}
Такая ерунда возвращает в обратном порядке пути к файлам, в которых случилось это самое. То есть если файл index.php включает файл oi.php, а тот включает Net/FTP.php и ошибка случилась, к примеру, во время фтп-коннекта, то получим index.php:номер_строки, потом этот самый Oi. У меня PEAR лежит в поддиректории pear, поэтому Net/FTP.php в списке я не увижу (я исхожу из того, что ошибок в пеар не бывает). Удобно.
/home/hkey/public_html/sys/loginshield_installer/index.php:67
/home/hkey/public_html/sys/loginshield_installer/stage_21.php:12
/home/hkey/public_html/sys/loginshield_installer/inc/Installation.class.php:152
Connection to host failed