gpt4 book ai didi

delphi - 在德尔福: How to skip sections of code while debugging?

转载 作者:行者123 更新时间:2023-12-03 14:36:10 26 4
gpt4 key购买 nike

在 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;

示例:我想通过按 F7 进入 DoStuff() 方法,但我没有进入该方法,而是首先进入 FastMM4.FastGetMem(),这是一大堆汇编代码,显然我不感兴趣此刻。

有几种方法可以解决这个问题,但我不喜欢其中任何一种:

  • 在“bla”上添加断点(如果您只想在特殊场合(例如迭代 23498938)进入 DoStuff,则几乎没有用);

  • 不要按 F7,而是手动将光标移动到“bla”,然后按 F4(对于这个简单的示例有效。实际上,它不会);

  • 如果是 FastMM:暂时禁用 fastmm;

是否有任何方法可以提示 IDE 我从不有兴趣单步执行某个代码块,或者我总是必须设置额外的断点或使用 F4 来尝试避免这种情况?

我希望有一些神奇的编译器指令,例如 {$NODEBUG BEGIN/END} 或类似的东西。

在大多数情况下,能够排除整个单元对我来说已经足够细粒度了,但能够避免某些方法甚至代码行会更好。

更新:也许 codegear 应该引入类似跳过点(而不是断点)的东西:-)

最佳答案

有一个“神奇的nodebug开关”。 {$D-} 将禁用调试代码的生成。将其放置在 FastMM 单元的顶部,您最终将不会追踪到它。如果您最终进入了一个您不想参加的功能,SHIFT-F8 会很快让您退出。 (警告:不要在使用堆栈的汇编代码例程内部使用 SHIFT-F8。可能会导致不可预测的行为。请改为按 F4 到其底部。)

关于delphi - 在德尔福: How to skip sections of code while debugging?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/449159/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com