メモリ リーク時のカーネルの動作をテストするために、メモリを継続的に割り当てるカーネル モジュールを作成しています。たとえば、コードは次のようになります。
int bytesLeaked = 128000;
char *var = kmalloc(bytesLeaked, GFP_KERNEL);
if (var != NULL)
printk("leaked %d bytes at address %x\n", bytesLeaked, (unsigned int)var);
このコードは init_module にあります。次の質問があります
- コードでメモリ リークが発生したかどうかを判断するにはどうすればよいですか? lsmod はあまり明らかにしません。
- インターネット上のチュートリアルでは、init_module と exit_module のコードのみが示されています。モジュールが挿入されてから終了するまでの間、一定期間にわたってメモリ割り当てを行いたい場合はどうすればよいでしょうか。
- ユーザーがそうするように指示した場合にのみメモリリークするコードを書くことは可能ですか?