Форум dkLab и Denwer
Здесь общаются Web-разработчики.
Генеральный спонсор:
Хостинг «Джино»

5 Debug_HackerConsole: «хакерская» консоль, упрощающая отладку сайтов (Дмитрий Котеров)
Goto page Previous  1, 2, 3, 4
Author Message
VADER
Guest





Карма: 388
   поощрить/наказать


PostPosted: Wed Jun 06, 2007 12:17 pm (написано за 1 минуту 19 секунд)
   Post subject:
Reply with quote

от поработал я чуток над яваскрипт-стророной консоли. если кто-то использует прототайп - пишите на admin.nefo[A.T]gmail.com
Back to top
Genius_A
Guest





Карма: 388
   поощрить/наказать


PostPosted: Tue Jul 10, 2007 10:35 am (спустя 1 месяц 3 дня 22 часа 17 минут; написано за 2 минуты 31 секунду)
   Post subject:
Reply with quote

Консоль очень хорошая, но возник вопрос:
А как использовать attachToHtml($page)?
Я использую Smarty и SAJAX. и при использовании аякса естественно передается куски консоли.
Вижу что attachToHtml предназначена для решения это проблемы, но ни одного примера так и не нашел.
Киньте плиз пример.
Back to top
Дмитрий Котеров
Администратор



Joined: 10 Mar 2003
Posts: 13665
Карма: 413
   поощрить/наказать


PostPosted: Tue Jul 10, 2007 10:41 am (спустя 5 минут; написано за 47 секунд)
   Post subject:
Reply with quote

1. Передаете в конструктор $autoAttach = false. Тогда консоль не будет по ob_start() прицепляться.
2. Вызываете в нужном месте ob_start(); ... echo $console->attachToHtml(ob_get_clean());
Back to top
View user's profile Send private message Send e-mail
Guest






Карма: 388
   поощрить/наказать


PostPosted: Tue Jul 10, 2007 11:02 am (спустя 21 минуту; написано за 2 минуты 11 секунд)
   Post subject:
Reply with quote

Дмитрий Котеров wrote:
1. Передаете в конструктор $autoAttach = false. Тогда консоль не будет по ob_start() прицепляться.
2. Вызываете в нужном месте ob_start(); ... echo $console->attachToHtml(ob_get_clean());
Спасибо, помогло.
А не думали это организовать консоль как плагин Смарти?
Ведь значительно упростилось бы.
Back to top
Maus
Модератор



Joined: 29 Jun 2003
Posts: 8151
Карма: 272
   поощрить/наказать

Location: пос. Омсукчан Магаданской области

PostPosted: Tue Jul 10, 2007 6:22 pm (спустя 7 часов 20 минут; написано за 30 секунд)
   Post subject:
Reply with quote

Гость wrote:
А не думали это организовать консоль как плагин Смарти?
а как быть тем, кто Смарти не использует?
Back to top
View user's profile Send private message
Дмитрий Котеров
Администратор



Joined: 10 Mar 2003
Posts: 13665
Карма: 413
   поощрить/наказать


PostPosted: Tue Jul 10, 2007 8:07 pm (спустя 1 час 44 минуты; написано за 25 секунд)
   Post subject:
Reply with quote

А при чем тут вообще смарти? Консоль на более низком уровне работает ведь.
Back to top
View user's profile Send private message Send e-mail
jkeks
Участник форума



Joined: 17 Feb 2004
Posts: 40
Карма: 1
   поощрить/наказать

Location: Россия

PostPosted: Thu Aug 02, 2007 1:29 pm (спустя 22 дня 17 часов 22 минуты; написано за 13 секунд)
   Post subject:
Reply with quote

Когда можно будет ajax отлаживать ?
Back to top
View user's profile Send private message
Дмитрий Котеров
Администратор



Joined: 10 Mar 2003
Posts: 13665
Карма: 413
   поощрить/наказать


PostPosted: Thu Aug 02, 2007 7:48 pm (спустя 6 часов 19 минут; написано за 15 секунд)
   Post subject:
Reply with quote

А в чем проблема это делать сейчас?
Back to top
View user's profile Send private message Send e-mail
jkeks
Участник форума



Joined: 17 Feb 2004
Posts: 40
Карма: 1
   поощрить/наказать

Location: Россия

PostPosted: Fri Aug 03, 2007 5:24 am (спустя 9 часов 35 минут; написано за 2 минуты 35 секунд)
   Post subject:
Reply with quote

