Ответ 1
Вот моя лучшая догадка: я не знаю, и это не имеет значения.
Я не знаю, почему GDB печатает сообщение "(не найдены отладочные символы)". Я на самом деле видел это, создавая свои собственные ядра. Я настраиваю ядро для использования символов отладки, но GDB все еще печатает это сообщение, когда смотрит на образ ядра. Я никогда не потрудился заглядывать в него, потому что мой образ все еще можно отлаживать. Несмотря на сообщение, GDB все еще может разбирать функции, добавлять точки останова, искать символы и выполнять одноэтапные функции. Я никогда не замечал недостатка в функциональности отладки. Я предполагаю, что то же самое происходит с вами.
Изменить: Основываясь на ваших комментариях к вопросу, похоже, что вы искали неправильный символ с вашим отладчиком. Обработчики системных вызовов начинаются с префикса sys_
, но вы не можете сказать, глядя на код. Макрос SYSCALL_DEFINE4(ptrace, ...)
просто заканчивает объявление функции как asmlinkage long sys_ptrace(...)
, хотя он делает некоторые другие сумасшедшие вещи, если у вас есть ftrace.