Lazarus中文社区

 找回密码
 立即注册(注册审核可向QQ群索取)

QQ登录

只需一步,快速开始

Lazarus IDE and 组件 下载地址版权申明
查看: 4415|回复: 9

lazarus调试技巧(抛出异常、内存泄漏检查)

[复制链接]

该用户从未签到

发表于 2014-1-23 15:46:33 | 显示全部楼层 |阅读模式
抛出异常:
我们一般使用raise Exception.Create('异常');来抛出一个异常,可是这样来做,不能得到单元名和行号,lazarus支持assert函数,表达式为false即可抛出,并可得到单元名和行号,可更方便的调试代码。
使用assert函数之前需要在编译选项内将开关打开,如下图:

也就是说,你可以在开发调试的时候打开此开关,再正式发布的时候关闭开关让程序继续执行。
使用方法如下代码:
  1. try
  2.   assert(false,'异常');
  3.   //raise Exception.Create('异常');
  4.   showmessage('错误信息:');
  5.   except
  6.   on E: Exception do
  7.     showmessage('错误信息:' + e.Message);
  8.   end;  
复制代码
内存泄漏检查:
开关如下,打开此开机即可在关闭程序的时候显示内存是否泄漏,泄漏的位置等信息。


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册(注册审核可向QQ群索取)

x
回复

使用道具 举报

  • TA的每日心情
    开心
    2020-9-18 14:51
  • 签到天数: 47 天

    [LV.5]常住居民I

    发表于 2014-1-23 16:22:06 | 显示全部楼层
    谢谢分享。
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    发表于 2014-2-5 09:41:40 | 显示全部楼层
    嗯,感谢分享,虽然正在用。
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    发表于 2014-2-12 09:49:01 | 显示全部楼层
    太好了,正是想要的
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    发表于 2014-2-12 14:00:24 | 显示全部楼层
    不管怎么样,都是不错的。
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    发表于 2014-2-12 18:22:04 | 显示全部楼层
    泄露的位置能定位到具体的代码吗?
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    发表于 2014-4-17 17:36:45 | 显示全部楼层
    good job
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    发表于 2014-8-23 07:24:33 | 显示全部楼层
    很好的经验哦
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    擦汗
    昨天 14:30
  • 签到天数: 2485 天

    [LV.Master]伴坛终老

    发表于 2014-8-23 09:06:58 | 显示全部楼层
    实用技巧,受教了
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    发表于 2014-9-6 19:41:52 | 显示全部楼层
    好东西啊,还真是不知道啊,毕竟是新人啊,不能和老鸟比啊。
    回复 支持 反对

    使用道具 举报

    *滑块验证:

    本版积分规则

    QQ|手机版|小黑屋|Lazarus中国|Lazarus中文社区 ( 鄂ICP备16006501号-1 )

    GMT+8, 2025-5-2 01:12 , Processed in 0.066987 second(s), 11 queries , Redis On.

    Powered by Discuz! X3.4

    Copyright © 2001-2021, Tencent Cloud.

    快速回复 返回顶部 返回列表