Step Over Halt и необновляемый labelslist

Bugs (reports, fixes, etc.)

Postby deathsoft » 01 Apr 2019, 18:23

lvd wrote:потом оказывается что они копирасты и проверять на кряканом софте им западло.

Это и не требуется, им будет дан минимальный пример с исходником, на котором все будет проявляться.
User avatar
deathsoft
 
Posts: 4705
Joined: 07 Apr 2007, 00:58
Group: Registered users

Postby lvd » 01 Apr 2019, 18:48

Ну я к тому, что теперь и вы поразвлекайтесь тоже.
F̞͖̭̿̔ͯu̐̅cͬ̑ͩk̨̤̳͇̮̭̪̠̽̿̓̆ͭͩ ̷̩̰͎̩͓̘̾̀ͬ̊ͭ͛ͅda̝̺͙̬͎̝̾͟ ̰̜̝̯͉̯̖̓̎́ͨ̽ͫ͟f̟͇̭̀ͬͨͭ̐̚u̹̼̹̗̞͑̔͂͐̚cͭ̅̊̆̒̆ǩ̝̩̯́ͥ̔̍̑ḭ͓͍̳̬ͦ̽͂n͍͎͈̈̅ͩͬ ̊ͫ̂̾̑̈́f̲͚͉͓͗̋́ͧͦ̅ȗ͇̲̻͈̲̅̎͗͒ͭ͡c̬̟̠̹̯̈́ͩ͘ͅk̫̠̻̋͜a̲͒̾̇!͙͕̺͉̗̩̲̂̏̄̀
User avatar
lvd
 
Posts: 7239
Joined: 07 Apr 2007, 21:28
Group: Registered users

Postby sq_skrju » 01 Apr 2019, 23:11

Иначе в обработчик прерывания вообще не попасть будет, особенно, если его адрес неизвестен. А если надо проскипать halt и обработчик, то надо просто F4 (run here) на следующей за halt инструкцией жать.

Да, F4 норм отрабатывает в этом случае, просто часто бывает, что трейсишь с зажатой F8, и дебаггер спотыкается и залазит в обработчик, и из него потом выходить каждый раз не совсем удобно. Обычно, в 95% я трассирую свой собственный код (не знаю, как другие :), поэтому знаю, где адрес обработчика. А если надо его найти в чужом коде, можно посмотреть в регистр I и посмотреть адрес обработчика по адресу с I в старшем и #ff младшем байте.

Понимаю, что это вопрос удобства ) Кому-то удобнее так, кому-то так. Было бы круто, если бы была опция, хотя бы в .ini. Но если нет, то ладно :) Всё равно спасибо!

deathsoft wrote:color и stars_count - это вообще просто константы, а не метки адреса, а тупой sjasm их зачем то в user.l пихает, хотя туда должны попадать только метки-адреса.

А у меня кстати это нормально компилится! Констант в user.l нет.

если есть возможность попробуй в виртуалке под виндой, проявится там баг или нет.

Точно, проверил под виндой в виртуалке - бага нет, всё обновляется корректно! Значит баг в wine. Буду копать в этом направлении, может даже зарепорчу :) Огромное спасибо!

При нажатии на F7 или любые другие кнопки в дебагере происходит перезагрузка файла (и об этом пишется строчка в консоль, путь к user.l и число загруженных меток).

F7 - это же Step Into? То есть, даже при обычной трассировке должен перегружаться user.l? Но ведь в этом случае directory notification не используется? У меня он не перегружается и в консоль путь не пишется.
sq_skrju
 
Posts: 7
Joined: 07 Dec 2018, 02:07
Group: Registered users

Postby deathsoft » 01 Apr 2019, 23:20

sq_skrju wrote:что трейсишь с зажатой F8, и дебаггер спотыкается и залазит в обработчик, и из него потом выходить каждый раз не совсем удобно.

Кнопка F11 - выход из подпрограммы (автовыполнение до адреса на вершине стэка, в хэлпе там ошибка указано (PC), а должно быть (SP)) (это если обработчик не успел ничего напихать в стэк).

sq_skrju wrote: А если надо его найти в чужом коде, можно посмотреть в регистр I и посмотреть адрес обработчика по адресу с I в старшем и #ff младшем байте.

Ага, т.е. посмотреть в регистры, залезть в окно памяти, перейти на нужный адрес, взять вектор, поставить туда брекпоинт (и это только для IM2, а есть еще IM1 и IM0). А тут просто нажать F8 и все, а если надо пропустить, то F4 и никуда по памяти и регистрам не смотреть.

sq_skrju wrote:А у меня кстати это нормально компилится! Констант в user.l нет.

Возможно это попортили ту версию sjasm+ которая на гитхабе, там постоянно чтото меняют.

sq_skrju wrote:F7 - это же Step Into? То есть, даже при обычной трассировке должен перегружаться user.l? Но ведь в этом случае directory notification не используется? У меня он не перегружается и в консоль путь не пишется.

F7 - это чтобы директори нотификейшен отработал (т.к. он опрашивается в цикле дебагера, и в дебагере надо на что нибудь нажать, можно не F7, главное чтобы чтото отработало в цикле опроса клавишь, директори нотификейшен используется всегда, а его результат опрашивается в цикле опроса кнопок).

sq_skrju wrote:Значит баг в wine. Буду копать в этом направлении, может даже зарепорчу

Возможно в вайне который из транка уже все исправлено, но хз как его скомпилить и поставить на макось.
User avatar
deathsoft
 
Posts: 4705
Joined: 07 Apr 2007, 00:58
Group: Registered users

Postby sq_skrju » 02 Apr 2019, 23:31

Всё понял)

Только последний вопрос: почему бы не сделать, чтобы вход в обработчик прерывания был по F7, а не по F8 - ведь это было бы логичнее? Чтобы HALT в данном случае обрабатывался как CALL - по F7 вход в обработчик, по F8 - Step Over. Какой смысл сейчас в F7 на хальте, когда после этого, фактически, ничего не происходит? Как это может пригодиться?
sq_skrju
 
Posts: 7
Joined: 07 Dec 2018, 02:07
Group: Registered users

Postby deathsoft » 03 Apr 2019, 00:58

sq_skrju wrote:олько последний вопрос: почему бы не сделать, чтобы вход в обработчик прерывания был по F7, а не по F8 - ведь это было бы логичнее?

потому что по F7 выполняется одна итерация halt (4такта) при этом изменяется счетчик тактов, таким образом можно счетчик тактов догнать до любого нужного значения, ну либо в конце кадра точно прошагать.

sq_skrju wrote:Какой смысл сейчас в F7 на хальте, когда после этого, фактически, ничего не происходит? Как это может пригодиться?

См. выше, точная потактовая обработка хальта (зачем это практически может быть нужно, не знаю, возможно трасировка бордера или еще чего, когда вывел в порт цвет бордера а дальше сделал хальт, и можно смотреть как построчно бордер рисуется).
User avatar
deathsoft
 
Posts: 4705
Joined: 07 Apr 2007, 00:58
Group: Registered users

Previous

Return to Ошибки

Who is online

Users browsing this forum: No registered users and 1 guest

cron