Вообщем я принимаю вашим же jshttprequest js код, хотелось бы видеть вообще че приходит а так же все ошибки PHP если были.
Где-то в постах вы упоминали что для xmlhttp у вас не все сделано.
Конечно бы надо попробовать что я и собираюсь, если FF не настрою с firebug
Back to top
View user's profile Send private message
Дмитрий Котеров
Администратор



Joined: 10 Mar 2003
Posts: 13665
Карма: 413
   поощрить/наказать


PostPosted: Sat Aug 04, 2007 4:42 pm (спустя 1 день 11 часов 17 минут; написано за 38 секунд)
   Post subject:
Reply with quote

Повторяю вопрос: в чем проблема видеть ошибки PHP в консоли? Методы у нее для вывода данных из JS есть.
Back to top
View user's profile Send private message Send e-mail
Artemy
Заглянувший



Joined: 31 Mar 2004
Posts: 6
Карма: 0
   поощрить/наказать


PostPosted: Sat Aug 04, 2007 6:55 pm (спустя 2 часа 13 минут; написано за 1 минуту 38 секунд)
   Post subject:
Reply with quote

Как то можно сделать, что бы было несколько консолей и открывались ctrl+~ ctrl+1 ctrl+2 .. и т.д.
Cильно придётся изменять js?
Back to top
View user's profile Send private message
Дмитрий Котеров
Администратор



Joined: 10 Mar 2003
Posts: 13665
Карма: 413
   поощрить/наказать


PostPosted: Sat Aug 04, 2007 9:48 pm (спустя 2 часа 52 минуты; написано за 28 секунд)
   Post subject:
Reply with quote

Зачем несколько консолей? Пишите все в одну. Можно в разные ее блоки.
Несколько сделать нельзя.
Back to top
View user's profile Send private message Send e-mail
Nab
Заглянувший



Joined: 13 Aug 2007
Posts: 3
Карма: 1
   поощрить/наказать

Location: Kiev

PostPosted: Mon Aug 13, 2007 5:48 pm (спустя 8 дней 19 часов 59 минут; написано за 4 минуты 50 секунд)
   Post subject: Мой вариант консоли :)
Reply with quote

Разрабатываю фраймворк на перл, и в качестве одного из инструметов отладки использую консоль,
так как вывод может быть достаточно большой то сделал небольшую навигацию, и некоторые улучшения...
глянуть можно nab.kiev.ua/examples/PluginsAdminModeDevConsole.html

Вообще плагин имеет массу параметров по перехвату различных ошибок и тестовых сообщений, также сделал небольшую профайлировку.

А вообще это великолепная вещь (спасибо Дмитрию Котерову), я ее у же год использую, постепенно подганяя под свои задачи, и думаю еще буду не раз расширять функционал :)

Last edited by Nab on Tue Aug 28, 2007 3:01 am; edited 1 time in total
Back to top
View user's profile Send private message Send e-mail
Дмитрий Котеров
Администратор



Joined: 10 Mar 2003
Posts: 13665
Карма: 413
   поощрить/наказать


PostPosted: Mon Aug 13, 2007 11:16 pm (спустя 5 часов 28 минут; написано за 34 секунды)
   Post subject:
Reply with quote

Интересно, можно как-нибудь наладить обмен кодом?
Например, JavaScript-часть консоли должна быть, по идее, независимой от языка на сервере.
Back to top
View user's profile Send private message Send e-mail
Nab
Заглянувший



Joined: 13 Aug 2007
Posts: 3
Карма: 1
   поощрить/наказать

Location: Kiev

PostPosted: Tue Aug 14, 2007 1:54 am (спустя 2 часа 37 минут; написано за 9 минут 35 секунд)
   Post subject:
Reply with quote

Да конечно она абсолютно независима, всевозможные варианты представления информации реализуються перловым плагином, консоль всего лишь инструмент отображения этой инфы, и она никак к особенностям перла не привязана. Хотя я и не проверял :)
Вся что она есть, она там представлена. И если под "обменом кодом", подразумеваеться сам код консоли, то как я могу помешать наладке обмена этим кодом ? :)

Другое дело, что перл позволяет глубже производить отладку и четче трассировать вызовы. Поэтому инструменты которые реализованы в самом плагине достаточно удобны. Там несколько отдельных трасировщиков для разных подсистем, включение перехвата STDERR, возможность вывода не просто значений переменных а дампа сложных структур или объектов. Также замеры времени и разницы между событиями. Сам плагин в принципе тоже еще очень 'beta' и кое что хочу добавить. Его хоть и можно использовать автономно, но он заточен в первую очередь для работы с CGI::Application, а точнее с моим ядром на его основе :). Тогда получаеться почти максимальный контроль над процессом выполнения...
Есть попытка реализовать вывод этой инфы и без JS на основе CSS, но она хоть и рабочая но еще слишком корявая, поэтому я пока ее показывать не буду :)

