我正在尝试做看起来似乎非常简单的事情,遍历kmalloc_caches
中保存的kmem_cache对象以打印其名称。这总是以内核崩溃为结尾。我的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对象的名称。是什么导致它爆炸?
最佳答案
您的函数被声明为返回void *
,并且根本无法返回任何内容。我不确定从何处调用您的函数,但是有可能它应该返回某些东西...
关于c - 如何遍历kmem_caches?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/10392206/