Один из вариантов:
program Project1;
{$APPTYPE CONSOLE}
{$R *.res}
uses
System.SysUtils;
var P2X: PINT;
procedure ReasonProcedure(p: TProc);
begin
p;
end;
procedure TestProcedure;
var
x: integer;
procedure DebugProcedure;
begin
x := 1;
end;
begin
P2X:=@x; // Keep address of local variable in P2X pointer //
x := 0;
DebugProcedure;
ReasonProcedure(procedure
begin
x := 2;
end);
end;
begin
TestProcedure;
end.
, а затем поставить часы на P2X ^
Я не уверен на 100%, что он будет работать с анонимными методами, но я верю будет.
Если вы не хотите добавлять новую переменную, содержащую указатель на ту, которую вы хотите наблюдать, вам нужно будет поставить точку останова на запись в TestProcedure, выполнить Evaluate на @ x, x, чтобы получить его адрес, а затем ввести Watch on PINT ($ ) ^
Обратите внимание, однако, что в последнем случае вам придется обновлять sh часы на каждом последующая запись TestProcedure, так как переменная находится в стеке и в следующий раз может быть по другому адресу.