Как же правильно отлаживать лисп?
| Правила | Регистрация | Пользователи | Поиск | Сообщения за день | Все разделы прочитаны |  Справка по форуму | Файлообменник |

Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > LISP > Как же правильно отлаживать лисп?

Как же правильно отлаживать лисп?

Ответ
Поиск в этой теме
Непрочитано 16.09.2009, 15:42 #1
Как же правильно отлаживать лисп?
Serge_BN
 
инженер
 
Оренбург
Регистрация: 18.04.2007
Сообщений: 71

Прочитал help, поискал на форуме по словам "отладка" "отладчик". Ничего такого особенного не нашел. Впечатление такое, что ни у кого не возникает вопросов по отладке лиспа.
Но у меня такой вопрос есть.
1. Как вообще включить отладку по шагам?
У меня почти всегда команды выполнения по шагам с заходом и без захода не доступны. В некоторых, очень редких случаях эта кнопка доступна, но в основном она не доступна. Почему???? Что я делаю не так?? Понятно, что никто не видит как я работаю. Но все-таки, наверное что-то я делаю не так. Что???
2. Я устанавливаю точку останова. Загружаю лисп в АКАД, вызываю команду. И никакого останова не происходит. Почему???
3. Добавляю в watch переменную. Все переменные, независимо от того что они содержат, watch показывает nil. Хоть тресни, хоть отправляю их на консоль, все-равно nil.
Это почему так???
Я работал во многих IDE, в том числе в emacs, и вообще без всяких IDE просто под командой db в Unix (Linux) и никогда не было никаких проблем. Здесь просто какая-то совершенно тупая ситуация.
Помогите, плз. Руки опускаются. Я не профессионал в лиспе, но мне нужно сделать то, что необходимо и из-за какой-то IDE я не могу это сделать. Просто жуть!

Последний раз редактировалось Serge_BN, 16.09.2009 в 15:48.
Просмотров: 3330
 
Непрочитано 16.09.2009, 16:28
#2
E-degtyarev

Помогаю, кому делать нечего.
 
Регистрация: 27.03.2009
Русская деревня
Сообщений: 394


