FreeBasic
Главная
Вход
Регистрация
Суббота, 21.12.2024, 19:22Приветствую Вас Гость | RSS
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 2
  • 1
  • 2
  • »
Ошибки при отладке
UilДата: Пятница, 01.03.2019, 23:15 | Сообщение # 1
Рядовой
Группа: Пользователи
Сообщений: 11
Репутация: 2
Статус: Offline
Всем привет.
Вот текст программки:
Спойлер


После удачной сборки модуля (C:\FB\Compiler1.06.0\fbc -g -s console "CreateGpBitmapFromHBitmap.bas") пытаюсь запустить с отладчиком.
Отладчик при старте выдает такие ошибки,
File: c\fb\compiler1.06.0\inc\win\shobjidl.bi too large (886142>700000) not loaded
File: c\fb\compiler1.06.0\inc\win\mshtmlc.bi too large (2513411>700000) not loaded
затем загружает кучу табов и останавливается на вкладке window9.bi (AS):
Код. . .
' is it a exe build ?
#if __FB_OUT_EXE__ or __FB_OUT_DLL__

#inclib "window9"

InitCommonControls( )
Dim InitCtrlEx As INITCOMMONCONTROLSEX
InitCtrlEx.dwSize = sizeof(InitCommonControlsEx)
InitCtrlEx.dwICC  = ICC_STANDARD_CLASSES
InitCommonControlsEx(@InitCtrlEx)

#else
' no must be a lib build declare things for internal use only
. . .


С другими программами вроде все нормально, на всякий случай - Debugger for FreeBASIC (only Win32/64) V 2.93/09-05-2018 (С) L.GRAS sarg@aliceadsl.fr
Подскажите, в чем тут проблема?


Сообщение отредактировал Uil - Пятница, 01.03.2019, 23:24
 
haavДата: Суббота, 02.03.2019, 06:31 | Сообщение # 2
Генералиссимус
Группа: Администраторы
Сообщений: 1373
Репутация: 50
Статус: Offline
Привет!

FbDEbugger и раньше не сильно любил работать с GDI\GDI+ , постоянно высвечивая различные "сюрпризы". Я попробовал тоже последнюю версию отладчика с данным примером , но скомпилированным с помощью компилятора 1.05 . Все загружается в отладчик без проблем , однако не работает отладка должным образом.

Мне жаль , но данные вопросы здесь не решатся. Отладчик слишком объемная и сложная программа. Я уверен , что даже автор (SARG) долго будет разбираться с проблемой , что говорить о нас?

Пожалуйста , если не сложно, размести данную проблему на оф. странице отладчика: https://www.freebasic.net/forum/viewtopic.php?f=8&t=13935 . При этом нужно будет разместить архив с исходным кодом и необходимыми файлами для компиляции (библиотеки), поскольку SARG может не иметь на своем компьютере нужные библиотеки. Чтобы дело было быстрее , дополнительно можно написать ему на мыло. Насколько я помню, он всегда был очень отзывчивый человек , так что если он не сильно занят , то думаю данную проблему рассмотрит. Или если в лом, то скажи об этом, тогда я сам обращусь с этой проблемой.

Если время не терпит , то можно отлаживать с помощью GDB (с ним проблем не будет). Правда это не так удобно, все таки консоль... Либо попробовать Insight.


Вы сохраняете власть над людьми покуда оставляете им что-то…Отберите у человека все, и этот человек уже будет неподвластен вам…
 
UilДата: Суббота, 02.03.2019, 16:59 | Сообщение # 3
Рядовой
Группа: Пользователи
Сообщений: 11
Репутация: 2
Статус: Offline
Цитата haav ()
Мне жаль , но данные вопросы здесь не решатся. Отладчик слишком объемная и сложная программа.

haav, спасибо, понял что это не у меня одного. Отпишу им проблему.

Добавлено (03.03.2019, 16:19)
---------------------------------------------
Написал на основной форум, SARG отреагировал очень быстро ->  версия 2.94

 
haavДата: Воскресенье, 03.03.2019, 18:46 | Сообщение # 4
Генералиссимус
Группа: Администраторы
Сообщений: 1373
Репутация: 50
Статус: Offline
И что у тебя работает? У меня пример из 1 поста как не отлаживался, так и не отлаживается.