Last edited by Nab on Tue Aug 28, 2007 3:00 am; edited 1 time in total
Back to top
View user's profile Send private message Send e-mail
Nab
Заглянувший



Joined: 13 Aug 2007
Posts: 3
Карма: 1
   поощрить/наказать

Location: Kiev

PostPosted: Tue Aug 28, 2007 2:37 am (спустя 14 дней 42 минуты; написано за 59 секунд)
   Post subject:
Reply with quote

Вот немного доработанный вариант вместе с CSS
nab.kiev.ua/examples/PluginsAdminModeDevConsoleCss.html
Смотреть нужно с включенным JS и с выключенным.

CSS вариант делался как альтернатива, чтоб консоль показывалась даже с отключенным JS.
Естественно этот режим не годиться для отладки скриптов на клиентской стороне, и не так универсален в плане кроссброузерности... но мне он симпатичен :)

В IE вариант с CSS не работает, в FireFox нужно смотреть и проверять, в некоторых работает в некоторых нет, это думаю побороть на досуге. В Opere вроде нормально.

Внутри перлового модуля способы настраиваються очень гибко, но это к самой консоли уже мало относиться :)
Back to top
View user's profile Send private message Send e-mail
Guest






Карма: 388
   поощрить/наказать


PostPosted: Thu Jan 24, 2008 7:39 pm (спустя 4 месяца 27 дней 17 часов 2 минуты; написано за 3 минуты 6 секунд)
   Post subject:
Reply with quote

Поюзал консоль это чудо... так красиво я прст большой фанат веб программирования поэтому мне все кажется круто)))) Короче
консоль действительно прикольная... очень интересна я задумка.. у Дмитрия котерова вообще задмки интересные
один тока Orphus чего стоит... короче уважаемый Дмитрий.. а как насчет тогоч то бы сделать пароль на консоль и его шифровать в md5 и генерировать и сохранять в config.php ??
Вот таким методом
Code (JavaScript): скопировать код в буфер обмена
prompt(" .");
Back to top
Systemnik
Участник форума



Joined: 28 Dec 2007
Posts: 62
Карма: 0
   поощрить/наказать

Location: Свердловская область, Краснотурьинск

PostPosted: Thu Jan 24, 2008 7:41 pm (спустя 1 минуту 14 секунд; написано за 14 секунд)
   Post subject:
Reply with quote

Ага вот так было бы неплохо...
Back to top
View user's profile Send private message Send e-mail
Systemnik
Участник форума



Joined: 28 Dec 2007
Posts: 62
Карма: 0
   поощрить/наказать

Location: Свердловская область, Краснотурьинск

PostPosted: Fri Jan 25, 2008 7:34 pm (спустя 23 часа 53 минуты; написано за 2 минуты 32 секунды)
   Post subject:
Reply with quote

