Я думаю, что название говорит все! :)Переключение между удаленным KGDB и локальным DDB в сеансе отладки
Я хотел бы знать, есть ли способ переключения между gdb и ddb при отладке удаленного ядра.
Я уже в командной строке gdb (или, скорее, kgdb). Отсюда как переключиться на локальный ddb на отладочной машине?
Мой конфигурационный файл ядра уже содержит options BREAK_TO_DEBUGGER
и я ОБА GDB и DDB настроен иначе: options GDB options DDB
Согласно developer's handbook «Каждый раз, когда вы набираете GDB, режим будет переключаться между удаленным GDB и локальной DDB Чтобы немедленно заставить следующую ловушку просто набрать s (шаг), ваш хостинг GDB теперь получит контроль над целевым ядром: «
Итак, я попытался ввести« gdb »в подсказке gdb (смешно мне : D) и, как и ожидалось, это была непризнанная команда. Очевидно, что эта команда должна быть введена в командной строке ddb. Но мой вопрос: как я могу перейти на ddb из работающей машины, чьи последовательные порты (хотя и виртуальные) удаленно подключены к KGDB другого компьютера? Когда прослушивается удаленный GDB, и я заставляю панику использовать sysctl debug.kdb.enter=1
, он попадает в удаленный КБДБ. Однако, когда он НЕ прослушивает, система просто зависает.
Что я хочу, это ввести ddb на локальную машину. Сделайте некоторые отладки, используя его; перейдите к удаленному KGDB для вещей, которые лучше всего делать с помощью KGDB, а затем вернитесь к локальному DDB, когда закончите.
Есть ли способ сделать это? Если да, то дайте мне знать
'Sysctl debug.kdb.available' дает' DDB gdb' 'Sysctl debug.kdb.current' дает' gdb' Я попытался Ctrl-C в DDB строке (когда GDB был активным) вернуть управление обратно в GDB, но безрезультатно. Если я играю с 'debug.kdb.current', могу ли я достичь своей цели? – HighOnMeat
Не уверен. во времени должно быть 1 бэкэнд. Переход от DDB к GDB - это команда «gdb», переход назад - завершение gdb. –
Я изменил текущий backend на ddb с помощью 'sysctl debug.kdb.current = ddb'. Затем я вызвал панику, и я был в подсказке ddb. Ввод 'gdb' здесь подключает машину к серверу gdb на клиентской машине. Однако, выйдя из gdb, я вернусь к приглашению оболочки на отлаженной машине и НЕ к ddb. Так ли это должно быть? – HighOnMeat