先週、私はユーザーとカーネルスペースの間にメッセージを渡すことができる文字デバイスドライバを作成する簡単なカーネルモジュールの作業を行いました。
すべてが大丈夫です。 KEDRを見つけました(https://github.com/euspectre/kedr)、今メモリリークを検出することができます。
しかし問題は、これを検出する方法があるかということです。ボーダー間アクセスそして、次のようなその他のエラー初期化されていないメモリなど?ユーザー空間プログラムでは、時々セグフォルト、または私達は利用できますウォールグリーンほとんどのエラーを検出してみてください。
配列の範囲外で人為的に書き込みを試みたが、OSは文句を言わなかった。
答え1
カサン非常に近いですmemcheck
。それがまさにその意味ですvalgrind
。
これはカーネルアドレスクリーナー[LWN.net 2014]。また、見ることができますソフトウェアタグベースのKASAN[LWN.net 2018]。