Board logo

Subject: 【我是因为想骂人才注册的】 cndebug 开发人员真的应该被骂 [Print This Page]

Author: linlance    Time: 2008-2-2 22:24     Subject: 【我是因为想骂人才注册的】 cndebug 开发人员真的应该被骂

我先说一下,我刚才骂了半天,这个论坛居然标题超过长度,就把帖子内容清空了,靠。也不知道谁架设的论坛,3年前的论坛都不会这样的。

刚才的都没有了,我重新打一下:
看看开发大大们对于CNDEBUG的回答:
==========================================
kendling (小冬)  发表于 2007-4-11 07:46   试一下在工程选项里定义DEBUG。
http://bbs.cnpack.org/viewthread.php?tid=1529&highlight=cndebug

Passion (LiuXiao) 发表于 2006-8-10 08:52  DEBUG 需要在 Project Options 对话框里头设置

http://bbs.cnpack.org/redirect.php?goto=newpost&tid=1157
==========================================

以上的回答,能让人明白怎么做嘛?虽然也许对大大们来说,跟1+1等于几的问题一样,从未站在别人的角度考虑过问题。
也就是根本不站在客户的角度上看问题。技术人员的悲哀啊。。。

这是我唯一找到的说明,对老外的:
==========================================
shenloqi 灌水科科长 发表于 2007-9-14 13:48  project options -> Directories/Conditionals

http://bbs.cnpack.org/viewthread.php?tid=1791&highlight=cndebug
==========================================

写个说明真的那么难嘛?我写第二遍了,第一遍刚才被狗屁论坛给清空了:
==========================================
在菜单Project-->option-->Directories/Conditionals 中的Conditionals 区域填入{$DEFINE DEBUG} 或者DEBUG
就可以全局使用DEBUG了,最后编译的时候如果不想输出调试信息,修改为 NDEBUG 就可以了。

在需要调试的单元里如下位置,加入红色字部分:
implementation
{$IFDEF DEBUG}
uses
  CnDebug;
{$ENDIF}


在需要调试地方加入红色字部分:
{$IFDEF DEBUG}
  CnDebugger.StopTimeMark(1);
  CnDebugger.LogLeave('Leave btn1Click.');
{$ENDIF}


在更多的方法,就自行看DEBUG.PAS吧,哈哈哈:)




[ 本帖最后由 linlance 于 2008-2-2 22:44 编辑 ]
Author: linlance    Time: 2008-2-2 22:46

这个说明连安装包里面的帮助文件都没有写清楚。。。

不得不承认,这个工具包非常非常棒,值得推荐。我放在我的精品收藏里面了。
Author: gzf205    Time: 2008-2-2 22:48

h

[ 本帖最后由 gzf205 于 2008-2-2 22:50 编辑 ]
Author: Passion    Time: 2008-2-2 23:29

实际上,网站上的组件帮助文档里头的《CnDebugger接口帮助文档 》里头有这部分的说明。
文档中心见下:
http://www.cnpack.org/showlist.php?id=3&lang=zh-cn

组件包的Doc目录下也有这个文档。
此文档的第二节CnDebugger对象说明了在Project Options中设置,不过确实没有写到“Directories/Conditionals 中的Conditionals 区域”这么详细。

CnPack的文档和帮助部分一直由于人力不足而做的很不完善,感谢您的指出。
其实我们也希望有更多的朋友参与。
Author: niaoge    Time: 2008-2-4 09:04

1. ,"这个论坛居然标题超过长度,就把帖子内容清空了"--我不敢骂,怕老大踢我
2.CnDebug,目前输出只能有字符串,不像codesite能够直接输入各种类型,我说的是直接,这个方便
Author: Passion    Time: 2008-2-4 09:31

niaoge,你说的直接输入类型具体是指什么?CnDebug也提供了部分直接输出基本类型的函数。
Author: niaoge    Time: 2008-2-4 10:16

