purebasic.info

PureBasic forum
Текущее время: Чт окт 18, 2018 5:25 pm

Часовой пояс: UTC + 3 часа




Начать новую тему Ответить на тему  [ Сообщений: 27 ]  На страницу 1, 2  След.
Автор Сообщение
 Заголовок сообщения: Программа не завершается
СообщениеДобавлено: Вт янв 05, 2016 9:04 am 
Не в сети
профессор
Аватар пользователя

Зарегистрирован: Пт окт 31, 2008 4:49 pm
Сообщений: 717
Благодарил (а): 1 раз.
Поблагодарили: 4 раз.
Пункты репутации: 0
После установки финальной версии ПБ 5.4 - после выхода из программы (через End) процесс PureBasic_Compilation0.exe не убивается, висит в процессах.
Если запускать с дебугером то кнопкой Kill programm его можно убить. Скомпилированный экзешник- тоже только через диспетчер убивается.

В AnVir в потоках вот этот не завершается, я так понимаю
Код:
1
2
9E4 (2532)      00:01.154       00:44.694       25.0%   05.01.2016 09:10:33.674 8       8       29833   31      MSCTFIME UI     2042C 10436 20430       PureBasic_Compilation0  7713C500        
 



p.s.
Удалил финалку и поставил 5.41 бету - программа завершается нормально.

_________________
мой форум http://spaceminers.mybb2.ru
Dungeon Raider (Ogre). Game video: http://www.youtube.com/watch?v=ZlhBgPJhAxI


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: Программа не завершается
СообщениеДобавлено: Вт янв 05, 2016 2:40 pm 
Не в сети
МОДЕРАТОР
Аватар пользователя

Зарегистрирован: Пн апр 09, 2007 4:53 pm
Сообщений: 11299
Благодарил (а): 4 раз.
Поблагодарили: 436 раз.
Возможно одна из этих проблем http://www.purebasic.fr/english/viewtop ... =4&t=64416
http://www.purebasic.fr/english/viewtop ... 28&t=64125

_________________
Компьютер позволяет решать все те проблемы, которые до его изобретения не существовали. :) :)


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: Программа не завершается
СообщениеДобавлено: Вт янв 05, 2016 4:48 pm 
Не в сети
профессор
Аватар пользователя

Зарегистрирован: Пт окт 31, 2008 4:49 pm
Сообщений: 717
Благодарил (а): 1 раз.
Поблагодарили: 4 раз.
Пункты репутации: 0
Спасибо за ответ, конечно, но походу решения нет. Ладно подожду, может потом решение найдется какое-нибудь.

_________________
мой форум http://spaceminers.mybb2.ru
Dungeon Raider (Ogre). Game video: http://www.youtube.com/watch?v=ZlhBgPJhAxI


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: Программа не завершается
СообщениеДобавлено: Вт янв 05, 2016 4:53 pm 
Не в сети
МОДЕРАТОР
Аватар пользователя

Зарегистрирован: Пн апр 09, 2007 4:53 pm
Сообщений: 11299
Благодарил (а): 4 раз.
Поблагодарили: 436 раз.
Решение в том чтобы изменить код.

_________________
Компьютер позволяет решать все те проблемы, которые до его изобретения не существовали. :) :)


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: Программа не завершается
СообщениеДобавлено: Пн фев 01, 2016 3:44 pm 
Не в сети
профессор
Аватар пользователя

Зарегистрирован: Пт окт 31, 2008 4:49 pm
Сообщений: 717
Благодарил (а): 1 раз.
Поблагодарили: 4 раз.
Пункты репутации: 0
Поставил ПБ 5.42b1 , надеялся ошибки исправят- фиг там: программа зависает при закрытии.
Короче прошерстил код- заменил #PB_Any на переменные - вроде как баг прошел.
Короче лучше не используйте #PB_Any в коде. Сколько помню постоянно с этим проблемы возникали.

_________________
мой форум http://spaceminers.mybb2.ru
Dungeon Raider (Ogre). Game video: http://www.youtube.com/watch?v=ZlhBgPJhAxI


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: Программа не завершается
СообщениеДобавлено: Пн фев 01, 2016 4:11 pm 
Не в сети
МОДЕРАТОР
Аватар пользователя

