out of treeでライブパッチを試す、/dev/nullへのパッチ紹介

Linuxカーネルのバージョン4.0から追加されたライブパッチ(Livepatch)機能を今更ながら、試してみました。
(Linux4.0の記事でライブパッチに触れていますが、32bitのマシンしか無く、試せなかったんですね。。)


なお、本記事は「CLR/H #clrh101」のLTで発表させていただいた内容のまとめです。

続きを読む

Kprobesの使い方

Kprobesは、レジスタ情報ダンプなど任意の処理を、アセンブラの命令単位で実行できる機能です。


利用するにはカーネルモジュールを作成する必要はありますが、
カーネルの再ビルド無しで、カーネル内のすべての命令をデバッグできます。

続きを読む

ftraceの使い方

ftraceの使い方については、以下の記事でも紹介しましたが、

過去には紹介しなかった使い方も分かったので、あらためてまとめます。


過去に紹介したときは、
「関数単位でカーネルの実行状況のトレースログを出してくれる機能」
という紹介でしたが、実は他にも機能があります。

続きを読む

dyndbg(dynamic debug)の使い方

printk()はデバッグ出力無効化の際には、コメントアウトするなりして再ビルドする必要があります。


何度もビルドを繰り返すのは面倒なので、デバッグ出力の有効/無効を実行時に動的に切り替えられるようにする機能が
dyndbg(dynamic debug)です。

続きを読む