Вы сохраняете власть над людьми покуда оставляете им что-то…Отберите у человека все, и этот человек уже будет неподвластен вам…
 
UilДата: Воскресенье, 03.03.2019, 22:22 | Сообщение # 5
Рядовой
Группа: Пользователи
Сообщений: 11
Репутация: 2
Статус: Offline
haav, да вроде бы все нормально, вот ролик(27M).
 
haavДата: Понедельник, 04.03.2019, 06:36 | Сообщение # 6
Генералиссимус
Группа: Администраторы
Сообщений: 1373
Репутация: 50
Статус: Offline
Спасибо за ролик! Слушай напиши поподробнее:

1) какая операционная система
2) какая версия window9 моя или Джоши . У Джоши адаптировано под win64 .
3) какой компиль ты используешь , я уже понял. Не мог бы ты попробовать с компилятором 1.05 ?


Вы сохраняете власть над людьми покуда оставляете им что-то…Отберите у человека все, и этот человек уже будет неподвластен вам…
 
UilДата: Понедельник, 04.03.2019, 11:05 | Сообщение # 7
Рядовой
Группа: Пользователи
Сообщений: 11
Репутация: 2
Статус: Offline
Цитата haav ()
1) какая операционная система
2) какая версия window9 моя или Джоши . У Джоши адаптировано под win64 .
3) какой компиль ты используешь , я уже понял. Не мог бы ты попробовать с компилятором 1.05 ?

1) Win10x64
2) Твоя (http://users.freebasic-portal.de/freebasicru/user-files/Window9L.zip)
3) С 1.05 у меня не работает -> Loading debug data и уходит куда-то в глубокий Космос в ожидании.
 
haavДата: Понедельник, 04.03.2019, 12:28 | Сообщение # 8
Генералиссимус
Группа: Администраторы
Сообщений: 1373
Репутация: 50
Статус: Offline
Фиг знает че такое. Тоже попробовал на win10 , ничего не поменялось. Переходить на 1.06 пока не могу, эта версия мало тестировалась. А у меня сейчас проекты в работе , своих багов хватает , а если еще добавятся баги новой версии компилятора , то вообще край...  Написал SARG(у) , может что-то из этого выйдет.

Вы сохраняете власть над людьми покуда оставляете им что-то…Отберите у человека все, и этот человек уже будет неподвластен вам…
 
UilДата: Понедельник, 04.03.2019, 15:32 | Сообщение # 9
Рядовой
Группа: Пользователи
Сообщений: 11
Репутация: 2
Статус: Offline
haav, а зачем в Window9.bi этот кусок:

Код
#inclib "window9"

   InitCommonControls( )
   Dim InitCtrlEx As INITCOMMONCONTROLSEX
   InitCtrlEx.dwSize = sizeof(InitCommonControlsEx)
   InitCtrlEx.dwICC  = ICC_STANDARD_CLASSES
   InitCommonControlsEx(@InitCtrlEx)


И без него всё вроде бы работает и отлаживается, даже в 1.05+2.94
 
haavДата: Понедельник, 04.03.2019, 16:17 | Сообщение # 10
Генералиссимус
Группа: Администраторы
Сообщений: 1373
Репутация: 50
Статус: Offline
Цитата Uil ()
haav, а зачем в Window9.bi этот кусок:


Я сейчас уже точно не вспомню. В памяти отложилось , что на windows XP без этого куска кода половина гаджетов не работает (такие как treewview , listview и пр. common controls). Когда я начинал писать либу, я это делал еще на WinXP и большей частью для нее. Рубить поддержку Windows XP даже сейчас в 2019 не хочу. 

В любом случае ты прав, без этого куска кода отладчик нормально функционирует. Это хорошая новость, поскольку теперь я знаю как можно отлаживать код , созданный при помощи моей либы. Спасибо!


Вы сохраняете власть над людьми покуда оставляете им что-то…Отберите у человека все, и этот человек уже будет неподвластен вам…
 
