Delphi 13 - Source file not found 'Oracle.pas' - Howto ignore and step into next helpful source line?

TKLB1

Member
In Delphi 13 (37.0.57242.3601), when there is a (legitimate) exception by DOA, such as "invalid username", the debugger tries to load 'Oracle.pas' to show the source lines.
However, when you click ignore, it then shows the CPU View, in "unknown file". This is not helpful and annoying, because from there on the "instruction next step F7/F8" are pretty much useleyy.

Previously in Delphi 10, it showed the next "useful source line" in the Debugger, i.e.
Code:
System._ClassCreate... System.pas:17494

We would like to keep using DOA in 'Binary' form, that is without the source option (because it might be the most important - but not the only 3rd party extension and not everyone has source available).

Does anyone know a setting how to "debug step into next useful source line" for D13?
Edited to add: yes, you can then do SHIFT-F7 which will step into the "next line with source code". Anyone knows how to make that permanent?

As a minimal reproducer: Start a blank project (new console application)
Code:
program Project1;

{$APPTYPE CONSOLE}

{$R *.res}

uses
  System.SysUtils, Oracle;

begin
  TOracleQuery.Create(nil); // set breakpoint here - and step into F7
end.
 

Attachments

  • step-into-reproducer.PNG
    step-into-reproducer.PNG
    13.8 KB · Views: 4
Last edited:
It looks like the DOA installer files for D13 have an Oracle.dcu DEBUG-build, that is, with line numbers.
This is verified by compiling a test project and looking at the map file

$ grep -i "line num" testproject.map | grep Oracle.pas
Line numbers for Oracle(Oracle.pas) segment .text
Line numbers for Oracle(Oracle.pas) segment .itext

an archived version of the DOA installer for Delphi 10.4 did not contain line numbers.

When there are no line numbers, no annoying "search for Oracle.pas" file should be displayed.

Is it possible to get a DOA installer that has the binary license type and no source information (i.e. "release" build)?

It seems the compiled .dcu is considerably larger for D13 compared to D12 or D10.3:

Code:
./Direct Oracle Access 414_d13/Units$ ls -sh Oracle.dcu && sha256sum Oracle.dcu
620K Oracle.dcu    b462a1ff6a17d0e82389353b78fba1fb0509d9dfa4ac2ee4fcc3907406c7f2d6  Oracle.dcu


./Direct Oracle Access 414_d12/Units$ ls -sh Oracle.dcu && sha256sum Oracle.dcu
572K Oracle.dcu    b05e05e5cc4d4e2a1aa95cfe219c94a45c55ba384a349b3ef554d9975dfdc035  Oracle.dcu


./Direct Oracle Access 414_d103/Units$ ls -sh Oracle.dcu && sha256sum Oracle.dcu
572K Oracle.dcu    9daea834ca8bfb228de7198dd669b93116e85c905d3e30ab47651cff70ec7a96  Oracle.dcu
 
Last edited:
Back
Top