kernel hexdump分析 (2.0)

原创 2013年12月04日 22:35:01

有的时候print_hex_dump_bytes循环打印很多信息的时候(大于1K)
用UART串口打印的信息总是会有丢失,估计是printk缓冲区的问题把,具体原因不是太清楚
于是自己写了个比较笨的dump函数,问题得到解决:

//每次打印128个字节(当然你也可以打印更多),只调用一次printk ,
// 而 print_hex_dump_bytes 则 最多32个字节 就调用一次printk

static void  dumpBuf(void * buf)
{
   unsigned char * temp;
   
   temp=(char *)buf;

   int i=0;
      printk(KERN_ERR  "[%s] \
%02x %02x %02x %02x %02x %02x %02x %02x \r\n \
%02x %02x %02x %02x %02x %02x %02x %02x \r\n \
%02x %02x %02x %02x %02x %02x %02x %02x \r\n \
%02x %02x %02x %02x %02x %02x %02x %02x \r\n \
%02x %02x %02x %02x %02x %02x %02x %02x \r\n \
%02x %02x %02x %02x %02x %02x %02x %02x \r\n \
%02x %02x %02x %02x %02x %02x %02x %02x \r\n \
%02x %02x %02x %02x %02x %02x %02x %02x \r\n \
%02x %02x %02x %02x %02x %02x %02x %02x \r\n \
%02x %02x %02x %02x %02x %02x %02x %02x \r\n \
%02x %02x %02x %02x %02x %02x %02x %02x \r\n \
%02x %02x %02x %02x %02x %02x %02x %02x \r\n \
%02x %02x %02x %02x %02x %02x %02x %02x \r\n \
%02x %02x %02x %02x %02x %02x %02x %02x \r\n \
%02x %02x %02x %02x %02x %02x %02x %02x \r\n \
%02x %02x %02x %02x %02x %02x %02x %02x \r\n",__func__,  \
	   	temp[i+0],temp[i+1],temp[i+2],temp[i+3],temp[i+4],temp[i+5],temp[i+6],temp[i+7], \
	   	temp[i+8],temp[i+9],temp[i+10],temp[i+11],temp[i+12],temp[i+13],temp[i+14],temp[i+15],\
	   	temp[i+16],temp[i+17],temp[i+18],temp[i+19],temp[i+20],temp[i+21],temp[i+22],temp[i+23],\
	   	temp[i+24],temp[i+25],temp[i+26],temp[i+27],temp[i+28],temp[i+29],temp[i+30],temp[i+31],\
	   	temp[i+32],temp[i+33],temp[i+34],temp[i+35],temp[i+36],temp[i+37],temp[i+38],temp[i+39],\
	   	temp[i+40],temp[i+41],temp[i+42],temp[i+43],temp[i+44],temp[i+45],temp[i+46],temp[i+47],\
	   	temp[i+48],temp[i+49],temp[i+50],temp[i+51],temp[i+52],temp[i+53],temp[i+54],temp[i+55],\
	   	temp[i+56],temp[i+57],temp[i+58],temp[i+59],temp[i+60],temp[i+61],temp[i+62],temp[i+63],\
	   	temp[i+64],temp[i+65],temp[i+66],temp[i+67],temp[i+68],temp[i+69],temp[i+70],temp[i+71],\
	   	temp[i+72],temp[i+73],temp[i+74],temp[i+75],temp[i+76],temp[i+77],temp[i+78],temp[i+79],\
	   	temp[i+80],temp[i+81],temp[i+82],temp[i+83],temp[i+84],temp[i+85],temp[i+86],temp[i+87],\
	   	temp[i+88],temp[i+89],temp[i+90],temp[i+91],temp[i+92],temp[i+93],temp[i+94],temp[i+95],\
	   	temp[i+96],temp[i+97],temp[i+98],temp[i+99],temp[i+100],temp[i+101],temp[i+102],temp[i+103],\
	   	temp[i+104],temp[i+105],temp[i+106],temp[i+107],temp[i+108],temp[i+109],temp[i+110],temp[i+111],\
	   	temp[i+112],temp[i+113],temp[i+114],temp[i+115],temp[i+116],temp[i+117],temp[i+118],temp[i+119],\
	   	temp[i+120],temp[i+121],temp[i+122],temp[i+123],temp[i+124],temp[i+125],temp[i+126],temp[i+127]);
   //}


 

kernel hexdump分析

驱动调试中,很多时候是二进制的,这个时候hexdump就是个非常有用的工具了。 不要再自己去实现类似的功能,kernel代码里面就有: 参考: kernel/lib/hexdump.c // 0...
  • liyongming1982
  • liyongming1982
  • 2013年12月04日 22:31
  • 2157

linux c之hexdump的实现

#include #include #include #include //http://androidxref.com/7.1.1_r6/xref/external/avahi/avah...
  • earbao
  • earbao
  • 2017年01月19日 14:49
  • 815

hexdump命令使用

hexdump命令是Linux下的打印16进制的利器,它可以按我们指定的格式输出16进制,特别有用,配合eeprom来用简直是绝配。 今天我们来介绍一个hexdump命令的使用: ...
  • ZYBASJJ
  • ZYBASJJ
  • 2012年08月16日 19:37
  • 24448

kernel hexdump分析 (2.0)

有的时候print_hex_dump_bytes循环打印很多信息的时候(大于1K) 用UART串口打印的信息总是会有丢失,估计是printk缓冲区的问题把,具体原因不是太清楚 于是自己写了个比较笨...
  • liyongming1982
  • liyongming1982
  • 2013年12月04日 22:35
  • 1207

hexdump Python2版本

  • 2014年05月12日 16:26
  • 5KB
  • 下载

Linux开发工具 — readelf、objdump、hexdump

本博文的主要内容是:1)readelf工具查看ELF文件的信息;2)hexdump工具查看这块内存;3)objdump工具对文件进行反汇编。 前一段时间对Linux不熟,所以很多命令不知道。学习C时...
  • liaoshengshi
  • liaoshengshi
  • 2014年10月20日 17:48
  • 889

hexdump 命令用法

NAME      hexdump - ascii, decimal, hexadecimal, octal dump SYNOPSIS       [-bcCdovx] [-e format_s...
  • cqbamboo
  • cqbamboo
  • 2014年12月11日 11:09
  • 1238

android linux kernel debug技术

动态调试功能就是你可以决定在程序运行过程中是否要 pr_debug(), dev_dbg(), print_hex_dump_debug(), print_hex_dump_bytes() 这些函数正...
  • u013308744
  • u013308744
  • 2016年08月16日 13:56
  • 474

Android 下 Kernel Debug (Qualcomm Chipset)

Android 下 Kernel Debug  (Qualcomm Chipset) 1. 背景 本文面向Linux/Android系统的Kernel Debug技术。 涉及Linux...
  • iseee25
  • iseee25
  • 2015年04月02日 20:34
  • 504

hexdump——Linux系统的二进制文件查看工具

hexdump hexdump是linux下的一个二进制文件查看工具,可以将二进制文件转换为ASCII、十进制、十六进制或八进制进行查看。常用选项:-b  将每个字节显示为八进制-c  将每个字节显示...
  • exbob
  • exbob
  • 2011年07月06日 22:05
  • 10873
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:kernel hexdump分析 (2.0)
举报原因:
原因补充:

(最多只允许输入30个字)