Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Invalid pointer при выходе из приложения (содержит потоки) / 6 сообщений из 6, страница 1 из 1
17.12.2018, 12:27
    #39748861
BorodaOleg
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Invalid pointer при выходе из приложения (содержит потоки)
Собственно subj. Причем, похоже ошибка возникает именно при выходе из потока. После долгих мытарств баг был словлен, ошибка возникает на выходе из процедуры:

Код: pascal
1.
2.
3.
4.
5.
6.
7.
destructor CThread.Destroy;
begin
  if Suspended then begin
    TerminateThread(Self.Handle, 0);
  end;
  inherited; 
end;



После самого последнего end. Создается ощущение, что при выходе из потока он пытается вернуть указатель основному приложению, а там… уже пусто.
Кто-нибудь с таким сталкивался?
...
Рейтинг: 0 / 0
17.12.2018, 12:47
    #39748874
DmSer
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Invalid pointer при выходе из приложения (содержит потоки)
Не используйте TerminateThread, перепишите код по другому. Если поток заморожен (надеюсь что он сам себя морозит, а не извне), то сначала нужно вывести его из этого состояния, затем дождаться штатного завершения его работы.
...
Рейтинг: 0 / 0
17.12.2018, 12:47
    #39748875
wadman
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Invalid pointer при выходе из приложения (содержит потоки)
BorodaOleg
Код: pascal
1.
inherited; 


Куда ведет?
...
Рейтинг: 0 / 0
17.12.2018, 13:15
    #39748893
softwarer
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Invalid pointer при выходе из приложения (содержит потоки)
BorodaOlegПосле долгих мытарств баг был словлен, ошибка возникает на выходе из процедуры:
Во-первых, это не "словлен". Во-вторых, есть подозрение, что если уберёшь TerminateThread и не будешь пытаться делать то, что сложновато для твоего текущего уровня - результат будет лучше. А в-третьих, если ошибка возникает "после последнего end" - значит, ставишь на этот последний end брейкпоинт, нажимаешь Ctrl-Alt-C и внимательно, ничего не пропуская, идёшь по шагам и смотришь, где и когда на самом деле случается этот Invalid pointer.
...
Рейтинг: 0 / 0
17.12.2018, 15:45
    #39749013
krapotkin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Invalid pointer при выходе из приложения (содержит потоки)
ну в целом логично написать Убей мой хэндл а потом вызвать предка, который тоже собирался убить свой хэндл, а он уже убит )
...
Рейтинг: 0 / 0
17.12.2018, 20:02
    #39749155
kealon(Ruslan)
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Invalid pointer при выходе из приложения (содержит потоки)
...
Рейтинг: 0 / 0
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Invalid pointer при выходе из приложения (содержит потоки) / 6 сообщений из 6, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]