Я часто ошибочно вхожу в код, который мне неинтересен при отладке в Delphi.
Начнем с того, что я знаю, что вы можете перешагнуть с F8, и что вы можете перейти к определенной строке с помощью f4.
Пример:
function TMyClass.DoStuff():Integer;
begin
// do some stuff
bla();
end;
procedure TMyClass.Foo()
begin
if DoStuff()=0 then // press F7 when entering this line
beep;
end;
Пример: я хочу перейти в метод DoStuff(), нажав F7, но вместо того, чтобы идти туда, я сначала заканчиваю FastMM4.FastGetMem(), который представляет собой массивный блок кода сборки, который, очевидно, мне неинтересен в настоящий момент.
Есть несколько способов обойти это, и я не люблю их:
-
Добавьте точку останова на "bla" (почти бесполезно, если вы хотите только войти в DoStuff в особых случаях, например, итерация 23498938);
-
Вместо того, чтобы нажимать F7, вручную переместите курсор на "bla" и нажмите F4 (работает для этого простого примера. На практике это не так);
-
В случае FastMM: временно отключить fastmm;
Есть ли способ намекнуть IDE, что я никогда заинтересован в том, чтобы переходить в определенный блок кода, или мне всегда приходится устанавливать дополнительные контрольные точки или использовать F4, чтобы избежать этого
Я надеюсь на какую-то магическую директиву компилятора, например {$ NODEBUG BEGIN/END} или что-то в этом роде.
В большинстве случаев возможность исключения целых единиц будет достаточно тонкой для меня, но возможность избежать определенных методов или даже строк кода будет еще лучше.
Обновление: возможно, codegear должен ввести что-то вроде пропусков (в отличие от точек останова): -)