我試圖做一些看起來應該非常簡單的事情,通過在kmalloc_caches
中持有的kmem_cache對象迭代來打印它們的名字。這總是以內核恐慌結束。我的C很生鏽,所以如果我誤解了某些東西,我會很感激任何照明。我添加了以下功能:如何通過kmem_caches進行迭代?
void *print_cachenames(void) {
struct kmem_cache *k;
k = kmalloc_caches[0];
printk(KERN_INFO "680: k[0] name: %s\n", k->name);
}
to mm/slub.c。它所做的只是嘗試打印數組中第一個kmem_cache對象的名稱。是什麼導致它炸燬?
希望我知道這個答案,聽起來像一個有趣的問題... –