Как читать LXR?

Я хочу прочитать исходный код ядра Linux, и я нашел LXR. Это замечательно, но иногда, когда я нажимаю на какую-то функцию, например, 'kfree', я получаю это:

Когда 'link' использует ld, не должно быть конфликтов. Итак, вопрос: как определить, кто из них ОДИН??? (Я думаю, что gcc+makefile - это решение, но я не знаю, как это сделать...)

Спасибо!

2 ответа

Вот еще один поиск перекрестных ссылок Linux, возможно с более подробной информацией

https://code-grep.com/view/project/54b083273b2082684a000008/linux-3.19-rc2?search=kfree&type=definitions&page=0

Как видите, некоторые из них являются определениями препроцессора, а некоторые - функцией. Чтобы узнать, какой из них правильный, вы можете проверить параметры конфигурации, как правило, в файле.config ядра.

1. Если у вас есть некоторые неявные знания о ядре, вы заметите, что kfree является частью slub, slab или slob. Просматривая конфигурацию ядра, вы, вероятно, заметите, что вы используете slub allocator (от dfefault). Итак, вы пришли к выводу - правильный ответ mm / slub.c: 3334.

2.

nm -a ./vmlinux | grep kfree
ffffffff81151bd0 T kfree
addr2line -e ./vmlinux 0xffffffff81151bd0
/home/alexhoppus/Desktop/linux/mm/slub.c:3335
Другие вопросы по тегам