При работе разных программ, написаных на HiAsm, часто появлюятся целые серии окошек "self destruction" с кнопкой "ok".
Я такого не программировал, что это может значить?
Этот топик читают: Гость
Ответов: 1429
Рейтинг: 50
|
|||
карма: 0 |
|
Ответов: 3349
Рейтинг: 233
|
|||
Это значит что объект пытался удалить сам себя.
Обычно это бывает если из мультика выходит событие на точку ##delete or ##clear |
|||
карма: 1 |
|
Администрация
Ответов: 15295
Рейтинг: 1519
|
|||
Это значит, что программа собрана логически не верно
|
|||
карма: 27 |
|
Ответов: 1429
Рейтинг: 50
|
|||
Получается, все мои программы так собраны
1. Хорошо бы понять хоть какой-то критерий "логически правильной" сборки. 2. Можно ли как-то настроить компилятор, или среду, чтобы она предупреждала о неправильной схеме? 3. Можно ли как-то отключить такое сообщение? Их десятки за сутки набирается/ Ivann писал(а): выходит событие на точку ##delete or ##clearТакого нет у меня. ------------ Дoбавленo в 21.40: Это сообщение появляется даже в тех программах, где нет удалений каких-либо динамических обьектов. Одна статика. |
|||
карма: 0 |
|
Разработчик
Ответов: 26163
Рейтинг: 2127
|
|||
login писал(а): где нет удалений каких-либо динамических обьектовВообще-то, "self destruction" принадлежит динамическому мульту, как ты там используешь его в статике, еще разбираться надо, а примера, которое такое выдает, как такового, нет |
|||
карма: 22 |
|
Ответов: 1429
Рейтинг: 50
|
|||
Удивительно, программа делает 2000 полных циклов самой себя за сутки, работая правильно.
Из которых появляется 20 сообщений Self Destruct. А что, остальные 1980 циклов были логически правильные? |
|||
карма: 0 |
|
Администрация
Ответов: 15295
Рейтинг: 1519
|
|||
login, без схемы этот разговор не имеет смысла. Появление данного сообщения само по себе не является признаком ошибки, а всего лишь предупреждает о том, что попытка удаления схемы оказалась неудачной и она (схема) продолжит висеть в памяти.
|
|||
карма: 27 |
|
Ответов: 1429
Рейтинг: 50
|
|||
nesco писал(а): "self destruction" принадлежит динамическому мультуПолезная информация. Буду наблюдать за этим как-то. А отключать можно такие сообщения? (поскольку такую редкую ошибку можно и за 5 лет не найти) |
|||
карма: 0 |
|
Администрация
Ответов: 15295
Рейтинг: 1519
|
|||
login, вы из панели управления самолетом тоже все лампочки удалите, если одна из них начнет красным мигать?
|
|||
карма: 27 |
|
Разработчик
Ответов: 26163
Рейтинг: 2127
|
|||
Dilma писал(а): что попытка удаления схемы оказалась неудачной и она (схема) продолжит висеть в памятиНасколько я не ошибаюсь, то такое может быть, если ипользуются два доступа из разных потоков, один из которых перезапускается, а второй обрашается к этой схеме. Dilma, поправь, если я ошибся |
|||
карма: 22 |
|
Ответов: 1429
Рейтинг: 50
|
|||
Dilma писал(а): о том, что попытка удаления схемы оказалась неудачной и она (схема) продолжит висеть в памяти.Спасибо. Это конструктивно. Уже переделывать готовый софт нельзя, я отдал человеку готовую прогу, он мне звонит и жалуется. Но я другим проэктом занят поэтому и спрашиваю, там была задача не критичная, на один конкретный случай отключить это сообщение можно или нельзя? А суть я понял буду внимательно следить за тем что делаю. |
|||
карма: 0 |
|
Разработчик
Ответов: 26163
Рейтинг: 2127
|
|||
login писал(а): отключить это сообщение можно или нельзя?Можно, но только в коде компонента |
|||
карма: 22 |
|
Ответов: 1429
Рейтинг: 50
|
|||
Это оно? В элементе MultiElementEx:
function THIMultiElementEx.TestEvent; begin Result := true; while assigned(G) do begin if F=G.Hnd then begin _debug('Self destruction is not allowed !!!'); exit; end; G := G.Prv; end; Result := false; end; ---------- То-есть. всмысле. больше нbгде, а только тут это сообщение есть/ |
|||
карма: 0 |
|
Администрация
Ответов: 15295
Рейтинг: 1519
|
|||
проверка с выдачей этого сообщения стоит только на методах Delete, HDelete и Clear (который использует Delete). Поэтому как-то сомнительно, что точки не используются, а сообщение не появляется.
------------ Дoбавленo в 22.03: login писал(а): Это оно?да |
|||
карма: 27 |
|
Ответов: 1429
Рейтинг: 50
|
|||
Да, сомнительно. Всё просмотрю, вдруг я ошибаюсь, и где-то использовал. Спешил.
Спасибо, Вам всем за помощь. |
|||
карма: 0 |
|