Speccy - наш выбор!

Speccy - наш выбор! (http://zx-pk.ru/index.php)
-   Программирование (http://zx-pk.ru/forumdisplay.php?f=14)
-   -   Breakpoints в связке Sjasmplus+UnrealSpeccy (http://zx-pk.ru/showthread.php?t=9361)

Kurles 19th January 2009 03:23

Breakpoints в связке Sjasmplus+UnrealSpeccy
 
Практически каждому кодеру, использующему связку sjasmplus + unrealspeccy приходться отлаживать свои программы, используя дебагер унрила и .sna снапшоты. Вроде все хорошо - снапшот грузиться, в мониторе метки показываются - ляпота. Ан нет, при загрузке снапшота нельзя ставить брикпоинты, и что бы начать собственно отладку приходится в самой программе вместо брикпоинта писать di:halt, после чего в ручную выходить в отладчик, что не очень удобно. Посему посетила идея - а почему бы не придумать новый формат, который будет сразу хранить в себе и аналог sna, и метки, и брикпоинты, вплодь до условных по стандарту унрила? Хотелось бы услышать мнения народа по этому поводу, особенно Aprisobal'а и DeathSoft'а, как отвечающих за вышеназваные проекты. Для себя ужё сделал половинчатое решение - вместе с user.l унрил стал грузить user.bpl, содержащий адреса брикпоинтов в хексе, если при запуске указать ключик -b. Ну и в sjasm добавил пару диерктив - bplist - имя файла с адресами брикпоинтов и setbp expr - собственно что бы указывать, какие именно адреса выписывать. Если кому надо - могу поделиться.

Shadow Maker 19th January 2009 09:56

Конечно надо, делись. Сам вчера об этом думал :)

Aprisobal 19th January 2009 18:39

Отличная идея, ждем исходников с вышеназванными изменениями.

Kurles 19th January 2009 19:59

Quote:

Originally Posted by Shadow Maker (Post 177781)
Конечно надо, делись. Сам вчера об этом думал :)

Связка sjsamplus + unrealspeccy и пример использования новых фич :)
http://karat-scales.ru/sjasm_unreal.zip

Добавлено через 28 минут
Quote:

Originally Posted by Aprisobal (Post 177944)
Отличная идея, ждем исходников с вышеназванными изменениями.

Отослано. Только это какое-то недорешение, хотелось бы с комьюнити (слово то какое :) ) таки формат полновесного дебаг-файла разработать, и его уже в sjasm'e поддержать.

Shadow Maker 22nd January 2009 16:41

Вообще мне кажется это надо бы поддержать не в виде файлов, а в виде брейк-команд в компиляторе. А то это реально какая-то жесть так описывать.

Kurles 22nd January 2009 18:29

Quote:

Originally Posted by Shadow Maker (Post 178693)
Вообще мне кажется это надо бы поддержать не в виде файлов, а в виде брейк-команд в компиляторе. А то это реально какая-то жесть так описывать.

В смысле брейк-команд, что-то я немножко не догнал :(

Shadow Maker 22nd January 2009 23:11

Ну в смысле чтобы мона было в любом месте программы написать ключевое слово breakpoint к примеру и sjasm автоматом сгенерил адрес этого места в user.bpl . А то как-то не айс каждый раз менять их руками при смещении адреса к примеру.

breeze 23rd January 2009 00:40

отличная идея! только предлагаю ключевым словом сделать - debug

Shadow Maker 23rd January 2009 00:47

Ну я ж говорю к примеру. Так-то я предлагаю brk или break :)

Kurles 23rd January 2009 01:57

Quote:

Originally Posted by Shadow Maker (Post 178788)
Ну в смысле чтобы мона было в любом месте программы написать ключевое слово breakpoint к примеру и sjasm автоматом сгенерил адрес этого места в user.bpl . А то как-то не айс каждый раз менять их руками при смещении адреса к примеру.

Quote:

Originally Posted by breeze (Post 178806)
отличная идея! только предлагаю ключевым словом сделать - debug

Стоп. Архив внимательно смотели? Там же экзампл есть, и если к нему немного присмотреться, то можно найти 2 новые директивы для sjasm'а - bplist - по аналогии с labelslist, только файл для брикпоинтов указывается, и setbp expr - выписать в файл с точками останова выражение expr, то бишь пиши в любом месте setbp $ и будет тебе счастье. Ну ещё длинный алиас для setbp есть - setbreakpoint. Тока что то мне подсказывает, что им мало кто будет пользоваться ;)


All times are GMT +4. The time now is 21:03.

Powered by vBulletin® Version 3.8.3
Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.