Форум XBMC и Kodi. Помощь, поддержка, обсуждение, плагины.
   

Вернуться   Форум XBMC и Kodi. Помощь, поддержка, обсуждение, плагины. > Разработка > Поддержка локальной разработки модулей

Ответ
 
Опции темы Опции просмотра
Старый 06.09.2016, 23:29   #1
Roman_V_M
Senior Member
 
Аватар для Roman_V_M
 
Регистрация: 12.06.2011
Адрес: Киев
Сообщений: 1,933
По умолчанию script.module.remote-pdb: удаленный консольный отладчик для плагинов

Специально для хардкорных питонщиков сделал модификацию пакета remote-pdb для использования в Коди. Если вкратце, то это удаленный telnet-интерфейс ко встроенному в Питон консольному отладчику PDB. Подробности на странице проекта на ГитХабе: https://github.com/romanvm/kodi.remote-pdb

Плагин позволяет выполнять удаленную отладку плагинов непосредственно в Коди, используя telnet-подключение. Под Виндой рекомендую использовать PuTTY в режиме "Raw".
__________________
Координатор русского перевода Kodi:
https://www.transifex.com/projects/p/kodi-main/
------------------------------
Raspberry PI 2 + LibreELEC 8 (Kodi 17)
Samsung Galaxy Tab A 10.1 + Kodi 17 for Android
------------------------------
Читаем и пополняем Википедию форума: http://xbmc.ru/wiki
------------------------------
На любые личные сообщения, не связанные с переводом Kodi, не отвечаю. Для обсуждений и советов есть форум.
Roman_V_M вне форума   Ответить с цитированием
   
Старый 26.09.2016, 16:01   #2
Roman_V_M
Senior Member
 
Аватар для Roman_V_M
 
Регистрация: 12.06.2011
Адрес: Киев
Сообщений: 1,933
По умолчанию

Решив, что голая консоль - это не слишком удобно, я сделал свой удаленный дебаггер для плагинов с блэкджеком и шлюхами веб-интерфейсом: script.module.web-pdb:



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

Краткая справка по командам PDB:

n - переход к следующей строке без захода во встреченные функции.
s - переход к следующей строке с заходом во встреченные функции (осторожно, можно залезть в дебри сторонних библиотек).
r - быстрый переход к выходу из текущей функции (особенно если зашли не туда по s).
p <obj> - печать значения переменной или выражения Питона.
pp <obj> - печать значения переменной или выражения Питона с удобным форматированием словарей и списков.
b <line number> - установка контрольной точки в указанной сроке.
с - продолжение выполнения до следующей контрольной точки или до конца скрипта, если нет контрольных точек.
q - немедленное завершение отладки с прерыванием работы скрипта.

Подробнее тут: https://docs.python.org/2.7/library/pdb.html
__________________
Координатор русского перевода Kodi:
https://www.transifex.com/projects/p/kodi-main/
------------------------------
Raspberry PI 2 + LibreELEC 8 (Kodi 17)
Samsung Galaxy Tab A 10.1 + Kodi 17 for Android
------------------------------
Читаем и пополняем Википедию форума: http://xbmc.ru/wiki
------------------------------
На любые личные сообщения, не связанные с переводом Kodi, не отвечаю. Для обсуждений и советов есть форум.

Последний раз редактировалось Roman_V_M; 26.09.2016 в 18:20.
Roman_V_M вне форума   Ответить с цитированием
Старый 26.09.2016, 16:55   #3
-=Vd=-
Senior Member
 
Аватар для -=Vd=-
 
Регистрация: 14.02.2012
Адрес: Одесса
Сообщений: 1,689
По умолчанию

Спасибо, с таким подходом можно будет свои скрипты у пользователей отлаживать.
__________________
Media Aggregator (виртуальная медиатека) - http://xbmc.ru/forum/showthread.php?t=10592
Lazy F1 - http://xbmc.ru/forum/showthread.php?t=14300
Сервис TorrSpy (получение метаинформации и создание медиатеки) - http://xbmc.ru/forum/showthread.php?t=23669
-=Vd=- вне форума   Ответить с цитированием
Старый 26.09.2016, 21:25   #4
nightik
Senior Member
 
Регистрация: 12.12.2012
Сообщений: 1,674
По умолчанию

круто!
а можно добавить/изменить клавиши на более привычные для программистов?

