OberonCore
https://forum.oberoncore.ru/

Отладочный дамп DevDebug
https://forum.oberoncore.ru/viewtopic.php?f=23&t=5090
Страница 1 из 1

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

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

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

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

Автор:  Alexey Veselovsky [ Вторник, 29 Апрель, 2014 11:56 ]
Заголовок сообщения:  Re: Anti-Grain для Ports

Димыч писал(а):
Еще вопрос. Можно ли вызвать окно, которое вызывается при трапе, но так, чтобы после его закрытия можно было продолжить выполнение? Отладочный вывод — это, конечно, хорошо, но иногда бы хотелось и внутренности посмотреть.

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

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

Автор:  Димыч [ Вторник, 29 Апрель, 2014 12:04 ]
Заголовок сообщения:  Re: Anti-Grain для Ports

Ну как бы меня устроило хоть одно, хоть другое :)

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

Автор:  Илья Ермаков [ Вторник, 29 Апрель, 2014 12:47 ]
Заголовок сообщения:  Re: Anti-Grain для Ports

Ну, если немного перековырять под себя DevDebug, то можно.

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

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

Автор:  Димыч [ Вторник, 29 Апрель, 2014 12:49 ]
Заголовок сообщения:  Re: Anti-Grain для Ports

А заморозить выполнение выбросом возможно? я понимаю, что это попахивает пошаговым отладчиком…

Автор:  Илья Ермаков [ Вторник, 29 Апрель, 2014 17:16 ]
Заголовок сообщения:  Re: Anti-Grain для Ports

Неа, не получится. Сохранять как-то дамп всей памяти если только в Files.File, а потом написать на основе DevDebug просмотровщик памяти через Files.Reader...

Автор:  Alexey Veselovsky [ Вторник, 29 Апрель, 2014 17:33 ]
Заголовок сообщения:  Re: Anti-Grain для Ports

Можно же "удаленную" отладку сделать. Через другой инстанс ББ то есть. DevRemDebug - вроде бы так модуль зовётся. По слухам, там есть и пошаговая отладка.

Автор:  Димыч [ Вторник, 29 Апрель, 2014 17:34 ]
Заголовок сообщения:  Re: Anti-Grain для Ports

Все оказалось ЗНАЧИТЕЛЬНО проще!

Делаем вызов

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


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

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


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

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

Автор:  Иван Денисов [ Вторник, 29 Апрель, 2014 18:01 ]
Заголовок сообщения:  Re: Anti-Grain для Ports

Димыч, спасибо, что нашел эту крутую штуку!

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

Автор:  Димыч [ Вторник, 29 Апрель, 2014 18:46 ]
Заголовок сообщения:  Re: Anti-Grain для Ports

В вики.
Я думаю, там можно еще пару штучек, полезных для отладки, откопать.

Автор:  Иван Денисов [ Вторник, 29 Апрель, 2014 18:50 ]
Заголовок сообщения:  Re: Anti-Grain для Ports

Димыч писал(а):
В вики.
Я думаю, там можно еще пару штучек, полезных для отладки, откопать.

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

Автор:  Евгений Темиргалеев [ Среда, 30 Апрель, 2014 10:59 ]
Заголовок сообщения:  Re: Отладочный дамп DevDebug

http://oberoncore.ru/library/temir_doku ... i_devdebug
viewtopic.php?p=64207#p64207

Страница 1 из 1 Часовой пояс: UTC + 3 часа
Powered by phpBB® Forum Software © phpBB Group
https://www.phpbb.com/