Запускай программу не из командной строки а из редактора Visual LISP из окна консоли,
временно заменив (defun C:...() ... на (defun ....()....
Отладка программ неплохо изложена в книге Кудрявцева Е.М. "AutoLISP Основы программирования в AutoCAD 2000"

Последний раз редактировалось E-degtyarev, 16.09.2009 в 16:41.
E-degtyarev вне форума  
 
Непрочитано 16.09.2009, 16:57
#3
Victor


 
Регистрация: 14.06.2009
Бат-Ям
Сообщений: 295


Раньше не пользовался. Решил посмтреть как же это работает.
Птичка на Stop Once. Запускаем прграмму. Появляется окно Source#1. Жмём F8. Смотрим Watch.
Victor вне форума  
 
Непрочитано 16.09.2009, 17:09
#4
Дима_

Продуман
 
Регистрация: 22.02.2007
Питер
Сообщений: 2,839


Цитата:
Сообщение от Serge_BN Посмотреть сообщение
Прочитал help, поискал на форуме по словам "отладка" "отладчик". Ничего такого особенного не нашел. Впечатление такое, что ни у кого не возникает вопросов по отладке лиспа...
Когда я программировал на ассемблере под DOS - там без отладчика было действительно никуда, причем даже нескольких (я использовал TD и SoftIce в разных случаях один удобней другого), при программировании на "интерпритаторных" языках высого уровня, либо скриптах я его вобще не использую - не утверждаю что это правильно - но ихмо зачем на компиляторных языках он нужен? В LISP? В SQL? - любую команду (группу) можно набрать в консоли и сразу посмотреть что произойдет, используемые ей же переменные можно предварительно настроить или включить alert для просмотра. Там же нет ни ссылок на глобальные таблицы, ни "прыгающего" стека, ни данных одновременно используемых несколькими процедурами (по последнему с оговорками - кто программировал на более низком уровне поймет про что я). Единственное что осталось актуальным это всевозможные подсветки синтаксиса, скобок (для лиспа), автопереносы, выравневатели строк, remark'еры и пр. А отладчик - по мне лишний.
__________________
Когда в руках молоток все вокруг кажется гвоздями.
Дима_ вне форума  
 
Непрочитано 16.09.2009, 17:15
#5
Sleekka

-
 
Регистрация: 24.07.2005
Москва
Сообщений: 1,335


Имхо не нужны никакие отладчики, юзаю только princ и prin1
Sleekka вне форума  
 
Непрочитано 16.09.2009, 18:20
#6
Кулик Алексей aka kpblc
Moderator

LISP, C# (ACAD 200[9,12,13,14])
 
Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,411


http://autolisp.ru/2009/09/12/vlide-misc-02/#more-34 не поможет?
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 16.09.2009, 18:57
#7
Pum-purum

PHP-разработчик
 
Регистрация: 12.05.2008
Ижевск
Сообщений: 1,166


Ух ты, у тебя новый сайт, Алексей?
Pum-purum вне форума  
 
Непрочитано 16.09.2009, 21:10
#8
Кулик Алексей aka kpblc
Moderator

LISP, C# (ACAD 200[9,12,13,14])
 
Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,411


Offtop: Можно и так сказать Это помимо блога
Только, блин, времени все меньше и меньше
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.

Последний раз редактировалось Кулик Алексей aka kpblc, 16.09.2009 в 21:23.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 17.09.2009, 06:35
#9
ShaggyDoc

Thượng Tá Quân Đội Nhân Dân Việt Nam
 
Регистрация: 14.03.2005
44d32'44"С, 33d26'51"В
Сообщений: 13,372


Цитата:
Я устанавливаю точку останова. Загружаю лисп в АКАД, вызываю команду. И никакого останова не происходит. Почему???
Потому, что "команда" выполняется в AutoCAD, а не в IDE. Как уже написали, выполнять надо именно из IDE - там разные способы есть.

Кроме того, зависит от кода. В LISP код написать можно вообще без присваивания значений именам переменных. Соответственно их и не отследить будет. Возможно, на период отладки код придется "разоптимизировать".

Вообще-то надо понимать, что в VisualLISP IDE "ненастоящая", жалкое подобие настоящих сред разработки, особенно в части отладки, да ещё пошаговой. Редактор исходников, работающий в связке с AutoCAD - неплохой.

Для отладки действительно эффективнее использовать print с выводом значений. Возможно - по условию включенного режима отладки. Плюс "отправка" в AutoCAD выделенного фрагмента и "отправка" имени переменной для просмотра значения.

Цитата:
Отладка программ неплохо изложена в книге Кудрявцева Е.М. "AutoLISP Основы программирования в AutoCAD 2000"
Описание IDE может и изложено - это самое простое, есть и в справке и в любой книге. Но вот изучать программирование на LISP по книгам этого автора категорически не рекомендую - там учат как не надо программировать.


Цитата:
Только, блин, времени все меньше и меньше
Молодца, Алексей! Начало хорошее. Выбираешь правильные темы. Желаю успехов, а главное - чтобы сил хватило.
ShaggyDoc вне форума  
 
Автор темы   Непрочитано 17.09.2009, 12:04
#10
Serge_BN

инженер
 
Регистрация: 18.04.2007
Оренбург
Сообщений: 71


Спасибо всем. С некоторыми вещами я разобрался, но что-то еще не понятно.
Вот ShaggyDoc пришет
Цитата:
...выполнять надо именно из IDE - там разные способы есть
Пробую из IDE, но опять не всегда получается. Соответственно и вопрос. Какие это способы? Что-то я не улавливаю.
И далее
Цитата:
Возможно - по условию включенного режима отладки. Плюс "отправка" в AutoCAD выделенного фрагмента и "отправка" имени переменной для просмотра значения.
Вот это как?
Рекомендуемой книги Кудрявцева у меня нет, так что кроме help читать по данному вопросу нечего.
Serge_BN вне форума  
 
Непрочитано 17.09.2009, 12:25
#11
Дима_

Продуман
 
Регистрация: 22.02.2007
Питер
Сообщений: 2,839


Выделяешь любой фрагмент начиная с открытой скобки и заканчивая там где она закрываеться ctrl+c, и ctrl+v в коммандной строке - смотриш что она возращает (если "сегмент" программы использует переменные - их предварительно настраиваешь).
__________________
Когда в руках молоток все вокруг кажется гвоздями.
Дима_ вне форума  
 
Автор темы   Непрочитано 17.09.2009, 13:59
#12
Serge_BN

инженер
 
Регистрация: 18.04.2007
Оренбург
Сообщений: 71


Цитата:
Выделяешь любой фрагмент начиная с открытой скобки и заканчивая там где она закрываеться ctrl+c, и ctrl+v в коммандной строке - смотриш что она возращает (если "сегмент" программы использует переменные - их предварительно настраиваешь).
В "командной строке" - это в командной строке AutoCADа? Нафига тогда консоль? И что значит "предварительно настраиваешь переменные". Это надо выполнить (setq ...) или как-то по другому их настраивать?
Как можно такими средствами создавать какие-то более менее большие программы? Или подразумевается, что одна программа должна помещаться на одном экране и у нее должно быть не более одного параметра?
Serge_BN вне форума  
 
Непрочитано 17.09.2009, 14:03
#13
Кулик Алексей aka kpblc
Moderator

LISP, C# (ACAD 200[9,12,13,14])
 
Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,411


Offtop: Может, сделать действительно видео по отладке?
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Автор темы   Непрочитано 17.09.2009, 14:18
#14
Serge_BN

инженер
 
Регистрация: 18.04.2007
Оренбург
Сообщений: 71


Да, плз .
По шагам с вариантами и с подробными комментариями, в которых указано что делается и почему это делается так.
Serge_BN вне форума  
 
Непрочитано 17.09.2009, 15:05
#15
Кулик Алексей aka kpblc
Moderator

LISP, C# (ACAD 200[9,12,13,14])
 
Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,411


Не раньше вечера пятницы, боюсь. Offtop: Напиши мне в почту или ЛС - напомнить. Заодно и оговорим код, на базе которого будем ставить эксперименты. Ок?
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Автор темы   Непрочитано 17.09.2009, 15:15
#16
Serge_BN

инженер
 
Регистрация: 18.04.2007
Оренбург
Сообщений: 71


ОК!
Serge_BN вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > LISP > Как же правильно отлаживать лисп?

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как правильно менять значение аннотации в Solid Works? DonVik Программирование 4 03.06.2010 14:44
Как правильно оформить изменения в уже согласованном проекте перепланировки? cache Прочее. Архитектура и строительство 4 20.04.2009 22:03
Как правильно принять расчетную схему стропил и как они работают NUXELS Конструкции зданий и сооружений 8 27.02.2009 14:31
как правильно изобразить рифление Р ГОСТ21474-75 + еще вопросы Aradel AutoCAD 3 22.02.2009 08:19