Debug方法いろいろ(備忘録)

デバック方法は数ある中でも最終的に頼りになるデバック方法を備忘録として書いておこうと思いました。いろいろな武器はかなりの性能を発揮するのですが、それがいつでもどこでもどの環境でも使えるわけではないというわけで、とりわけサバイバルナイフ一本でどこまでできるかというような趣旨になります。
そして「プログラムは嘘をつかない、いつかは必ずみつかるバグ」をモットーにがんばりましょう!

Grep

いわずと知れたgrepコマンドですが、grepはシステムを制すなのです。
ほとんどの場合、他のコマンドをパイプでつないで使います。出力した内容をそのままパイプで渡して文字列検索をします。

パイプを使う

$ cat index.php | grep -n "include"

-nオプションを入れておくと行数が出て便利です。標準出力できるものなら何でもいいので便利です。

$ ls | grep "example"

出力した文字列の中で検索をかけるだけです。

$ history | grep "systemctl"

どんなサービスを頻繁に触っているかなどがわかります。

ファイルの内容からファイルを検索する

ファイルA内にある文字列がファイルB内にあるかどうかを検索することもできます。

$ grep -f A.txt B.txt

ファイルA内にある文字列とマッチしない部分を検索する際は、-vを使います。

$ grep -f A.txt -v B.txt

再帰的に検索する

カレントディレクトリ以下のphpファイル中に$urlという変数があるか検索する場合です。

find ./ -name "*php" | xargs grep -n "\$url"

ファイル数が多い場合や結果を保存しておきたい場合はリダイレクトしてあげます。

find ./ -name "*php" | xargs grep -n "\$url" >> find.txt
Last update: 2018.10.19 (金)