RSS
 

 

Как выводить отладочную информацию в лог среды Delphi?

04 Янв


Для отладки бывает полезно получить лог выполнения программы с нужными отладочными данными.  Не всегда для отладки возможно применить точки останова, так как из-за остановки может нарушится логика работы приложения, могут быть пропущены события и т.п.

В таких случаях отладку не останавливая работу приложения можно производить выводя в EventLog нужную вам информацию.

Как вывести в EventLog среды Delphi отладочную информацию во время выполнения программы?


Как всегда все элементарно и просто.
Для этого существует процедура Win API OutputDebugString
Параметром передается указатель на строку которая будет выведена в отладочный лог среды IDE. Также она будет передана и другому отладчику если из под него запустить ваше приложение.

Я часто использую эту функцию для отладки выполнения сложных программ с выводом лога работы. Лог работы программы можно посмотреть и после ее завершения.
Однако для этого я использую процедуру обертку dbgLog, что бы упростить вызов и восприятие в дальнейшем EventLogа.

Вот код обертки:

unit ZFunctions;
interface
uses
  ... Windows,...  ;
 
procedure dbgLog(OutputDbgString: String);
 
implementation
...
procedure dbgLog(OutputDbgString: String);
begin
 OutputDebugString(PWideChar(' - '+OutputDbgString+'     - '));
end;
Код очень простой, однако вызов упрощается и в отладочном логе событий отправленный вами текст лучше выделяется.

Примерно как выглядит отладка и ваши сообщения в окне EventLoga.

Чтобы в EventLog не сыпалось куча ненужных сообщений настройте его по своему усмотрению.


 
 

Метки: , , 04.01.2011