sloccount=Count Source Lines Of Code 官网:http://www.dwheeler.com/sloccount/ Ubuntu安装 sudo apt-get install sloccount 使用 sloccount [--version] [--cached] [--append] [ --datadir directory ] [--follow] [--duplicates] [--crossdups] [--autogen] [--multiproject] [--filecount] [--wide] [--details] [ --effort F E ] [ --schedule F E ] [ --personcost cost ] [ --overhead overhead ] [ --addlang language ] [ --addlangall ] [--] directories --cached 跳过计算过 继续阅读 >>


王亚刚 15/10/29 16:18:31
其中a,b为变量 1.eval sed ’s/$a/$b/’ filename 2.sed "s/$a/$b/" filename 3.sed ’s/’$a’/’$b’/’ filename  4.sed s/$a/$b/ filename 引用自:http://blog.chinaunix.net/uid-24904099-id-298600.html 作者:Lazy_Linux 发表于2015/10/22 11:41:09 原文链接 阅读:101 评论:0 查看评论 继续阅读 >>


王亚刚 15/10/22 11:41:09
用gdb查看内存 格式: x /nfu 说明 x 是 examine 的缩写 n表示要显示的内存单元的个数 f表示显示方式, 可取如下值 x 按十六进制格式显示变量。 d 按十进制格式显示变量。 u 按十进制格式显示无符号整型。 o 按八进制格式显示变量。 t 按二进制格式显示变量。 a 按十六进制格式显示变量。 i 指令地址格式 c 按字符格式显示变量。 f 按浮点数格式显示变量。 u表示一个地址单元的长度 b表示单字节, h表示双字节, w表示四字节, g表示八字节 Format letters are o(octal), x(hex), d(decimal), u(unsigned decimal), t(binary), f(float), a(address), i(instruction), c(char) and s(string). Size letters are b(byte), h( 继续阅读 >>


王亚刚 15/10/09 15:19:20
RTL中的对象类型 在RTL中使用五种对象类型(Object Type),分别是表达式(Expression)、整数(Integer)、宽整数(Wide Integer)、字符串(String)以及向量(Vector)。 整数就是一个类型为int的简单类型,宽整数的数据类型是HOST_WIDE_INT。字符串的定义与C语言中的定义类似。向量可以包含任意数量的RTX表达式。 RTL中的表达式也称为RTX(RTL eXpression),是RTL中最重要的一类对象。根据RTX表达式语义的不同,GCC定义了众多的RTX代码(RTX_CODE),可以通过GET_CODE(x)和PUT_CODE (x)获取和设置RTX x的代码。需要强调的是,RTX_CODE所表达的语义是机器无关的。RTX_CODE与TREE_CODE、GIMPLE_CODE类似,分别是RTX表达式、TREE节点及GIMPLE语句的标识。 RTX的声明在gcc/rtl.def中使用宏定义的方式进行描述,形式为: DEF_RTL_EXPR(RTL_CODE,NAME, P 继续阅读 >>


王亚刚 15/10/09 10:17:30
这几天有个网友问了这样一个问题,有这样一段代码: [GCC@localhost test]$ cat tuoniao.c #include <stdlib.h> void func(int a, int b, int c){  printf("a=%d, b=%d, c=%d\n", a, b, c); } int main(){ int i=0; int j = sizeof(i++);  printf("i=%d\n", i); int t = 0;  func(t++, t++, t++);  printf("T=%d\n", t); int m=0;  func(++m, ++m, ++m);  printf("M=%d\n");  return 0; } 继续阅读 >>


王亚刚 15/09/06 11:39:21
本篇文章主要描述了在GCC的机器描述文件中define_expand的使用实例。 [GCC@localhost paag-gcc]$ cat gcc/config/paag/paag.md  ;; Basic Machine descriptions for PAAG System.  ;; Write by Paul_hua  ;; Bug reported <<paul.hua.gm@gmail.com>>  ;; ....................  ;;  ;; Attributes  ;;  ;; ....................  ;; Main data type used by the insn  (define_attr "mode" "unknown,none,QI,HI,SI,SF"  (const_string "unkno 继续阅读 >>


王亚刚 15/08/12 08:38:55
调试工具是代码分析中至关重要的工具之一。在使用vim+ctags查看代码时,经常会遇到难以理解的部分,此时,可以借助调试工具,对代码的运行过程进行跟踪,通过跟踪运行过程以及关键数据的变化,可以从程序执行的过程中理解源代码的功能。 调试工具有很多种,最常用的是GNUgdb工具。下面通过一个例子,给出非常简单的gdb的使用,但这些调试命令几乎就是笔者调试程序的所有命令,简单但实用。关于完整的gdb的使用,请参与GNU gdb文档,或者使用man gdb进行在线查询。 本例主要使用gdb来跟踪gcc的运行过程,因此,需要事先编译gcc源代码(编译时需要使用-g选项),生成可执行的编译程序cc1,下面利用gdb对cc1程序的运行进行跟踪。 首先,我们可以在程序入口处设置断点(Break Point): [GCC@localhost paag-gcc]$ gdbhost-i686-pc-linux-gnu/gcc/cc1 GNU gdb (GDB) Red Hat Enterprise Linux (7.2-75.el6) Copyright (C) 20 继续阅读 >>


王亚刚 15/08/05 15:58:43
 Vim是Linux中应用最广泛的编辑器,也是我们阅读代码的首选工具。ctags是一种标签工具,借助其可以很方便地实现代码中符号的跟踪。 下面简单介绍使用Vim +ctags对gcc-4.4.0源代码分析的过程。为了描述方便,我们使用${GCC-HOME}来表示gcc-4.4.0代码所在的主目录。 (1)安装ctags程序。 [root@localhost ~]# yum install ctags   (2)下载gcc-4.4.0的源代码文件。 [GCC@localhost ~]$ wget -chttp://mirror1.babylon.network/gcc/releases/gcc-4.4.0/gcc-4.4.0.tar.bz2 --2015-05-19 10:06:52-- http://mirror1.babylon.network/gcc/releases/gcc-4.4.0/gcc-4.4.0.tar.bz2 Resolving mirror1.babylon.networ 继续阅读 >>


王亚刚 15/08/02 21:07:56
一直没有写博客的习惯,就这样糊里糊涂过了好多年,记忆中的东西也逐渐淡忘,以后还是把一些重要的东西记下来,一个是可以留作资料,也可以和大家一起来分享! 加油,期待大家的鼓励! 作者:Lazy_Linux 发表于2015/8/2 21:02:58 原文链接 阅读:222 评论:5 查看评论 继续阅读 >>


王亚刚 15/08/02 21:02:58
1