两个调试打印函数
来源:互联网 发布:淘宝如何解绑银行卡 编辑:程序博客网 时间:2024/05/15 23:46
(一) 应用层调试打印
#if 1
#define isprint(c) ((c >= 'a' && c <= 'z') || (c >= 'A' && c <= 'Z') || (c >= '0' && c <= '9'))
static inline void br_dump_raw (const unsigned char *buf, unsigned len)
{
int i;
char lbuf [80];
int lbix = 0;
/*
1 2 3 4 5 6 7
01234567890123456789012345678901234567890123456789012345678901234567890123
280: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .................
*/
memset(lbuf, ' ', 79);
lbuf [79] = 0;
for (i = 0; i < len; i++) {
if ((i & 15) == 0) {
if (lbix) {
lbuf[53]=' ';
lbuf[54]=' ';
lbuf[55]=' ';
lbuf[73]='\0';
printf ("%s\n", lbuf);
}
memset(lbuf, ' ', 79);
lbuf [79] = 0;
sprintf (lbuf, "%03x:", i);
lbix = 4;
} else if ((i & 7) == 0)
lbuf [lbix++] = ' ';
if(isprint(buf[i])) {
lbuf[56+(i%16)]=buf[i];
} else {
lbuf[56+(i%16)]='.';
}
sprintf (&lbuf [lbix], " %02x", buf [i]);
lbix += 3;
lbuf[lbix]=' ';
}
lbuf[53]=' ';
lbuf[54]=' ';
lbuf[55]=' ';
lbuf[73]='\0';
printf ("%s\n", lbuf);
}
#endif
(二) 内核调试打印
- 两个调试打印函数
- 简单调试打印函数
- ibatis调试,打印sql的函数。
- MFC 如何调用打印调试信息函数
- C 打印调试信息的宏函数
- 集中打印调试信息的模版函数
- Android 打印函数调用堆栈调试
- 打印一段内存的函数,调试常用
- 两个很有用的windows调试函数
- 打印调试
- 调试打印
- 打印调试
- 加了几个RETAILMSG调试信息打印函数,导致异常。
- javascript调试必备代码:打印对象或数组函数 vardump()
- 调试时打印运行代码所在源文件、行号、函数名
- Android 中调试手段 打印函数调用栈信息
- ios-调试程序打印详细信息 文件名 函数名 行号
- ios-调试程序打印详细信息 文件名 函数名 行号
- 关于JavaScript中apply与call的用法意义及区别
- 树形dp 219D Choosing Capital for Treeland
- error LNK2001: unresolved external symbol
- ValidationExpression验证规则
- Python的字典的items(), keys(), values()
- 两个调试打印函数
- 寻找·服务!
- 用来简化开发任务的20个JavaScript类库
- JAVA 程序中Log4j输出详细错误堆栈信息
- openDrive外链
- B. Sum of Digits
- UG NX7.5 采用VS2008调试方法
- 【初探移动前端开发02】移动设备的页面
- 部署在Tomcat上应用程序的远程调试