Перейти к содержимому

Поиск по сайту

Результаты поиска по тегам 'Debug'.

  • Поиск по тегам

    Введите теги через запятую.
  • Поиск по автору

Тип публикаций


Блоги

  • Робот Байт
  • Fingercomp's Playground
  • 1Ridav' - блог
  • Totoro Cookies
  • Блог cyber01
  • IncluderWorld
  • KelLiN' - блог
  • Крутой блог
  • eutomatic blog
  • Programist135 Soft
  • Сайт в сети OpenNet
  • PieLand
  • Очумелые ручки
  • Блог недоблоггера
  • В мире Майнкрафт
  • LaineBlog
  • Квантовый блог
  • Блог qwertyMAN'а
  • some blog name
  • Дача Игоря
  • Путешествия Xytabich'а
  • Рецепты программирования
  • Шкодим по крупному
  • 123
  • mineOS и её удивительный мир
  • Поляна говнокода Bumer 32

Форумы

  • Программирование
    • Программы
    • База знаний
    • Разработчикам
    • Вопросы
  • Игровой раздел
    • Игровые серверы
    • Моды и плагины
    • Жалобы
    • Ивенты и конкурсы
    • Файлы
  • Общение
    • Задать вопрос
    • Обратная связь
    • Беседка
    • Шкатулка
  • Технический раздел
    • Корзина

Группы продуктов

Нет результатов для отображения.


Искать результаты в...

Искать результаты, которые...


Дата создания

  • Начать

    Конец


Последнее обновление

  • Начать

    Конец


Фильтр по количеству...

Зарегистрирован

  • Начать

    Конец


Группа


AIM


MSN


Сайт


ICQ


Yahoo


Jabber


Skype


ВКонтакте


Gtalk


Facebook


Twitter


Город


Интересы