用overload 统一统出函数的函数名像 LogMsg,LogInteger,LogEnter,LogLeave,LogFmt,LogStrings,LogFmt....
统一起来,能统一多少就统一多少,方便搞,另外加一些稍不常用的类型word,DWORD,LongWord,Char,PChar...(不知道有没有,老大,如果我说错了,不能怪我啊),或其它进制输出
特别是其它进制的输出,可以直接在windows.pas内查找到输入的是什么,因为人工找的话还要先做转换,
像 VK_LEFT,VK_HOME等,能否直接用名称而不用数据代替(不过这个难度好大 )

{$IFDEF DEBUG}
uses
  CnDebug;
{$ENDIF}

略显麻烦,能否做一个单独的单元,直接让用户加在每个工程的uses下面, 让这个单元直接一次性控制是否要输出,

[ 本帖最后由 niaoge 于 2008-2-4 10:22 编辑 ]
Author: Passion    Time: 2008-2-4 11:01

{$IFDEF DEBUG}
uses
  CnDebug;
{$ENDIF}
这样的代码如果怕麻烦,可以直接使用
uses
  CnDebug;
CnDebug单元中如未定义DEBUG,内部也基本不做什么,不占什么资源。
你说的工程uses下面加单元的法子可以考虑,但即使工程uses处加单元,用户的各个单元还是得uses Cndebug才能输出信息哇。
Author: Passion    Time: 2008-2-4 11:14

不常用的这些类型word,DWORD,LongWord,Char,PChar..Cndebug里头确实没加上去。不过这部分加上去也不是太困难。niaoge有兴趣改改它不?
Author: niaoge    Time: 2008-2-4 16:04

老大,我现在没有时间啊,再说cndebuger的代码我还不熟悉呢,
我现在一直用codesite调试,只要codesite还没有收钱,就先不管啦
做一个公共单元,很容易的,这样用户正式发布的时候不需要再把这个公共单元清理掉,也不必考虑占用资源的问题
因我不常用cnDebug,暂把格式写下来

unit usesCndebug
{$IFDEF DEBUG}
uses
  CnDebug;
{$ENDIF}

procedure LogMsg(..);
procedure LogInteger(..);
procedure LogEnter(..);
procedure LogStrings(..);
procedure LogFmt(..);

implementation
procedure LogMsg(..);
begin
  {$IFDEF DEBUG}
    CnDebuger.LogMsg(..);
  {$ENDIF}
end;
procedure LogInteger(..);
begin
  {$IFDEF DEBUG}
    CnDebuger.LogInteger(..);
  {$ENDIF}
end;
procedure LogEnter(..);
begin
  {$IFDEF DEBUG}
    CnDebuger.LogEnter(..);
  {$ENDIF}
end;
procedure LogStrings(..);
begin
  {$IFDEF DEBUG}
    CnDebuger.LogStrings(..);
  {$ENDIF}
end;
procedure LogFmt(..);
begin
  {$IFDEF DEBUG}
    CnDebuger.LogFmt(..);
  {$ENDIF}
end;

end.

[ 本帖最后由 niaoge 于 2008-2-4 16:16 编辑 ]
Author: kendling    Time: 2008-2-29 19:12

这个公共单元只是对CnDebugger的函数多加了一层,应该跟直接调用没多大差别。
Author: farce    Time: 2010-7-15 10:04     Subject: 还是没明白怎么使用

在PROJECT的OPTION中设置了,然后怎么办?怎么处理?不使用这{$IFDEF DEBUG}呢?到底是做什么用的?与ExceptionLog有什么区别?
Author: Passion    Time: 2010-7-16 10:39

Project Options里头设置了DEBUG的话,就可以在程序中用CnDebugger.Log系列函数输出信息到CnDebugViewer来查看。

如果未设置DEBUG,可以直接用CnDebugger.Trace系列函数输出信息。




Welcome to CnPack Forum (http://bbs.cnpack.org/) Powered by Discuz! 5.0.0