Форум программистов, компьютерный форум, киберфорум
Lisp
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.94/34: Рейтинг темы: голосов - 34, средняя оценка - 4.94
7 / 7 / 0
Регистрация: 18.11.2011
Сообщений: 150

Отладка кода с использованием трассировки

09.04.2012, 08:08. Показов 6794. Ответов 6
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Подскажите, что означает отладка кода на Lisp при помощи трассировки?

Заранее спасибо!
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
09.04.2012, 08:08
Ответы с готовыми решениями:

Как сделать таблицу трассировки для кода
как сделать таблицу трассировки для этого кода ?

Какая программа предоставляет возможность трассировки ASP-кода?
собственно сабж.

Корректно ли написан кусок этого кода? И поясните роль трассировки стека в методе printStackTrace ()
Подскажите пожалуйста, корректно ли написан кусок этого кода ? И поясните роль трассировки стека в методе printStackTrace() public void...

6
Эксперт С++
 Аватар для Nameless One
5828 / 3479 / 358
Регистрация: 08.02.2010
Сообщений: 7,448
09.04.2012, 10:06
Трассировка — это отслеживание информации о ходе выполнения программы (например, о вызовах и аргументах функций) в целях ее отладки. В Lisp для этого можно воспользоваться макросом trace. Пример:

Lisp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
(defun fact (n)
  (if (zerop n)
      1
      (* n (fact (1- n)))))
 
CL-USER> (trace fact)
(FACT)
CL-USER> (fact 5)
  0: (FACT 5)
    1: (FACT 4)
      2: (FACT 3)
        3: (FACT 2)
          4: (FACT 1)
            5: (FACT 0)
            5: FACT returned 1
          4: FACT returned 1
        3: FACT returned 2
      2: FACT returned 6
    1: FACT returned 24
  0: FACT returned 120
120
CL-USER>
1
7 / 7 / 0
Регистрация: 18.11.2011
Сообщений: 150
10.04.2012, 21:10  [ТС]
Nameless One, скажите, а непосредственно из кода можно вызывать трассировку?
0
Супер-модератор
Эксперт функциональных языков программированияЭксперт Python
 Аватар для Catstail
38193 / 21126 / 4309
Регистрация: 12.02.2012
Сообщений: 34,732
Записей в блоге: 14
10.04.2012, 22:18
Думаю, да. В нужном месте вызвать trace, и в нужном - untrace.
0
7 / 7 / 0
Регистрация: 18.11.2011
Сообщений: 150
03.05.2012, 22:32  [ТС]
Ещё вопрос по трассировке. Так и не разобрался с компилятором от UfoSoft в плане макроса trace.
Скачал WorkLisp. Подскажите, как в нем добавить трассировку к функции.

Там есть вкладка tracer, но не пойму, как выбрать нужную мне функцию.

Заранее спасибо!
Миниатюры
Отладка кода с использованием трассировки  
0
Супер-модератор
Эксперт функциональных языков программированияЭксперт Python
 Аватар для Catstail
38193 / 21126 / 4309
Регистрация: 12.02.2012
Сообщений: 34,732
Записей в блоге: 14
04.05.2012, 00:13
Похоже, что ты просто не ввел функцию...

Вот как это выглядит у меня в LispWorks:

Lisp
1
2
3
4
5
6
7
8
9
10
11
12
CL-USER 1 > (defun f (x y) (* x x y y))
F
CL-USER 2 > (trace f)
(F)
CL-USER 3 > (f 5 6)
0 F > ...
  >> X : 5
  >> Y : 6
0 F < ...
  << VALUE-0 : 900
900
CL-USER 4 >
Как видишь, проблем нет...
1
Супер-модератор
Эксперт функциональных языков программированияЭксперт Python
 Аватар для Catstail
38193 / 21126 / 4309
Регистрация: 12.02.2012
Сообщений: 34,732
Записей в блоге: 14
05.05.2012, 11:00
Трассировку можно включать и выключать "на лету":

Lisp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
(defun g (x) (* x x x))
 
==> g
 
(defun f (x y)
   (g (+ x y))  ;; этот вызов пройдет незаметно
   (trace g)  
   (g (* x y))  ;; этот будет протрассирован
   (untrace g)
   (g 1)          ;; значение будет возвращено, как результат
)
 
==> f
 
(f 5 6)
 
Вход в функцию g Аргументы: 30
Возврат из функции g Результат: 27000
 
==> 1
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
05.05.2012, 11:00
Помогаю со студенческими работами здесь

Отладка кода
программа для удаления повторяющихся элементов в строке flag::Int-&gt;-&gt;Int flag n=FALSE flag n(x:xs) = if x ==n then TRUE ...

Отладка кода
У меня есть готовый код программы. вот только не могу его отладить. первый раз в жизни столкнулся с delphi. напишите кто может отладить код...

Отладка кода
Помогите пожалуйста с отладкой программы. Код правильный но вываливаются ошибки,разобраться не получается. Заранее благодарен. ...

Отладка кода
Здравствуйте. Я по большей части верстальщик. Но часто приходится что то делать на php. В частности вот реализовал отправку почты из...

Отладка кода
Помогите пожалуйста отладить код. Собрал вот такое #include&lt;iostream&gt; int Check(int a) { int b; for(b = a * a; a &amp;&amp;...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
Переходник USB-CAN-GPIO
Eddy_Em 20.03.2026
Достаточно давно на работе возникла необходимость в переходнике CAN-USB с гальваноразвязкой, оный и был разработан. Однако, все меня терзала совесть, что аж 48-ногий МК используется так тупо: просто. . .
Оттенки серого
Argus19 18.03.2026
Оттенки серого Нашёл в интернете 3 прекрасных модуля: Модуль класса открытия диалога открытия/ сохранения файла на Win32 API; Модуль класса быстрого перекодирования цветного изображения в оттенки. . .
SDL3 для Desktop (MinGW): Рисуем цветные прямоугольники с помощью рисовальщика SDL3 на Си и C++
8Observer8 17.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-rectangles-sdl3-c. zip finish-rectangles-sdl3-cpp. zip
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие. Ссылка в Linux — это запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая ссылка» (hard link),. . .
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора ВВЕДЕНИЕ Выполняя задание на управление насосной группой заполнения резервуара,. . .
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru