При отладке FireMonkey приложения (прыгающий мяч), через минуту или около того в мяч движется вокруг, это сообщение начинает выливаться в EventLog:FireMonkey «Нет Debug Info»
Модуль нагрузки: D3DCOMPILER_47.dll , Нет информации об отладке. Базовый адрес: $ 14D50000. Process bo.exe (13824) Начало резьбы: Код резьбы: 14268. Process bo.exe (13824)
Это делает режим отладки практически бесполезным. Это пробная версия Delphi Architect, пустая форма приложения Firemonkey. Я думал, возможно, это из-за того, что это пробная версия.
Я вижу около трех потоков, начинающихся до этого. Я не сознательно начинаю какие-либо темы, но я предполагаю, что для пользовательского интерфейса один, а другой - для отладчика? Не знаю. Вот репрезентативный пример:
Module Load: imagehlp.dll. No Debug Info. Base Address: $74A30000. Process bo.exe (19228)
Module Load: GPAPI.dll. No Debug Info. Base Address: $612D0000. Process bo.exe (19228)
Module Load: CRYPTNET.dll. No Debug Info. Base Address: $60900000. Process bo.exe (19228)
Module Load: IPHLPAPI.DLL. No Debug Info. Base Address: $739B0000. Process bo.exe (19228)
Module Load: WINNSI.DLL. No Debug Info. Base Address: $72B40000. Process bo.exe (19228)
Module Load: NSI.dll. No Debug Info. Base Address: $74940000. Process bo.exe (19228)
Module Load: ltc_game32.dll. No Debug Info. Base Address: $11D60000. Process bo.exe (19228)
Thread Start: Thread ID: 16400. Process bo.exe (19228)
Thread Start: Thread ID: 19268. Process bo.exe (19228)
Thread Start: Thread ID: 18640. Process bo.exe (19228)
Thread Exit: Thread ID: 16400. Process bo.exe (19228)
Thread Start: Thread ID: 6096. Process bo.exe (19228)
Module Load: D3DCOMPILER_47.dll. No Debug Info. Base Address: $14510000. Process bo.exe (19228)
Module Unload: D3DCOMPILER_47.dll. Process bo.exe (19228)
И последние две строки будут повторяться до бесконечности.
UPDATE # 1 (отредактировано): Я не пытаюсь отлаживать D3DCompiler. Я пытаюсь найти причину замедления.
UPDATE # 2: Я отключил сообщения отладчика для модулей, и это не помогло. В той же приблизительной точке скорость приложения резко падает. Это происходит только при отладке.
UPDATE # 3: Как обновить:
- Начните новое приложение Multi-Device.
- Выберите пустое приложение.
- Снимите TTimer.
- Снимите TRectangle.
- Добавить булевскую переменную «вверх».
Для Timer1Timer добавьте следующий код:
procedure TForm1.Timer1Timer(Sender: TObject); begin if up then my := -1 else my := 1; if (Rectangle1.Position.Y + my < 10) or (Rectangle1.Position.Y + my > 470) then up := not up else Rectangle1.Position.Y := Rectangle1.Position.Y + my; end;
Установите интервал TTimer к чему-то низко. На моей машине я могу произвести эффект с интервалом до 60. Это настолько мало, насколько я смог сделать это, все еще получая вышеупомянутый отладчик.
Эти сообщения связаны с системными DLL-файлами Windows. Они не поставляются с отладочной информацией в них. Вы можете получить символы отладки от MS, но они не будут вам очень полезны. Почему, по-вашему, вам нужно отлаживать системные DLL? Любая проблема будет в вашем собственном коде. И как вывод в окне сообщений о системных DLL, не имеющих отладочной информации, делает отладку бесполезной? Опять же, это ваш собственный код, который вы должны отлаживать, а не системный код. –
Надеюсь, что изменение прояснится. – user3810626
Поэтому отключите сообщения, которые вы не хотите видеть. Инструменты-> Параметры-> Параметры отладчика-> Журнал событий. –