Зарегистрирован: Пн апр 09, 2007 4:53 pm
Сообщений: 11299
Благодарил (а): 4 раз.
Поблагодарили: 436 раз.
Пишут что исправили в 5.42b1. http://www.purebasic.fr/english/viewtop ... 31#p480831
Если ошибка по прежнему есть, нужно определить из-за чего именно происходит и написать Фреду чтобы исправил.

_________________
Компьютер позволяет решать все те проблемы, которые до его изобретения не существовали. :) :)


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: Программа не завершается
СообщениеДобавлено: Пн фев 01, 2016 4:17 pm 
Не в сети
профессор
Аватар пользователя

Зарегистрирован: Пт окт 31, 2008 4:49 pm
Сообщений: 717
Благодарил (а): 1 раз.
Поблагодарили: 4 раз.
Пункты репутации: 0
У меня основной код 715кб текста плюс инклюды. Код запутанный так, что я сам еле разбираюсь.
У меня даже дебугер давно перестал работать- не тянет :)
Я год буду разбираться где баг.

_________________
мой форум http://spaceminers.mybb2.ru
Dungeon Raider (Ogre). Game video: http://www.youtube.com/watch?v=ZlhBgPJhAxI


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: Программа не завершается
СообщениеДобавлено: Пн фев 01, 2016 4:28 pm 
Не в сети
МОДЕРАТОР
Аватар пользователя

Зарегистрирован: Пн апр 09, 2007 4:53 pm
Сообщений: 11299
Благодарил (а): 4 раз.
Поблагодарили: 436 раз.
На самом деле найти причину не сложно. В каких функциях использовал #PB_Any?

_________________
Компьютер позволяет решать все те проблемы, которые до его изобретения не существовали. :) :)


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: Программа не завершается
СообщениеДобавлено: Пн фев 01, 2016 4:59 pm 
Не в сети
профессор
Аватар пользователя

Зарегистрирован: Пт окт 31, 2008 4:49 pm
Сообщений: 717
Благодарил (а): 1 раз.
Поблагодарили: 4 раз.
Пункты репутации: 0
Дело то в том, что отдельно взятые куски кода работают нормально, а все вместе вызывает самые непредсказуемые баги.
Может компилятору не понравилась некая переменная в одном месте а баг вылез в другом месте.

_________________
мой форум http://spaceminers.mybb2.ru
Dungeon Raider (Ogre). Game video: http://www.youtube.com/watch?v=ZlhBgPJhAxI


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: Программа не завершается
СообщениеДобавлено: Вт фев 02, 2016 7:51 am 
Не в сети
профессор

Зарегистрирован: Вт май 13, 2014 4:12 am
Сообщений: 684
Благодарил (а): 75 раз.
Поблагодарили: 20 раз.
Пункты репутации: 5
AndyLy писал(а):
Короче прошерстил код- заменил #PB_Any на переменные - вроде как баг прошел

Только её и использую, и сильно удивился, что она что там может портить.


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: Программа не завершается
СообщениеДобавлено: Вт фев 02, 2016 10:15 am 
Не в сети
МОДЕРАТОР

Зарегистрирован: Вт дек 05, 2006 8:46 am
Сообщений: 6384
Благодарил (а): 20 раз.
Поблагодарили: 198 раз.
Пункты репутации: 48
newJS писал(а):
AndyLy писал(а):
Короче прошерстил код- заменил #PB_Any на переменные - вроде как баг прошел

Только её и использую, и сильно удивился, что она что там может портить.

Похоже, что #PB_Any это псевдослучайное число, появление которого ни как не контролируется на повторяемость в самой программе. И возможно есть вероятность, что если в программе этих #PB_Any достаточно много, то могут быть совпадения, что и приводит к глюкам.

_________________
read-only


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: Программа не завершается
СообщениеДобавлено: Вт фев 02, 2016 10:49 am 
Не в сети
МОДЕРАТОР
Аватар пользователя

Зарегистрирован: Пн апр 09, 2007 4:53 pm
Сообщений: 11299
Благодарил (а): 4 раз.
Поблагодарили: 436 раз.
kvitaliy писал(а):
Похоже, что #PB_Any это псевдослучайное число
Это указатель на область памяти.

_________________
Компьютер позволяет решать все те проблемы, которые до его изобретения не существовали. :) :)


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: Программа не завершается
СообщениеДобавлено: Вт фев 02, 2016 12:26 pm 
Не в сети
МОДЕРАТОР

