Samba DEBUG SYSTEM
来源:互联网 发布:数据库lower 编辑:程序博客网 时间:2024/06/05 19:23
DEBUG书写规则
>debugfile<:=={>debugmsg<}
>debugmsg<:==>debughdr<’/n’>debugtext<
>debughdr<:==’[’TIME’,’LEVEL’]’FILE’:’[FUNCTION]’(’LINE’)’
>debugtext<:=={>debugline<}
>debugline<:==TEXT’/n’
其中,
TIME 时间戳,
LEVEL DEBUG级别,
FILE DEBUG信息产生的源文件,
FUNCTION DEBUG信息产生的函数,
LINE DEBUG信息产生的行数,不支持 __FUNCTION__ 宏的显示不出来,
TEXT 不包含/n的DEBUG信息
EG:
[2011/03/17 08:33:46, 3] smbd/process.c:switch_message(914)
switch message SMBclose (pid 12153) conn 0x7f60e9a2d330
[2011/03/17 08:33:46, 3] smbd/reply.c:reply_close(3298)
close directory fnum=6574
DEBUG()宏
DEBUG(para1, para2);
其中,
para1 DEBUG级别,凡是小于等于全局变量DEBUGLEVEL的,该DEBUG信息将输出到日志,
para2 DEBUG信息,即书写规则中的TEXT。在TEXT中,每遇到'/n',将产生一条新的日志(书写规则中的debugfile);没遇到'/n'时,追加TEXT。
EG:
DEBUG(0, ("The test returned "));
if(test())
{
DEBUG(0, ("True"));
}
else
{
DEBUG(0, ("False"));
}
DEBUG(0, ("./n"));
假设test() == true,则会输出:
[2010/07/30 16:00:51, 0] file.c:function (256)
The test returned True.
DEBUGADD()宏
DEBUGADD(para1, para2);
其中,
para1 DEBUG级别,凡是小于等于全局变量DEBUGLEVEL的,该DEBUG信息将输出到日志,
para2 DEBUG信息,即书写规则中的TEXT。在TEXT中,每遇到'/n',将产生TEXT新行;没遇到'/n'时,追加。它与DEBUG()的区别就是,它从不产生书写规则中的debughdr。
EG:
DEBUG(0, ("This is the first line./n"));
DEBUGADD(0, ("This is the second line./n This is the third line./n"));
输出:
[2010/07/30 16:00:51,0] file.c:function(512)
This is the first line.
This is the second line.
This is the third line.
DEBUGLVL()宏
BOOL DEBUGLVL(para1);
其中,
para1 DEBUG级别,凡是小于等于全局变量DEBUGLEVEL的,该宏返回true,
该函数主要为了解决书写规则中TEXT太长造成的不便。
EG:
DEBUG(3, ("send_local_master_announcement: type %x forname %s on subnet %s forwork group, type, global_myname, subrec->subnet_name, work->work_group));
可以替换为:
DEBUG(3, ("send_local_master_announcement: "));
DEBUGADD(3, ("type %x forname %s", type, global_myname));
DEBUGADD(3, ("on subnet %s", subrec->subnet_name));
DEBUGADD(3, ("for work group %s/n", work->work_group));
更可以替换为:
if(DEBUGLVL(3))
{
dbgtext("send_local_master_announcement: ");
dbgtext("type %x forname %s", type, global_myname);
dbgtext("on subnet %s", subrec->subnet_name);
dbgtext("for workgroup %s/n", work->work_group);
}
dbgtext()函数
用于调用相关函数输出DEBUG信息到日志文件,即输出书写规则中的TEXT。
函数调用vslprintf()函数对TEXT格式化后,调用format debug text()函数将TEXT输出。
一般在DEBUGLVL()宏中使用。
dbghdr()函数
用于输出DEBUG信息中的头信息,即输出书写规则中的debughdr。
不对输出内容进行格式化处理。
一般在DEBUG()宏 & DEBUGADD()宏中使用。
format debug text()函数
用于输出DEBUG信息到日志文件,即输出书写规则中的TEXT。
函数将要输出的TEXT保存到buffer中,直到找到一个'/n',增加缩进,调用Debug1()函数,输出TEXT到日志,并清空buffer。
- Samba DEBUG SYSTEM
- Samba Character Handling System
- mount samba file system
- Linux system samba案例
- System.Diagnostics.Debug和System.Diagnostics.Trace
- System.Diagnostics.Debug和System.Diagnostics.Trace
- System.Diagnostics.Debug和System.Diagnostics.Trace
- System.Diagnostics.Debug和System.Diagnostics.Trace
- OpenRisc-56-Advanced Debug System
- logger.debug和system.out
- debug 4gl _ about TipTop System
- Debug System Hang with “magic SysRq key"
- system verilog学习笔记assertion & debug
- Samba
- Samba
- Samba
- samba
- Samba
- Puppet安装配置日志(源码安装)
- SqlBulkCopy类数据导入(自己测试例子)
- 第十二节--SQLite的基本操作的应用(一)
- BlazeDS知识积累
- 找个同道中人
- Samba DEBUG SYSTEM
- 《Spring技术内幕》学习笔记3——IoC容器载入Bean定义资源文件
- 获取当前输入框的输入法
- Activity,Task和task栈
- MSChart报表的安装使用
- 管理杂谈
- 文件系统过滤驱动开发(一)—Win32底层开发小组
- JAVA API系列----基本数据类型的对象包装类
- flex j2EE 例子 和BlazeDs 关于MessageBroker,endpoints 和 channel