Debugging 无法检查Indy OneExecute事件中的变量

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);

将Indy与Delphi XE8一起用于Tcp服务器应用程序时,我需要检查OnExecute事件中的一些局部变量

但是设置断点我不明白为什么会出现错误“E2003未声明标识符” 试图检查或观察局部变量,如帧

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,所以我不会浪费时间去理解发生了什么。至少我可以依赖旧的调试方法:-)