Зарегистрирован: Вт дек 05, 2006 8:46 am
Сообщений: 6384
Благодарил (а): 20 раз.
Поблагодарили: 198 раз.
Пункты репутации: 48
Пётр писал(а):
kvitaliy писал(а):
Похоже, что #PB_Any это псевдослучайное число
Это указатель на область памяти.

Где написано, что указатель?
Цитата:
#Gadget A number to identify the new gadget. #PB_Any can be used to auto-generate this number.


Код:
1
2
3
4
5
6
7
8
Window_0 = OpenWindow(#PB_Any, x, y, width, height, "", #PB_Window_SystemMenu | #PB_Window_MinimizeGadget | #PB_Window_MaximizeGadget | #PB_Window_SizeGadget | #PB_Window_ScreenCentered)
  Button_0 = ButtonGadget(#PB_Any, 150, 180, 280, 60, "Hi!")
  Date_0 = DateGadget(#PB_Any, 150, 50, 270, 30, "")
 
Debug Window_0
Debug Button_0
Debug Date_0
 


В Debug по твоему указатели на область памяти?
А по моему номера гаджетов. Вот только могут ли они, хотя бы чисто теоретически, повториться ?

_________________
read-only


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: Программа не завершается
СообщениеДобавлено: Вт фев 02, 2016 12:58 pm 
Не в сети
МОДЕРАТОР
Аватар пользователя

Зарегистрирован: Пн апр 09, 2007 4:53 pm
Сообщений: 11299
Благодарил (а): 4 раз.
Поблагодарили: 436 раз.
kvitaliy писал(а):
В Debug по твоему указатели на область памяти?
Да. Разве не похоже?

Дизассемблировал эту строку кода.
Код:
1
x=OpenLibrary(#PB_Any, "User32.dll")

В случае #PB_Any, выполняется этот код.
Код:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
 SUB_L00402315:
                push    [esp+08h]
                push    00000008h
                push    [L0040317C]
                call    [KERNEL32.dll!HeapAlloc]
                test    eax,eax
                jz      L0040233E
                mov     ecx,[esp+04h]
                mov     edx,[ecx]
                test    edx,edx
                jz      L0040233C
                mov     [edx+04h],eax
                mov     edx,[ecx]
                mov     [eax],edx
 L0040233C:
                mov     [ecx],eax
 L0040233E:
                add     eax,00000008h
                retn

Обратите внимание на вызов функции HeapAlloc.

_________________
Компьютер позволяет решать все те проблемы, которые до его изобретения не существовали. :) :)


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: Программа не завершается
СообщениеДобавлено: Вт фев 02, 2016 1:39 pm 
Не в сети
МОДЕРАТОР

Зарегистрирован: Вт дек 05, 2006 8:46 am
Сообщений: 6384
Благодарил (а): 20 раз.
Поблагодарили: 198 раз.
Пункты репутации: 48
Пётр писал(а):
kvitaliy писал(а):
В Debug по твоему указатели на область памяти?
Да. Разве не похоже?

Нет, не похоже:
Цитата:
#Library A number to identify this library. #PB_Any can be used to auto-generate this number.

Иначе как в этом коде PB различает, где указатель на область памяти, а где обычный номер этой либы?

Код:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
x=OpenLibrary(#PB_Any, "User32.dll")
OpenLibrary(394119, "User32.dll")
 
*MessageBox = GetFunction(x, "MessageBoxA")
        If *MessageBox
          CallFunctionFast(*MessageBox, 0, @"Body", @"Title", 0)
        EndIf
       
        CloseLibrary(x)
     
*MessageBox2 = GetFunction(394119, "MessageBoxA")
        If *MessageBox2
          CallFunctionFast(*MessageBox2, 0, @"Body2", @"Title2", 0)
        EndIf
       
        CloseLibrary(394119)


_________________
read-only


Вернуться наверх
 Профиль  
 
Показать сообщения за:  Сортировать по:  
Начать новую тему Ответить на тему  [ Сообщений: 27 ]  На страницу 1, 2  След.

Часовой пояс: UTC + 3 часа


Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
Создано на основе phpBB® Forum Software © phpBB Group (блог о phpBB)
Сборка создана CMSart Studio
Русская поддержка phpBB