OberonCore

Библиотека  Wiki  Форум  BlackBox  Компоненты  Проекты
Текущее время: Вторник, 19 Март, 2024 11:31

Часовой пояс: UTC + 3 часа




Начать новую тему Ответить на тему  [ Сообщений: 12 ] 
Автор Сообщение
 Заголовок сообщения: Отладочный дамп DevDebug
СообщениеДобавлено: Вторник, 29 Апрель, 2014 04:43 
Аватара пользователя

Зарегистрирован: Среда, 29 Март, 2006 12:09
Сообщения: 495
Еще вопрос. Можно ли вызвать окно, которое вызывается при трапе, но так, чтобы после его закрытия можно было продолжить выполнение? Отладочный вывод — это, конечно, хорошо, но иногда бы хотелось и внутренности посмотреть.

Или, быть может, есть возможность вывести сразу всю структуру? Вроде сериализовать запись и в виде строки ее в лог?

(модератор 30.04.2014) выделено из темы viewtopic.php?t=3980 по указанию автора


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Anti-Grain для Ports
СообщениеДобавлено: Вторник, 29 Апрель, 2014 11:56 

Зарегистрирован: Вторник, 25 Апрель, 2006 16:21
Сообщения: 2180
Откуда: Нижний Новгород
Димыч писал(а):
Еще вопрос. Можно ли вызвать окно, которое вызывается при трапе, но так, чтобы после его закрытия можно было продолжить выполнение? Отладочный вывод — это, конечно, хорошо, но иногда бы хотелось и внутренности посмотреть.

Или, быть может, есть возможность вывести сразу всю структуру? Вроде сериализовать запись и в виде строки ее в лог?

Это же пошаговый отладчик получится в одном случае, и логгер в другом :-)


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Anti-Grain для Ports
СообщениеДобавлено: Вторник, 29 Апрель, 2014 12:04 
Аватара пользователя

Зарегистрирован: Среда, 29 Март, 2006 12:09
Сообщения: 495
Ну как бы меня устроило хоть одно, хоть другое :)

Руки дойдут, расковыряю процедуру генерации окошка для трапа, там же это как-то формируется!
Вообще, у одного моего клиента есть свой внутренний язык на основе Окамля, так вот там есть клевая процедурка toString(), которой можно скормить вообще *все*, и она это правильно форматирует и показывает. Никакого пошагового отладчика не надо, блин.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Anti-Grain для Ports
СообщениеДобавлено: Вторник, 29 Апрель, 2014 12:47 
Модератор
Аватара пользователя

Зарегистрирован: Понедельник, 14 Ноябрь, 2005 18:39
Сообщения: 9459
Откуда: Россия, Орёл
Ну, если немного перековырять под себя DevDebug, то можно.

Только нужно понимать, что при навигации по карте памяти показывается состояние из памяти.

Т.е. если Вы открыли окно обзора, а выполнение пошло вперёд - то Вы при переходе по ромбикам в открывшемся окне увидите уже не то состояние, которое было на момент выброса окна.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Anti-Grain для Ports
СообщениеДобавлено: Вторник, 29 Апрель, 2014 12:49 
Аватара пользователя

Зарегистрирован: Среда, 29 Март, 2006 12:09
Сообщения: 495
А заморозить выполнение выбросом возможно? я понимаю, что это попахивает пошаговым отладчиком…


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Anti-Grain для Ports
СообщениеДобавлено: Вторник, 29 Апрель, 2014 17:16 
Модератор
Аватара пользователя

Зарегистрирован: Понедельник, 14 Ноябрь, 2005 18:39
Сообщения: 9459
Откуда: Россия, Орёл
Неа, не получится. Сохранять как-то дамп всей памяти если только в Files.File, а потом написать на основе DevDebug просмотровщик памяти через Files.Reader...


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Anti-Grain для Ports
СообщениеДобавлено: Вторник, 29 Апрель, 2014 17:33 

Зарегистрирован: Вторник, 25 Апрель, 2006 16:21
Сообщения: 2180
Откуда: Нижний Новгород
Можно же "удаленную" отладку сделать. Через другой инстанс ББ то есть. DevRemDebug - вроде бы так модуль зовётся. По слухам, там есть и пошаговая отладка.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Anti-Grain для Ports
СообщениеДобавлено: Вторник, 29 Апрель, 2014 17:34 
Аватара пользователя

Зарегистрирован: Среда, 29 Март, 2006 12:09
Сообщения: 495
Все оказалось ЗНАЧИТЕЛЬНО проще!

Делаем вызов

Код:
DevDebug.ShowHeapObject(SYSTEM.ADR(glyph^), "A");


в нужный момент (здесь "A" — пользовательский заголовок окна, может быть произвольным), и получаем красивое окошко, в котором можно посмотреть потроха переданного объекта в куче.

Вложение:
Комментарий к файлу: Результат вызова DevDebug.ShowHeapObject()
HeapObject1.png
HeapObject1.png [ 96.97 КБ | Просмотров: 8010 ]


Это решает 3/4 моих сложностей с отладкой. Это не просто круто, это мегакруто! :)
Почему-то у меня не получилось посмотреть внутренности массива, но и этого хватает за глаза.

Потрясающе!!!


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Anti-Grain для Ports
СообщениеДобавлено: Вторник, 29 Апрель, 2014 18:01 
Аватара пользователя

Зарегистрирован: Четверг, 08 Октябрь, 2009 15:00
Сообщения: 3774
Димыч, спасибо, что нашел эту крутую штуку!

Напишу админам, чтобы выделили это обсуждение, начиная с viewtopic.php?f=23&t=3980&p=87188#p87177 в отдельную тему. Как думаешь куда лучше?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Anti-Grain для Ports
СообщениеДобавлено: Вторник, 29 Апрель, 2014 18:46 
Аватара пользователя

Зарегистрирован: Среда, 29 Март, 2006 12:09
Сообщения: 495
В вики.
Я думаю, там можно еще пару штучек, полезных для отладки, откопать.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Anti-Grain для Ports
СообщениеДобавлено: Вторник, 29 Апрель, 2014 18:50 
Аватара пользователя

Зарегистрирован: Четверг, 08 Октябрь, 2009 15:00
Сообщения: 3774
Димыч писал(а):
В вики.
Я думаю, там можно еще пару штучек, полезных для отладки, откопать.

Идея хорошая, сделать статью по методам отладки в Блэкбоксе. Например есть еще загадочный ShowHeap. Есть полезная штука еще — профилировщик и т.п.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Отладочный дамп DevDebug
СообщениеДобавлено: Среда, 30 Апрель, 2014 10:59 
Модератор
Аватара пользователя

Зарегистрирован: Среда, 16 Ноябрь, 2005 00:53
Сообщения: 4625
Откуда: Россия, Орёл
http://oberoncore.ru/library/temir_doku ... i_devdebug
viewtopic.php?p=64207#p64207


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 12 ] 

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 3


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

Найти:
Вся информация, размещаемая участниками на конференции (тексты сообщений, вложения и пр.) © 2005-2024, участники конференции «OberonCore», если специально не оговорено иное.
Администрация не несет ответственности за мнения, стиль и достоверность высказываний участников, равно как и за безопасность материалов, предоставляемых участниками во вложениях.
Без разрешения участников и ссылки на конференцию «OberonCore» любое воспроизведение и/или копирование высказываний полностью и/или по частям запрещено.
Powered by phpBB® Forum Software © phpBB Group
Русская поддержка phpBB