Debugging 无法检查Indy OneExecute事件中的变量
将Indy与Delphi XE8一起用于Tcp服务器应用程序时,我需要检查OnExecute事件中的一些局部变量 但是设置断点我不明白为什么会出现错误“E2003未声明标识符” 试图检查或观察局部变量,如帧Debugging 无法检查Indy OneExecute事件中的变量,debugging,delphi-xe7,indy10,Debugging,Delphi Xe7,Indy10,将Indy与Delphi XE8一起用于Tcp服务器应用程序时,我需要检查OnExecute事件中的一些局部变量 但是设置断点我不明白为什么会出现错误“E2003未声明标识符” 试图检查或观察局部变量,如帧 procedure TformMain.IdTCPServer1Execute(AContext: TIdContext); var frame, answer: string; begin ... frame := ReadLn(cETX, 50, 1024);
procedure TformMain.IdTCPServer1Execute(AContext: TIdContext);
var
frame, answer: string;
begin
...
frame := ReadLn(cETX, 50, 1024);
...
Thread.Queue(nil, procedure
begin
mmLog.Lines.Add(AContext.Binding.IP +'Bad Frame: '+ frame);
end
...
end;
相反,在我用来向GUI发送信息的线程队列中,我可以正确地检查Binding.IP,dispite to local string
你知道我是否以正确/错误的方式使用Delphi调试器吗?你的断点在哪里?在
IdTCPServer1Execute内部
或在anon方法内部?在IdTCPServer1Execute内部,在frame:=ReadLn()之后;检查帧局部变量。关于frame
的一点是,它是由anon方法捕获的。它不再存在于IdTCPServer1Execute
的堆栈框架中。现在它是的数据成员。我想这只是混淆了调试器。Delphi的调试器有点像这样。除了求助于跟踪调试之外,您没有什么可以做的。非常感谢David,所以我不会浪费时间去理解发生了什么。至少我可以依靠旧的调试方法:-)你的断点在哪里?在IdTCPServer1Execute内部
或在anon方法内部?在IdTCPServer1Execute内部,在frame:=ReadLn()之后;检查帧局部变量。关于frame
的一点是,它是由anon方法捕获的。它不再存在于IdTCPServer1Execute
的堆栈框架中。现在它是的数据成员。我想这只是混淆了调试器。Delphi的调试器有点像这样。除了求助于跟踪调试之外,您没有什么可以做的。非常感谢David,所以我不会浪费时间去理解发生了什么。至少我可以依赖旧的调试方法:-)