2016-09-19 3 views
0

При отладке 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: Как обновить:

  1. Начните новое приложение Multi-Device.
  2. Выберите пустое приложение.
  3. Снимите TTimer.
  4. Снимите TRectangle.
  5. Добавить булевскую переменную «вверх».
  6. Для 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. Это настолько мало, насколько я смог сделать это, все еще получая вышеупомянутый отладчик.

+0

Эти сообщения связаны с системными DLL-файлами Windows. Они не поставляются с отладочной информацией в них. Вы можете получить символы отладки от MS, но они не будут вам очень полезны. Почему, по-вашему, вам нужно отлаживать системные DLL? Любая проблема будет в вашем собственном коде. И как вывод в окне сообщений о системных DLL, не имеющих отладочной информации, делает отладку бесполезной? Опять же, это ваш собственный код, который вы должны отлаживать, а не системный код. –

+0

Надеюсь, что изменение прояснится. – user3810626

+0

Поэтому отключите сообщения, которые вы не хотите видеть. Инструменты-> Параметры-> Параметры отладчика-> Журнал событий. –

ответ

0

Итак, FireMonkey гуру Эли М на борту Embarcadero, дал мне ответ на этот вопрос, который я отправляю здесь для будущего народа:

FMX.Types.GlobalUseGPUCanvas := True; 

просто.

N.B. это имеет другие побочные эффекты. В моем случае я использовал шрифты с стандартными спецификациями по размеру, которые масштабировались отлично, когда это было ложным, и получили ультра-размытое, когда это было правдой. (Я просто сделал шрифты больше, но я уверен, что это не единственный эффект от установки этого параметра.)

Смежные вопросы