Удаление всех файлов из папки STATUS не помогает. Теперь окно ошибки не появляется но открывается один файл
с двумя окнами (в одном текст со спецзнаками, а в другом код двоичный этого файла). Я думаю, скорее всего, это
система глюканула.....
SergeCpp,SergeCpp писал(а):Пока я не собрался развёрнуто написать о макроотладчике (описание настроек нужно бы завершить сначала), прочесть краткую (и вместе с тем достаточную для самостоятельного повторения) методику его запуска можно в следующем сообщении параллельной темы: viewtopic.php?p=7402#p7402
SergeCpp писал(а):[...]
Restore previous status — метод сохранения и восстановления предыдущего состояния редактирования:Status file path — каталог, в который помещаются 'файлы-сессии'.
- No restore — состояние не сохраняется и не восстанавливается
(из-за ошибки состояние всё же иногда сохраняется по методу 'One global status file'
и в некоторых случаях может быть восстановлено, однако, полагаться на это не следует).- Status file in each dir — состояние сохраняется в файле STATUS.ME в том каталоге,
в котором мы находились при запуске Multi-Edit.- One global status file — состояние сохраняется в файле STATUS.ME в основном каталоге Multi-Edit
(каталоге, в котором находится ME.EXE).- Encoded status files for each dir — состояние сохраняется в специальных 'файлах-сессиях'
(см. «Multi-Edit 7.0 — сессии редактирования»).
Изначально используется метод 'Encoded status files for each dir' и 'сессии' помещаются в каталог STATUS.
Nika писал(а):Ещё такой вопрос. Запутался с представлениями адресов.
Если "taddr=14542" это 38СEh (пускай, ближний адрес в сегменте данных),
то что такое "str_addr=-1914568704" ? - это какой-то dword адрес 8DE2'0000h, сконвертированый в дес.строку.
Это что - сконвертированное в строку dword в формате far-указателя? Или какой-то линейный адрес?..
Надо ли понимать, что это 8DE2:0000 ?
Nika писал(а):Разобрался... Теперь работает и WATCH_CHAR.
Nika писал(а):
- Код: Выделить всё
//--------------------------------
MACRO_FILE SSTATUS;
MACRO SSTATUS FROM EDIT { RM( 'EXIT^STATUS' ); MAKE_MESSAGE( 'Current status.me saved.'); }
MACRO SRESTORE FROM EDIT { WHILE( (File_Name != '?No-File?') ) { RM('WINDOW^DELWIN'); } RM( 'EXIT^RESTORE' );}
//-------------------------------
Вашу модификацию я сейчас вообще "заморозил" - никаких изменений, пока не почувствую себя в силах (что скорей всего и не настанет).SergeCpp писал(а):В моей модификации status находится НЕ в exit.mac, а в своём собственном макрофайле -- status.mac /то, что работает и вводящее в заблуждение "exit^status" -- это уже другое дело/, поэтому rm( "status /force" ) -- force нужно для того, чтобы состояние сохранялось безусловно, иначе там какие-то условия, связанные (кроме прочего) с тем, делалось ли что-нибудь со времени предыдущего сохранения (чтоб поменьше на диск писалось /кажется/). Ещё там посмотрите в шапке status про допусловие (global @stat_deny).
Насчёт srestore -- там всё не так просто, посмотрите sessmgr.s:sm_restart() и sessmgr.s:sm_switch().
Вообще, прежде, чтобы что-то там делать-менять (и то, что НА ПЕРВЫЙ ВЗГЛЯД -- легко и просто), советую разобраться, КАК там сделано аналогичное, ибо изменений много, да и в том, что не менялось по сравнению с fresh, тоже лучше разобраться (ибо там много чего хитрого).
Да всё указывал str_addr в непонятные места... Причём раз в несколько прогонов и срабатывал watch_char, правда, под отладчиком. А дальше снова фигня полная. Но потом я вспомнил ваше замечание насчёт непостоянности указателя и, вроде, всё заработало как следует. Но не тестировалось почти абсолютно. Может, если затею какой-нибудь могучий макрос, потестирую серьёзней. (Посмотрите там в тексте, если интересно. Я аккуратно пометил все правки в medb610p.S. Ищите по тексту строку "//ver").SergeCpp писал(а):А что там с watch_char?
Я слабо припоминаю, что оригинальная версия 7_fresh аварийно завершалась (кажется) при выполнении какой-то функции, связанной с char. Это в ME.EXE была буквально "опечатка", я поправил, в idb это есть, но я сейчас ida не открою, а по памяти -- не помню, увы.
Nika писал(а):Эксперименирую с той версией, что из вашего архива me7_fresh.
SergeCpp писал(а):Nika писал(а):Эксперименирую с той версией, что из вашего архива me7_fresh.
А почему тогда с первой 7, а не с последней, 7J? Всё же они там много, думаю, поправили, если аж столько седьмых версий навыпускали.
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 10