Delphi #10Seattle critical Win64 debugger bug.

Delphi #10Seattle  critical Win64 debugger bug.
 
Hello. Does anyone work with debugging under Win64 configuration? All recent versions of Delphi (10 Seatle, XE8, XE7 and maybe more) have a critical bug that makes it impossible to work with Delphi at all. Debugger loses source code tracing immediately after the unloading of any DLL:

procedure TForm1.Button1Click (Sender: TObject);
var
   FileName: string;
   h: HModule;
   TestDllFunc: function: Integer;
begin
   FileName: = ExtractFilePath (GetModuleName (HInstance)) + 'DllProject.dll';
   if FileExists (FileName) then begin
     h: = LoadLibrary (PChar (FileName));
     if h <> 0 then begin
       TestDllFunc: = GetProcAddress (h, 'TestDll');
       if Assigned (TestDllFunc) then begin
         TestDllFunc;
       end;
       FreeLibrary (h);
     end;
     self.Caption: self.Caption + = '2';
   end;
end;

After the line FreeLibrary (h) CPU window appears and all debugging possible through CPU window only. Does anyone knows solution? Or nobody uses Delphi to develop Win64 applications?

Vote please for the post.

Source code for test projects available here, but it is simplest dummy LoadLibrary-FreeLabrary procedure:

https://www.dropbox.com/s/vyevayw78ruhcnz/TestDelphiX64.zip?dl=0

Link to QP
https://quality.embarcadero.com/browse/RSP-11121
https://www.dropbox.com/s/vyevayw78ruhcnz/TestDelphiX64.zip?dl=0

Comments

  1. I have seen similar things through the years. On 32 bit too. I usually put a breakpoint after where the debugger "lost it" to get on track again. I can not, of course, say if this is the same and the "trick" works. Trick or no, it's annoying enough.

    ReplyDelete
  2. Yes, we posted it to QC 1.5 years ago, but still no changes yet. We cannot upgrade to new delphi version because of such bugs.

    ReplyDelete
  3. Moving breakpoint to another line doesn't help in this case. I know about this trick, but now it is another bug, because it depends on freelibrary (not on breakpoint position).

    ReplyDelete

Post a Comment