UilДата: Вторник, 05.03.2019, 00:40 | Сообщение # 11
Рядовой
Группа: Пользователи
Сообщений: 11
Репутация: 2
Статус: Offline
haav, а вот такой вопрос.
Собрал libwindow9.a с отладочной инфой. При отладке не находит используемые исходные файлы библиотеки, приходится нужные файлы копировать в текущую папку отладки.
По-другому никак нельзя?
И вот ещё (ссылка на MS):
Цитата
замечания
В версии 5.x Comctl32.dll только классы Windows 95 (ICC_WIN95_CLASSES) могут быть зарегистрированы через InitCommonControls . Программы, которые требуют дополнительных общих классов управления, должны использовать функцию InitCommonControlsEx .
В версии 6.0 Comctl32.dll и выше, InitCommonControls ничего не делает. Приложения должны явно регистрировать все общие элементы управления через InitCommonControlsEx.

Посмотрел в XP, там версия 6.0


Сообщение отредактировал Uil - Вторник, 05.03.2019, 00:43
 
haavДата: Вторник, 05.03.2019, 07:40 | Сообщение # 12
Генералиссимус
Группа: Администраторы
Сообщений: 1373
Репутация: 50
Статус: Offline
Цитата Uil ()
Собрал libwindow9.a с отладочной инфой. При отладке не находит используемые исходные файлы библиотеки, приходится нужные файлы копировать в текущую папку отладки.По-другому никак нельзя?


Я не видел в FBDEBUGGER опции "указать путь для заголовков". А что мешает компилить либу прямо рядом с исходниками , пока идет отладка?


Цитата
замечания
В версии 5.x Comctl32.dll только классы Windows 95 (ICC_WIN95_CLASSES) могут быть зарегистрированы через InitCommonControls . Программы, которые требуют дополнительных общих классов управления, должны использовать функцию InitCommonControlsEx .
В версии 6.0 Comctl32.dll и выше, InitCommonControls ничего не делает. Приложения должны явно регистрировать все общие элементы управления через InitCommonControlsEx.
Посмотрел в XP, там версия 6.0
 

Так это ничего не меняет. В функции InitCommonControls , насколько я понял , в новых версиях винды стоит заглушка в виде "RETURN". Проблема то с отладчиком возникает из-за InitCommonControlsEX. В принципе можно заюзать макрос _WIN32_WINNT в window9.bi, это решит проблему отладки для систем выше Windows XP и в то же время не сломает функциональность библиотеки на XP. Опять же проблема есть только на компиляторах ниже версии 1.06 . Хотелось бы проверить , как работает отладчик с данным примером на Windows xp при использовании 1.06 , но это туева куча времени. Надо доставать и подключать старый комп , виртуалка вряд ли внесет уверенность.  Возможно когда нибудь, если не забуду , я это проверю.


Вы сохраняете власть над людьми покуда оставляете им что-то…Отберите у человека все, и этот человек уже будет неподвластен вам…
 
UilДата: Вторник, 05.03.2019, 09:56 | Сообщение # 13
Рядовой
Группа: Пользователи
Сообщений: 11
Репутация: 2
Статус: Offline
Цитата haav ()
Хотелось бы проверить , как работает отладчик с данным примером на Windows xp при использовании 1.06

Ладно, проверю.

Добавлено (05.03.2019, 13:44)
---------------------------------------------
В Xp тоже все нормально (ролик(19M)).

 
haavДата: Вторник, 05.03.2019, 14:11 | Сообщение # 14
Генералиссимус
Группа: Администраторы
Сообщений: 1373
Репутация: 50
Статус: Offline
Спасибо за тест и информативный ролик. Что-то видать покрутили в компиляторе 1.06 

Кстати  пролетаю я с макросом _WIN32_WINNT .  У меня на Windows 7 он возвращает &h502 , хотя должен по идее возвращать &h601  ссыль на оф. документацию  . Просто нет слов...


Вы сохраняете власть над людьми покуда оставляете им что-то…Отберите у человека все, и этот человек уже будет неподвластен вам…
 
UilДата: Среда, 06.03.2019, 00:03 | Сообщение # 15
Рядовой
Группа: Пользователи
Сообщений: 11
Репутация: 2
Статус: Offline
Цитата haav ()
Кстати  пролетаю я с макросом _WIN32_WINNT .

Так может в лоб определять версию с помощью RtlGetNtVersionNumbers(MajorVersion, MinorVersion, BuildNumber)?


Сообщение отредактировал Uil - Среда, 06.03.2019, 00:04
 
  • Страница 1 из 2
  • 1
  • 2
  • »
Поиск: