• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

Delphi调试方法

原作者: [db:作者] 来自: [db:来源] 收藏 邀请
以下内容是个人在使用中的总结,不足之处还望指正。
第一种是堆栈。快捷键是Ctrl+Alt+S
比如过程A和B都调用了过程C,或者不只如此,过程C在整个程序中大量地被调用。但现已知过程C在一次调用中因参数错误而运行失败了。怎样找出是哪一个过程传给C错误的参数了?这种情况下,一句一句跟踪是比较麻烦的。其实只要在过程C的开始的地方打个断点,中断的时候调出堆栈窗口就可以看到是哪一个过程调用C了,不仅如此,在A中调用B,在B中调用C,这一过程都可以看得一清二楚。在程序raise出一个异常而中断的时候也可以看出是从哪里调用了这段子程序的。

第二种是数据断点。菜单命令是Run->Add Break Point->Data Break Point
这个断点只能在运行时设。
举例如下:
要查看某全局变量或某类的属性何时被修改了的情况。例如要跟踪一个全局变量g_GlobalVar。在运行后中断程序,然后选Run->Add Break Point->Data Break Point。在地址一栏输入@g_GlobalVar,点OK即可。以后在这一变量被改变后就会中断(注意程序中断在改变这个变量的语句的下一条语句处,而不是本语句)



有时候调试的时候可以编码来实现动态断点:

if [Condition] then
asm
int 3;
end;

作用相当于设置条件断点,在条件比较复杂的情况下还是非常有用的

注意,这些调试语句需要使用编译条件控制以避免编译到正式的版本中。

鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap