Vasya  Ar
Vasya Ar

Reputation: 29

XE8 64 bit Debugging object derived from TInterfacedObject

Suppose I have a class TCar which supports interface ICar and is derived from TInterfacedObject.

program Project1;

{$APPTYPE CONSOLE}

{$R *.res}

uses
  System.SysUtils;

type
    ICar = interface
        ['{EF3294ED-7D3B-4B5D-8E10-FA9E406477D2}']
        procedure Start;

    end;

    TCar = class(TInterfacedObject, ICar)
    private
        procedure Start;
    end;

procedure TCar.Start;
begin
    WriteLn('Started!');
end;

var
    car: ICar;
begin
  try
    car := TCar.Create;

    car.Start;
    { TODO -oUser -cConsole Main : Insert code here }
  except
    on E: Exception do
      Writeln(E.ClassName, ': ', E.Message);
  end;
end.

When I debug the code above in 32 bit mode I am able to step in to method "Start" of the TCar class, moreover when I hover mouse over car variable I see that it is "TCar(address) as ICar" but when I try to debug this code in 64 bit mode I cannot step in to method "Start" (the debug execution just passes to the next line below the method call without stepping in) and I see "Pointer(address) as ICar" when I move mouse over car variable. What am I doing wrong? Being able to to step in to methods is very crucial in my project.

The Delphi XE8 has been installed recently on a clean machine and no antivirus has been installed.

Upvotes: 1

Views: 102

Answers (0)

Related Questions