Показать сообщение отдельно
  #2 (permalink)  
Старый 21.02.2010, 09:00
Аватар для micscr
Профессор
Отправить личное сообщение для micscr Посмотреть профиль Найти все сообщения от micscr
 
Регистрация: 10.09.2009
Сообщений: 1,578

debug_backtrace предоставляет широкие возможности отладки.
Вот как я делаю в своем самописном дебагере.:
static function dbg(&$what, $name='Unknown', $pometka = '')
   {
       static $num = 0;
       ++$num;
       $inf = debug_backtrace();
       try {
       $str = self::$str_shab; // произвести замены в шаблоне вывода логов
       $str = str_replace('(num)',strval($num),$str);
       $str = str_replace('(file)',strval($inf[0]['file']),$str);
       $str = str_replace('(line)',strval($inf[0]['line']),$str);
           $vsp = (!empty($inf[1]['function'])) ? $inf[1]['function'] : '';
       $str = str_replace('(func)',strval($vsp),$str);
           $vsp = (!empty($inf[1]['type'])) ? $inf[1]['type'] : '';
       $str = str_replace('(type)',strval($vsp),$str);
       $str = str_replace('(name)',strval($name),$str);
       $str = str_replace('(nametype)',strval(gettype($what)),$str);
       $str = str_replace('(val)',self::vivData($what),$str);
       $str = str_replace('(pometka)',strval($pometka),$str);
       self::$mas_str[] = $str;
       } catch (Exception $ex) {
           self::$mas_errors[] = $ex->getMessage() . '| file:' . $ex->getFile() . '| line:' . $ex->getLine();
       }
       
   }

Заметь $inf[0], $inf[1], ... - обращение к разным уровням вложенности функций.
Ответить с цитированием