Найдено 4 результата

  1. в дебаг карте есть 2 интерестные функции removeItem и insertItem но можно ли определить что лежит в слоту? типо в воронке в 3 слоте 36 камня и можно ли как то считать что в 3 слоту лежит с помощью дебаг карты?
  2. Fingercomp

    Улучшенный debug.debug()

    Сейчас я покажу, как сделать это: На скрине выше — улучшенный debug.debug(). Он умеет: Бегать вверх-вниз по стэку вызовов независимо от того, где запущен. Показывать красивые стэктрейсы. Имитировать динамический скоуп: получать значения локальных переменных, редактировать их, не требуя возни с либой debug. При этом учитывает, на каком уровне в стэке вызовов он находится. Он не умеет: «Шагать» по коду, заходить внутрь функций, проскакивать над ними. Таким образом, это не совсем дебаггер. Но он может показать состояние всех доступных переменных. Чтобы заюзать в коде, нужно сделать так: require("dbg")() Впрочем, если в проге есть какой-то часто вызываемый сегмент, то безусловно падать в мини-дебаггер на каждой итерации очень печально. Поэтому можно задать условие, при котором его запускать. Например: require("dbg")(nonNegative < 0) У нас есть переменная nonNegative, которая семантически всегда неотрицательна. Если ж внезапно попалось что-то меньше нуля, есть смысл попросить программиста проверить, кто (и как) изобрёл свою алгебру. Команды: :bt — показать стэктрейс. :up — прыгнуть на уровень вверх. :down — спуститься на уровень вниз. :frame N — перейти на N-ый уровень. Выйти из интерпретатора можно, нажав Ctrl-D или Ctrl-C. Код: https://gist.github.com/Fingercomp/58388304f45bf6b2b8108e3b7a555315 (задумывался одноразовым, качество соответствующее). В обычной Lua надо просто кинуть содержимое куда-нибудь, откуда require тащит файлы. Чтобы это работало в OpenComputers, придётся пропатчить содержимое мода: Открываем jar-файл мода в архиваторе. Идём в /assets/opencomputers/lua. Открываем файл machine.lua и в районе 971 строки делаем как-то так: Сохраняемся и выходим. Если всё сделано правильно, в OpenComputers теперь доступна полная либа debug. Остаётся закинуть код мини-дебаггера, например, в /home/lib, дальше используем как обычно. Очевидно, что на серверах такое делать не надо. Ну, совсем не надо. Полной либой debug легко выудить нативную load. А это уже уязвимость. Но в сингле вещь незаменимая. Цитирую отзыв пользователя, пожелавшего остаться анонимным: Успехов вам в дезинсекции кода.
  3. Fingercomp

    Прокачка стектрейса

    Эта беспрецедентно короткая запись имеет начало своих ног в запросе @Laine_prikol, как-то спросивший в нашей ирке, можно ли стэктрейс сделать не таким тупым. Меня это заинтересовало, и спустя часик выросла очень короткая программка, которая рисует вот такие стэктрейсы: # 0: C field function yield(...) (defined in [C]) # 1: Lua local function f(f=function: 0x559402b83590, a=42, b=24, vararg test, nil):109 (defined in trace.lua at L108) # 2: Lua local function outer(f=function: 0x5594040b2230, g=function: 0x559402b83590, a=42, b=24, <... (1 arg)>):105 (defined in trace.lua at L103) # 3: Lua function <anon>():113 (defined in trace.lua at L102) Заметили что-то необычное? Наконец-то пишется, какие аргументы имеются у функции, потому что это куда информативнее беглому взгляду, чем описание расположения и строки. Код лежит на гисте: https://gist.github.com/Fingercomp/a688d221356cb371d940b947d0ca90a8. Использованы функции debug.getinfo и debug.getlocal. Аргументы должны писаться даже внутри OC, но уже без значений.
  4. Играя на серверах с OpenComputers, мне часто удавалось нелегально заполучить карту отладки, поэтому для упрощения её использования грех было не написать соответствующую софтинку. Также реализовано использование следующих улучшений: чатбокс, радар, карта эффектов частиц, если таковые имеются. Советую пихать всё в креативный планшет, так как он не требует подзарядки и спокойно вместит все выше перечисленные улучшения... Собсна сам быдлокод на растерзание: https://pastebin.com/8zapX0En и описание его работы: При первом запуске, нужно определить владельца программы кликом по экрану. Овнер может быть только один, поэтому реализована защита от чужаков, если кто либо другой влезет в меню, то его хп слетит на 0, почистится инвентарь и произойдёт кик с сервера. Эту защиту можно отключить в меню настроек убрав USER PROTECT. > Главное меню (MAIN) WORLD - меню работы с миром. PLAYER - меню работы с игроками. WARPS - меню варпов. NOCLIP - хождение через блоки. PEX ADD, PEX REM - добавление и удаление своих прав на сервере (через командный блок). GM1, GM0 - переключатели гейм мода (через командный блок). PARTS - меню работы с картой эффектов частиц (если доступна). CHAT - меню чатбокса (если доступен). CONSOLE COMMAND - ввод команды (выполняется не через runCommand() а через командный блок (если он включён на сервере)). HIDE - шторка, которая спрячет меню от посторонних глаз. ADMS - выводит игроков и расстояние до них, добавленных в чёрный список. Звёздочка - меню настроек программы. MAIN - возврат в главное меню. EXIT - выход. > Меню игрока (PLAYER) INFO - подробная инфа об игроке. TPA - телепорт выбранного игрока по кордам. TPAME - телепорт овнера по кордам. TPAMETO - телепорт овнера к выбранному игроку. FREEZE - "застывание" выбранного игрока. TPAHERE - телепорт игрока к овнеру. TPAPTOP - телепорт игрока к игроку. SETHP - установка здоровья игроку. TELLRAW - можно выводить отформатированное сообщение выбранному игроку. KICK - кик с сервера выбранного игрока. Так выглядит меню выбора игроков (табуляция поддерживается): > Меню работы с миром (WORLD) SETBLOCK - установка блока по кордам (можно также выбрать координаты по отдельному игроку). SETBLOCKS - заполняет куб выбранным блоком, ограниченный двумя точками координат. REMITEM - удаляет предмет из слота хранилища. INSITTEM/INSITEMS - вводит в хранилище предметы (требует строковый айди, например "minecraft:stone"). DAYRAIN - если идёт дождь, убирает его, либо инвертирует время суток. SUMMON - спавнит выбранную сущность по кордам (можно также выбрать координаты по отдельному игроку). NBTS - меню работы с НБТ тегами блоков. SIGNS - меню работы с табличками (для редактирования табличек необходимо стоять в блоке вместе с ней). IMBPOTION - встав на сундук и нажав эту кнопку, в него дропнется зелька с ооочень имбовыми эффектами. SOUNDS - проигрывает выбранный звук по координатам (можно также выбрать координаты по отдельному игроку). > Меню варпов (WARPS) Здесь всё просто: [+] для добавления варпа, клик по названию варпа - телепортация на него, а жмяк по крестику удалит варп. > Хождение через блоки (NOCLIP) Управление - W, A, S, D, SPACE, SHIFT. ENTER - выход. Направление движения на восток (EAST) > Меню чатбокса (CHAT) Сообщение отправляется прямо из этого меню, либо можно ввести следующие команды: rename - новое имя чатбокса. cons - писать в чат от имени сервера. nick - ваш ник как имя чатбокса. cr - краш клиентов в небольшом радиусе частицами smoke, если установлена карта эффектов частиц (чтобы не крашило, нужно выключить частицы дыма в настройках графона). kk/kk2 - кик игроков с сервера в радиусе действия чатбокса (чтобы не кикало, нужно выключить чат в сетевых настройках игры). spam - спам в чат. joke - шутник3000. main - возврат в главное меню. > Спавн частиц картой эффектов частиц (PARTS) Здесь я думаю ничего объяснять не стоит. > Чекадмин (ADMS) Меню чека админов на сервере. Показывает их текущее местоположение и расстояние до овнера программки (чтобы не палиться во время своих злодеяний) EDIT - редактирование чёрного списка. SCAN - сканирует игроков сервера и если находит "креативщика" - добавит его в ЧС. Нажать "A" чтобы обновить... > Настройки (Звёздочка в правом верхнем углу) AUTORUN - запилит скрипт в автозапуск девайса. USER PROTECT - вкл/выкл защиты от чужаков. Y + 100 (TPA) - вкл/выкл подкидывания овнера на 100 блоков вверх при телепортации к игроку (если хочется напасть с воздуха). KEYBINDS - список быстрых клавиш программы: Также написав в локал чат "whereON" при наличии чатбокса и радара - включится радар, оповещающий в чат о находящихся в радиусе 7 блоков игроках. Для выключения радара - написать в чат "whereOFF". Для разовой проверки - написать в чат "who". P.S. Все необходимые переменные (список варпов, чёрный список, настройки) сохраняются в конфиг, поэтому перезапуски программе не страшны) В общем то и усё. Вроде бы охватил все основные фичи скрипта. Спасибо за внимание! Надеюсь кому нибудь пригодится :3
×
×
  • Создать...