Короче я написал модик интегрирующий консоль с форумом ExBB FM 1.0 Beta
одним словом также в библиотеку консоли (файл Js.js включен дополнительный код "имитирующий" под джава скрипт метод md5()
короче сделана возможность запаролить консоль все тут www.systemnik.tu1.ru/index.php?set=content&mc=2
в файле install.txt я вложил копирайтики... Спасибо Дмитрий за замечательную консоль..
Back to top
View user's profile Send private message Send e-mail
demehov
Заглянувший



Joined: 18 Jan 2006
Posts: 9
Карма: 0
   поощрить/наказать


PostPosted: Thu Feb 07, 2008 11:48 am (спустя 12 дней 16 часов 13 минут; написано за 50 секунд)
   Post subject:
Reply with quote

А можно этот отладочный модуль под PHP5 переделать?
Выдает ошибки:
MyError: Non-static method Debug_HackerConsole_Main::out() cannot be called statically in y:\home\ieve.nti\www\_create_pro\index.php on line 20
Back to top
View user's profile Send private message
seamore
Заглянувший



Joined: 18 Jun 2008
Posts: 1
Карма: 0
   поощрить/наказать

Location: Воронеж

PostPosted: Wed Jun 18, 2008 4:05 pm (спустя 4 месяца 11 дней 4 часа 17 минут; написано за 8 минут 28 секунд)
   Post subject:
Reply with quote

Идея и реализация консоли радовали несказанно, пока не начал использовать Ajax в варианте SAJAX. Вот тут и сел на мель. Возможно я туп. Но если все таки возможно - как заставить консоль ловить отладочную информацию из ajax- ответов?
Подробнее о логике работы приложения: Версия PHP 4.2 PHP-файл представляющий html разметку, плюс собственно php-функционал в начале файла - подключение нужных модулей, создание нужных объектов и т.п. Потом регистрация ajax-функций в sajax_export. В общих чертах - это обработка заказов клиента в интернет-магазине. И вот как к этому правильно подключить консоль? Если создавать ее с TRUE в ее конструкторе, она выведет только то, что пытался для тестов вывести непосредственно при создании консоли. С огромным нетерпением жду - просветите!
Back to top
View user's profile Send private message Send e-mail
Александр Курило
Заглянувший



Joined: 05 Jun 2007
Posts: 16
Карма: 0
   поощрить/наказать

Location: г. Минск

PostPosted: Sun Sep 21, 2008 7:05 pm (спустя 3 месяца 3 дня 2 часа 59 минут; написано за 4 минуты 20 секунд)
   Post subject:
Reply with quote

Есть проблемы при работе консоли в операх 9.6+, а именно что-то не так с комбинацией Ctrl+~.
Попробовал подебажить:
Code (JavaScript): скопировать код в буфер обмена
altKey: false
bubbles: true
cancelBubble: false
cancelable: true
ctrlKey: true
currentTarget: [object HTMLDocument]
eventPhase: 3
keyCode: 17
metaKey: false
shiftKey: false
srcElement: [object HTMLBodyElement]
target: [object HTMLBodyElement]
timeStamp: 0
type: keydown
which: 17
preventDefault: function preventDefault() { [native code] }
stopPropagation: function stopPropagation() { [native code] }
initEvent: function initEvent() { [native code] }

altKey: false
bubbles: true
cancelBubble: false
cancelable: true
ctrlKey: true
currentTarget: [object HTMLDocument]
eventPhase: 3
keyCode: 0
metaKey: false
shiftKey: false
srcElement: [object HTMLBodyElement]
target: [object HTMLBodyElement]
timeStamp: 0
type: keydown
which: 0
preventDefault: function preventDefault() { [native code] }
stopPropagation: function stopPropagation() { [native code] }
initEvent: function initEvent() { [native code] }
У тильды, по-видимому, кейкод — ноль (-: Проблему наблюдал только с этим сочетанием. Например, Shift+~ работает правильно:
Code (JavaScript): скопировать код в буфер обмена
altKey: false
bubbles: true
cancelBubble: false
cancelable: true
ctrlKey: false
currentTarget: [object HTMLDocument]
eventPhase: 3
keyCode: 16
metaKey: false
shiftKey: true
srcElement: [object HTMLBodyElement]
target: [object HTMLBodyElement]
timeStamp: 0
type: keydown
which: 16
preventDefault: function preventDefault() { [native code] }
stopPropagation: function stopPropagation() { [native code] }
initEvent: function initEvent() { [native code] }

altKey: false
bubbles: true
cancelBubble: false
cancelable: true
ctrlKey: false
currentTarget: [object HTMLDocument]
eventPhase: 3
keyCode: 192
metaKey: false
shiftKey: true
srcElement: [object HTMLBodyElement]
target: [object HTMLBodyElement]
timeStamp: 0
type: keydown
which: 192
preventDefault: function preventDefault() { [native code] }
stopPropagation: function stopPropagation() { [native code] }
initEvent: function initEvent() { [native code] }
Равно как и, например, Ctrl+Enter:
Code (JavaScript): скопировать код в буфер обмена
altKey: false
bubbles: true
cancelBubble: false
cancelable: true
ctrlKey: true
currentTarget: [object HTMLDocument]
eventPhase: 3
keyCode: 17
metaKey: false
shiftKey: false
srcElement: [object HTMLBodyElement]
target: [object HTMLBodyElement]
timeStamp: 0
type: keydown
which: 17
preventDefault: function preventDefault() { [native code] }
stopPropagation: function stopPropagation() { [native code] }
initEvent: function initEvent() { [native code] }

altKey: false
bubbles: true
cancelBubble: false
cancelable: true
ctrlKey: true
currentTarget: [object HTMLDocument]
eventPhase: 3
keyCode: 13
metaKey: false
shiftKey: false
srcElement: [object HTMLBodyElement]
target: [object HTMLBodyElement]
timeStamp: 0
type: keydown
which: 13
preventDefault: function preventDefault() { [native code] }
stopPropagation: function stopPropagation() { [native code] }
initEvent: function initEvent() { [native code] }
Есть предложение. Может, стоит использовать access keys?
P.S.: в багтрекер оперы написал.

up: актуально только для *nix qt4-билдов.
Back to top
View user's profile Send private message
Андрей Х
Заглянувший



Joined: 23 Nov 2008
Posts: 1
Карма: 0
   поощрить/наказать


PostPosted: Sun Nov 23, 2008 10:49 pm (спустя 2 месяца 2 дня 3 часа 43 минуты; написано за 1 минуту 49 секунд)
   Post subject:
Reply with quote

Обнаружил ошибку в скрипте:
Quote:
Non-static method Debug_HackerConsole_Main::expandTabs_callback() cannot be called statically, assuming $this from compatible context Debug_HackerConsole_Main at Debug\HackerConsole\Main.php line 212
Использую PHP версии 5.2.4.
В оригинале написано так:
Code (php): скопировать код в буфер обмена
$text = preg_replace_callback (www.php.net/preg_replace_callback)('/^([^\t\r\n]*)\t(\t*)/m', array (www.php.net/array)('Debug_HackerConsole_Main', 'expandTabs_callback'), $text);
Исправление ошибки:
Code (php): скопировать код в буфер обмена
$text = preg_replace_callback (www.php.net/preg_replace_callback)('/^([^\t\r\n]*)\t(\t*)/m', array (www.php.net/array)(&$this, 'expandTabs_callback'), $text);
Back to top
View user's profile Send private message
Военный
Заглянувший



Joined: 20 Feb 2008
Posts: 13
Карма: -1
   поощрить/наказать


PostPosted: Thu Dec 11, 2008 2:13 pm (спустя 17 дней 15 часов 24 минуты; написано за 1 минуту 52 секунды)
   Post subject: Перехват ответов Ajax
Reply with quote

Начал использовать консоль - огромное спасибо.
Вот только не совсем понятно, как пользоваться консолью при перехвате ajax ответов (использую jquery )
Не могли бы вы (кто-нибудь) намекнуть как это делается ?
Back to top
View user's profile Send private message
Guest






Карма: 388
   поощрить/наказать


PostPosted: Mon Dec 15, 2008 6:54 pm (спустя 4 дня 4 часа 41 минуту; написано за 32 секунды)
   Post subject:
Reply with quote

Всем спасибо - разобрался сам :)
Back to top
Ivan1986
Участник форума
Warnings: 2


Joined: 09 Oct 2007
Posts: 807
Карма: 38
   поощрить/наказать


PostPosted: Fri Jan 29, 2010 5:24 pm (спустя 1 год 1 месяц 13 дней 22 часа 30 минут; написано за 1 минуту 43 секунды)
   Post subject:
Reply with quote

Обнаружил ошибку в функции debug_backtrace_smart - если входить в игнорируемый класс с помощью __call или call_user_func то теряется функция и выводится следующая.
Code (php): скопировать код в буфер обмена
===================================================================                 
--- lib/DbSimple/Generic.php
+++ lib/DbSimple/Generic.php
@@ -1312,6 +1312,7 @@                                                               
                                $t['over_function'] = $trace[$i+1]['function'];     
                                $t = $t + $trace[$i+1];                             
                                $trace[$i+1] = null; // skip call_user_func on next iteration
+                               $next = isset (www.php.net/isset)($trace[$i+2])? $trace[$i+2] : null; // Correct Next frame.
                        }                                                                               
                                                                                                       
                        // Skip myself frame.
 
Аналогичная функция в симпле, где и обнаружил.
Back to top
View user's profile Send private message Send e-mail
Display posts from previous:   
Post new topic   Reply to topic All times are GMT + 3 Hours
Goto page Previous  1, 2, 3, 4
Page 4 of 4    Email to a Friend.
Post a reply
Username
Subject
Господа спамеры и оптимизаторы!

Вы можете даже и не пытаться вставлять в текст поста ссылки - они все равно автоматически удаляются (вернее, тэги <a> заменяются на тэги <u>).

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

Disable BBCode in this post
Disable Smilies in this post
    HTML is OFF
BBCode is ON
Smilies are ON
You cannot post new topics in this forum. You can reply to topics in this forum. You cannot edit your posts in this forum. You cannot delete your posts in this forum. You cannot vote in polls in this forum. You cannot attach files in this forum. You can download files in this forum.
XML