F10 - переход к следующей строке без захода во встреченные функции.
F11 - переход к следующей строке с заходом во встреченные функции (осторожно, можно залезть в дебри сторонних библиотек).
Shift+F11 - быстрый переход к выходу из текущей функции (особенно если зашли не туда по s).
F8 (привычно F5, но в браузере это вызовет перезагрузку страницы) - продолжение выполнения до следующей контрольной точки или до конца скрипта, если нет контрольных точек.
nightik вне форума   Ответить с цитированием
Старый 26.09.2016, 22:55   #5
Roman_V_M
Senior Member
 
Аватар для Roman_V_M
 
Регистрация: 12.06.2011
Адрес: Киев
Сообщений: 1,933
По умолчанию

Цитата:
Сообщение от nightik Посмотреть сообщение
круто!
а можно добавить/изменить клавиши на более привычные для программистов?

F10 - переход к следующей строке без захода во встреченные функции.
F11 - переход к следующей строке с заходом во встреченные функции (осторожно, можно залезть в дебри сторонних библиотек).
Shift+F11 - быстрый переход к выходу из текущей функции (особенно если зашли не туда по s).
F8 (привычно F5, но в браузере это вызовет перезагрузку страницы) - продолжение выполнения до следующей контрольной точки или до конца скрипта, если нет контрольных точек.
Текстовые команды - стандартные от PDB, поэтому менять их, естественно, я не буду. Но повесить их на горячие клавиши силами жабаскрипта можно без проблем.

UPD: В браузерах F10 - меню, а F11 - фуллскрин. А что, если сделать то же, но с нажатым контролом? При таком варианте вроде конфликтов нет.
__________________
Координатор русского перевода Kodi:
https://www.transifex.com/projects/p/kodi-main/
------------------------------
Raspberry PI 2 + LibreELEC 8 (Kodi 17)
Samsung Galaxy Tab A 10.1 + Kodi 17 for Android
------------------------------
Читаем и пополняем Википедию форума: http://xbmc.ru/wiki
------------------------------
На любые личные сообщения, не связанные с переводом Kodi, не отвечаю. Для обсуждений и советов есть форум.

Последний раз редактировалось Roman_V_M; 26.09.2016 в 23:23.
Roman_V_M вне форума   Ответить с цитированием
Старый 27.09.2016, 11:54   #6
nightik
Senior Member
 
Регистрация: 12.12.2012
Сообщений: 1,674
По умолчанию

Цитата:
Сообщение от Roman_V_M Посмотреть сообщение
Текстовые команды - стандартные от PDB, поэтому менять их, естественно, я не буду. Но повесить их на горячие клавиши силами жабаскрипта можно без проблем.
и тут пайтон "выделился"

