加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

在Delphi中:如何在调试时跳过代码段?

发布时间:2020-12-15 10:08:48 所属栏目:大数据 来源:网络整理
导读:在Delphi中调试时,我经常不小心加入了我不感兴趣的代码. 让我们开始说,我知道你可以用F8来过渡,你可以用f4跑到一条线上. 例: function TMyClass.DoStuff():Integer;begin // do some stuff bla();end;procedure TMyClass.Foo()begin if DoStuff()=0 then //
在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”上添加一个断点(几乎没用,如果你只想在特殊的场合进入DoStuff,像迭代23498938);
>而不是按F7,手动将光标移动到“bla”,然后按F4(为这个简单的例子而工作).
>在FastMM的情况下:暂时禁用fastmm;

有没有办法提示IDE,我从来没有兴趣进入某个代码块,或者我总是要设置额外的断点或使用F4来试图避免这一点?

我希望像{$NODEBUG BEGIN / END}之类的一些魔术编译器指令,或者类似的东西.

在大多数情况下,能够排除整个单元对我来说将是一个很好的粒度,但是能够避免某些方法,甚至代码行甚至更好.

更新:也许代码应该引入像点数(而不是断点):-)

解决方法

有一个“魔术节点开关”. {$D-}将禁用生成调试代码.将其放在您的FastMM单元的顶部,您不会最终跟踪它.如果你最终不会在一个功能中,SHIFT-F8会很快让你出去. (警告:请勿在堆叠中使用的汇编代码例程中使用SHIFT-F8,否则可能会导致不可预测的行为,而不是F4).

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读