Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ember.js/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
DelphiXE中的异常位置在调试器中未正确定位?_Delphi_Debugging_Delphi Xe - Fatal编程技术网

DelphiXE中的异常位置在调试器中未正确定位?

DelphiXE中的异常位置在调试器中未正确定位?,delphi,debugging,delphi-xe,Delphi,Debugging,Delphi Xe,调试器找不到异常的行,它可能是由于深度或延迟 代码: procedure-LoadLogo; 常数 RES_APP_LOGO='AppAboutLogo'; 变量 resourceStream:TResourceStream; 开始 尝试 resourceStream:=TResourceStream.Create(HInstance、RES\u APP\u LOGO、RES\u TYPE\u FXRESOURCES); resourceStream.Position:=0; ImageLogo

调试器找不到异常的行,它可能是由于深度或延迟

代码:

procedure-LoadLogo;
常数
RES_APP_LOGO='AppAboutLogo';
变量
resourceStream:TResourceStream;
开始
尝试
resourceStream:=TResourceStream.Create(HInstance、RES\u APP\u LOGO、RES\u TYPE\u FXRESOURCES);
resourceStream.Position:=0;
ImageLogo.Picture.Bitmap.LoadFromStream(resourceStream);//-->原因例外(A)
刷新();
最后
FreeAndNil(资源流);
结束;
结束;
过程TForm.Initialize;
开始
//做点什么。。。。
LoadLogo()//(C)

另一个函数()// 当您使用调试DCU时,您需要使用调用堆栈来查看执行是如何到达抛出的。调试器无法在引发异常的时间点之前中断任何时间


如果没有调试DCU,调试器只能在具有调试信息的代码行中断。这必须在代码中的某个地方。

根据我的经验,如果停止位置与断点不匹配,则源代码的可见性有问题,即它与编译不同步。在IDE中意外地打开源代码的一个副本也是很容易的,这似乎会混淆IDE,并且如果经常在该窗口中停止从另一个窗口编译,则会出现这种情况。

您所描述的确实发生了,但OP所描述的并不是这样
procedure LoadLogo;
const
  RES_APP_LOGO = 'AppAboutLogo';
var
  resourceStream : TResourceStream;
begin
  try
    resourceStream := TResourceStream.Create( HInstance, RES_APP_LOGO, RES_TYPE_FXRESOURCES );
    resourceStream.Position := 0;
    ImageLogo.Picture.Bitmap.LoadFromStream(resourceStream); //---> causes exception (A)
    Refresh();
  finally
    FreeAndNil(resourceStream);    
  end;
end;

procedure TForm.Initialize;
begin

  //do something....

  LoadLogo(); //(C)

  AnotherFunction();  //<----- debugger points here (B)

end; 

procedure TForm.CreateCreate(Sender : TObject);
begin
  Initialize();
end;