Цитата:
Сообщение от Roman_V_M Посмотреть сообщение
UPD: В браузерах F10 - меню, а F11 - фуллскрин. А что, если сделать то же, но с нажатым контролом? При таком варианте вроде конфликтов нет.
всё просто как в аптеке:
PHP код:
document["onkeydown"] = function(e) {
    
// do some code
    
return false// suppress default actions

nightik вне форума   Ответить с цитированием
Старый 27.09.2016, 12:34   #7
Roman_V_M
Senior Member
 
Аватар для Roman_V_M
 
Регистрация: 12.06.2011
Адрес: Киев
Сообщений: 1,933
По умолчанию

Цитата:
Сообщение от nightik Посмотреть сообщение
и тут пайтон "выделился"
Как выделился? Оригинальный PDB работает с голой командной строкой, там горячих клавиш в принципе нет.

Цитата:
всё просто как в аптеке:
PHP код:
document["onkeydown"] = function(e) {
    
// do some code
    
return false// suppress default actions

Спасибо. Я использую JQuery, но принцип понятен.
__________________
Координатор русского перевода Kodi:
https://www.transifex.com/projects/p/kodi-main/
------------------------------
Raspberry PI 2 + LibreELEC 8 (Kodi 17)
Samsung Galaxy Tab A 10.1 + Kodi 17 for Android
------------------------------
Читаем и пополняем Википедию форума: http://xbmc.ru/wiki
------------------------------
На любые личные сообщения, не связанные с переводом Kodi, не отвечаю. Для обсуждений и советов есть форум.
Roman_V_M вне форума   Ответить с цитированием
Старый 29.09.2016, 19:21   #8
HAL9000
Senior Member
 
Аватар для HAL9000
 
Регистрация: 15.03.2012
Сообщений: 1,094
По умолчанию

Цитата:
Сообщение от Roman_V_M Посмотреть сообщение
В браузерах F10 - меню, а F11 - фуллскрин. А что, если сделать то же, но с нажатым контролом? При таком варианте вроде конфликтов нет.
Если есть желание развивать эту приблуду, то можно пойти в сторону Electron. Это тот же Chrome, но завернутый в "аля нативное кроссплатформенное приложение".
Там горячие клавиши уже свои можно приклеивать (вроде...).
Ну и плюс... - выглядеть это будет уже совсем фельдеперстово
__________________
RuTracker: http://xbmc.ru/forum/showthread.php?t=2243
Ruhunt.Pulsar: http://xbmc.ru/forum/showthread.php?t=6759
Last.VK: http://xbmc.ru/forum/showthread.php?t=3709
Lovi.fm: http://xbmc.ru/forum/showthread.php?t=6758
HAL9000 вне форума   Ответить с цитированием
Старый 29.09.2016, 23:08   #9
Roman_V_M
Senior Member
 
Аватар для Roman_V_M
 
Регистрация: 12.06.2011
Адрес: Киев
Сообщений: 1,933
По умолчанию

Цитата:
Сообщение от HAL9000 Посмотреть сообщение
Если есть желание развивать эту приблуду, то можно пойти в сторону Electron. Это тот же Chrome, но завернутый в "аля нативное кроссплатформенное приложение".
Там горячие клавиши уже свои можно приклеивать (вроде...).
Ну и плюс... - выглядеть это будет уже совсем фельдеперстово
Ну и как приблуда на основе Node.js поможет сделать дебаггер для Питона? Тем более, что навыки жабаскрипта у меня в зачаточном состоянии. Ув. nightik всё правильно подсказал, я забыл false возвращать из коллбэков.
Версия 1.2 будет с улучшенным интерфейсом. Собственно, он уже готов, сейчас я воюю с правильной инициализацией и отсоединением дебаггера от кода. В Коди это усложняется тем, что тамошний Питон не поддерживает демон-потоки (интересно, где они накосячили), и сервер, обслуживающий веб-интерфейс, нужно останавливать принудительно.
__________________
Координатор русского перевода Kodi:
https://www.transifex.com/projects/p/kodi-main/
------------------------------
Raspberry PI 2 + LibreELEC 8 (Kodi 17)
Samsung Galaxy Tab A 10.1 + Kodi 17 for Android
------------------------------
Читаем и пополняем Википедию форума: http://xbmc.ru/wiki
------------------------------
На любые личные сообщения, не связанные с переводом Kodi, не отвечаю. Для обсуждений и советов есть форум.
Roman_V_M вне форума   Ответить с цитированием
Старый 30.09.2016, 16:45   #10
Roman_V_M
Senior Member
 
Аватар для Roman_V_M
 
Регистрация: 12.06.2011
Адрес: Киев
Сообщений: 1,933
По умолчанию

Если кому интересно, интерфейс сейчас выглядит так. Критика/пожелания приветствуются
Миниатюры
Нажмите на изображение для увеличения
Название: screenshot.png
Просмотров: 307
Размер:	123.5 Кб
ID:	5859   Нажмите на изображение для увеличения
Название: screenshot1.png
Просмотров: 302
Размер:	60.1 Кб
ID:	5860  
__________________
Координатор русского перевода Kodi:
https://www.transifex.com/projects/p/kodi-main/
------------------------------
Raspberry PI 2 + LibreELEC 8 (Kodi 17)
Samsung Galaxy Tab A 10.1 + Kodi 17 for Android
------------------------------
Читаем и пополняем Википедию форума: http://xbmc.ru/wiki
------------------------------
На любые личные сообщения, не связанные с переводом Kodi, не отвечаю. Для обсуждений и советов есть форум.
Roman_V_M вне форума   Ответить с цитированием
Ответ
 


Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 
Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
ProxyTV superdet Помощь по плагинам 1953 19.09.2021 13:05
[All] script.module.antizapret - Обход блокировок для плагинов nightik Помощь по плагинам 43 13.11.2020 22:26
NVIDIA: failed to load the NVIDIA kernel module. alexandr-makukhin Поддержка платформы Linux \ Live 17 27.06.2013 17:01
Remote HD и Remote Pro apps для iPhone appleist Поддержка платформы Mac 8 27.02.2012 16:29
Помощь script dUgar Поддержка платформы Linux \ Live 2 04.05.2010 20:53


Текущее время: 02:05. Часовой пояс GMT +3.


Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2023, Jelsoft Enterprises Ltd.