给每一个函数加一行LOG

在学习别人的代码时,有的代码我们不知道它是如何运行的,或者会被调用到哪里,给每个函数加一行LOG,是一个笨的选择,却也是很有效的办法。
当然这样做的前提是代码可以编译通过并可以运行。

本代码可以给JAVA语言加LOG,使用方式是 a.sh sourcefile>targetfile





#!/bin/bash

i=1;
LEFT_CLOSE="{"
RIGHT_CLOSE="}"
IMPORT_LOG_LINE="import android.util.Log;"
CLASS="class"
new="new"
INTERFACE="interface"
level=0
ok=0
thisleft=0
thisright=0
subclass=0
lastsubclasslevel=0
in_interface=0


log_imported=0

IFS=''
cat $1 |
while read CURRET_LINE
do
    ((k++))
    thisleft=0
    thisright=0


    if [ $log_imported -eq 0 -a $level -eq 0 ]
    then
        echo "$CURRET_LINE" | grep -q "$IMPORT_LOG_LINE"  
        if [ $? -eq 0 ]; then  
            ((log_imported++))
        fi
    fi

    if [ $level -eq 0 ]
    then
        echo "$CURRET_LINE" | grep -q "$CLASS"  
        if [ $? -eq 0 ]; then  
            if [ $log_imported -eq 0 ]
            then
                echo "$IMPORT_LOG_LINE"
            fi
        fi
    fi

    echo "$CURRET_LINE"


    echo "$CURRET_LINE" | grep -q "$LEFT_CLOSE"  
    if [ $? -eq 0 ]; then  
        ((level++))
        thisleft=1
    fi


    echo "$CURRET_LINE" | grep -q "$RIGHT_CLOSE"  
    if [ $? -eq 0 ]; then  
        ((level--))
        thisright=1
        if [ $in_interface -eq 1 ]
        then
            in_interface=0
        fi
    fi




    if [ $thisleft -eq 1 ]
    then
        if [ $in_interface -ne 1 ]; then
            echo "$CURRET_LINE" | grep -q "$INTERFACE"  
            if [ $? -eq 0 ]; then  
                in_interface=1
            fi
        fi

        if [ $in_interface -ne 1 ]; then
            echo "$CURRET_LINE" | grep -q "$CLASS"  
            if [ $? -eq 0 -a $level -eq 2 ]; then  
                ((subclass++))
                lastsubclasslevel=$level
            fi
            echo "$CURRET_LINE" | grep -q "$new"  
            if [ $? -eq 0 -a $level -eq 2 ]; then  
                ((subclass++))
                lastsubclasslevel=$level
            fi


            if [ $subclass -eq 1 -a $level -eq 3 ]
            then
                echo "    Log.i(TAG,\"$CURRET_LINE\");"
            elif [ $subclass -eq 0 -a $level -eq 2 ]
            then
                echo "    Log.i(TAG,\"$CURRET_LINE\");"
            fi
        fi
    fi
    if [ $thisright -eq 1 ]
    then
        if [ $subclass -eq 1 -a $level -lt $lastsubclasslevel ]
        then
            subclass=0
            lastsubclasslevel=0
        fi
    fi
done

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值