我正在尝试做一些看起来应该非常简单的事情,遍历保存的 kmem_cache 对象kmalloc_caches
以打印它们的名称。这总是以内核恐慌结束。我的 C 很生锈,所以如果我有什么误解,我会很感激任何照明。我添加了以下功能:
void *print_cachenames(void) {
struct kmem_cache *k;
k = kmalloc_caches[0];
printk(KERN_INFO "680: k[0] name: %s\n", k->name);
}
到 mm/slub.c。它所做的只是尝试打印数组中第一个 kmem_cache 对象的名称。是什么导致它爆炸?