Как просмотреть вывод OutputDebugString?
Я хочу использовать OutputDebugString()
в моем приложении, а затем иметь возможность показать его в отдельном просмотрщике при развертывании приложения в поле.
то есть, я не хочу менять флаг и перестраивать мой .exe для включения и выключения отладки.
Googling вокруг, похоже,DebugView должны справиться с этим, но ни он, ни TraceTool показать любой вывод из этого кода.
unit Unit1;
interface
uses
Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls;
type
TForm1 = class(TForm)
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.FormCreate(Sender: TObject);
begin
OutputDebugString(PChar('Hello, wurld'));
end;
end.
Я читал документация, безрезультатно, и увидеть, что другие имели аналогичные проблемы, но не опубликовали решение.
есть ли решение?
5 ответов
составе gexperts имеет Средство просмотра отладки и устройство, которое вы добавляете в свое приложение, которое сделает это за вас, даже в XE2 Starter. Вижу DebugIntf
группы и GExpertsDebugWindow.exe
приложение, которое оно включает. Они работают под XE2 Starter (и почти все другие версии Delphi).
GExperts также включает в себя множество других улучшений IDE и редактора, которые великолепны, и, конечно, они были вокруг навсегда, поэтому они довольно твердые инструменты.
на DebugView
инструмент работает нормально; только не забудьте запустить приложение напрямую (без Delphi IDE или другого отладчика).
в любом случае, естественный способ просмотра OutputDebugString вывод для приложения Delphi заключается в использовании среды IDE Delphi и
CnWizards содержит инструмент, CnDebugViewer.exe, который может захватывать OutputDebugString (должен запускаться как администратор в Windows 7).
не как DbgView, CnDebugViewer может создавать отдельные вкладки для разных приложений.
CnPack содержит блок, CnDebug.первенство. С помощью этого устройства можно отслеживать типизированные объекты, коллекции, исключения, memdump и т. д. С CnDebug.pas, вы также можете установить, следует ли автозапуск CnDebugViewer, дамп в файл при отправке отладки сообщений и т. д.
одна из проблем с использованием OutputDebugString заключается в том, что другие программы также могут использовать его, загромождая ваш журнал: отладка вызовов OutputDebugString в Delphi.
вы могли бы использовать CodeSite Express, который мы были очень счастливы в день-в-день использовать: http://www.raize.com/devtools/codesite/Default.asp.
в моей версии XE5 мне пришлось включить опцию "выходные сообщения" в разделе:
Сервис > Параметры > Отладчик Функции > Журнал Событий
Я не помню, как отключил его.