Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Дерево стека вызова с именами файлов и номерами строк

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Описание: точнее сформулировать не могу
eai
Отправлено: 30 Сентября, 2009 - 13:34:03
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 521
Дата рег-ции: Сент. 2009  
Откуда: Петроград


Помог: 10 раз(а)




Всем доброго времечка,

Известно что для отладки очень удобно испольовать __LINE__ и __FILE__
Сразу понятно где что "обрушилось" и куда "копать".
Обычно это вставляют во что то подобное функции message_die
И пишется код что то вроде

PHP:
скопировать код в буфер обмена
  1.  
  2. if (!some_function())
  3.    message_die( .... ,__LINE__,__FILE__);
  4.  

Однако, это не всегда и не совсем удобно.
Вот я делаю некую функцию, которая вызывется у меня где попало.
если я в теле этой функции cсылаюсь на __LINE__, то получу номер сроки именно в файле где расположено тело этой функции, а откуда она вызывалась не известно.
Более того, ситуация усугубляется если это был "глубокий" вызов в несколько шагов.

Собственно вопрос состоит в том, что можно ли получить стек вызовов с указанирем имени файла и номера строки для каждого.

С Уважением
Евгений
 
 Top
Stierus Супермодератор
Отправлено: 30 Сентября, 2009 - 14:34:23
Post Id



Рекордсмен по количеству сообщений за 7 дней


Покинул форум
Сообщений всего: 2132
Дата рег-ции: Дек. 2008  
Откуда: Москваль


Помог: 52 раз(а)




Xdebug попробуй поставить, думаю, то, что тебе нужно
 
My status
 Top
eai
Отправлено: 30 Сентября, 2009 - 14:59:13
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 521
Дата рег-ции: Сент. 2009  
Откуда: Петроград


Помог: 10 раз(а)




Stierus пишет:
Xdebug попробуй поставить, думаю, то, что тебе нужно

Эт вариант коенчно. но я хочу писать код который сам себя контролирует, дабы он в любоймомент на любом хостинге работал именно так.
 
 Top
EuGen Администратор
Отправлено: 30 Сентября, 2009 - 15:12:08
Post Id


Профессионал


Покинул форум
Сообщений всего: 9095
Дата рег-ции: Июнь 2007  
Откуда: Berlin


Помог: 707 раз(а)






-----
Есть в мире две бесконечные вещи - это Вселенная и человеческая глупость. Но насчет первой .. я не уверен.
 
 Top
eai
Отправлено: 30 Сентября, 2009 - 16:27:02
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 521
Дата рег-ции: Сент. 2009  
Откуда: Петроград


Помог: 10 раз(а)




EuGen пишет:
http://us3.php.net/manual/en/language.exceptions.php


смотрел я это, убиться можно, это вам не c++ Подмигивание
 
 Top
EuGen Администратор
Отправлено: 30 Сентября, 2009 - 21:58:56
Post Id


Профессионал


Покинул форум
Сообщений всего: 9095
Дата рег-ции: Июнь 2007  
Откуда: Berlin


Помог: 707 раз(а)




Конечно. Хоть схожесть и есть, во многом есть сильные отличия.


-----
Есть в мире две бесконечные вещи - это Вселенная и человеческая глупость. Но насчет первой .. я не уверен.
 
 Top
JustUserR
Отправлено: 01 Октября, 2009 - 00:10:40
Post Id



Активный участник


Покинул форум
Сообщений всего: 8715
Дата рег-ции: Июнь 2009  


Помог: 17 раз(а)




Вообще к слову сказать PHP очень интересный язык - одни особенности сделаны под язык C++ а часть других в полную противоположность (Особенно это касается наследования классов и некоторыми особенносяти работы с классами - для мени они кажутся противоестетвенными)
А вот обработка исключений все равно напоминает язык Java Улыбка


-----
Сделать можно все что угодно - нужно только старание, терпение и хороший поисковик Улыбка
Безлимитный web-хостинг от 15 рублей за 40 МБ дискового пространства - http://ihost[dot]oks71[dot]ru/
 
 Top
eai
Отправлено: 01 Октября, 2009 - 09:10:35
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 521
Дата рег-ции: Сент. 2009  
Откуда: Петроград


Помог: 10 раз(а)




PHP для Web считаю лучшим средством.
Конечно, Java с ее бинами и сервером приложений с точки зрения построения архитектур это супер и правильно, но скорость и качество разработки , а главное простота (как разработки так и установки) на PHP меня подкупает. Поэтому для Web я выбираю LAMP!

И __LINE__ c __FILE__ классные особенности которые можно было бы использовать
Вот если бы можно было получить не просто __LINE__ c __FILE__ а массив таких значений.
Наверное я сильно губу просто раскатал Улыбка

(Отредактировано автором: 01 Октября, 2009 - 09:20:54)

 
 Top
Stierus Супермодератор
Отправлено: 01 Октября, 2009 - 11:41:44
Post Id



Рекордсмен по количеству сообщений за 7 дней


Покинул форум
Сообщений всего: 2132
Дата рег-ции: Дек. 2008  
Откуда: Москваль


Помог: 52 раз(а)




Сделай хранилище этих данных (__LINE__ c __FILE__) , это может быть хоть глобальный массив, хоть класс под это дело напиши. При каждом действии, которое нужно отследить в каждой функции каждого класса, помещай инфу в это хранилище - вот тебе и будет стек на чистом php Улыбка
 
My status
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Программирование на PHP »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB