Использование gdb для системного вызова fork () - PullRequest
2 голосов
/ 11 марта 2011

Я хочу использовать gdb для просмотра различных деталей системного вызова fork ().Чтобы сделать это, я использовал одну точку останова в fork (), и оттуда я использую команду шага, но таким образом она не работает нормально.

Может кто-нибудь объяснить мне, как использовать gdb для просмотра каждого шага, происходящего во время системного вызова fork ()?

Ответы [ 2 ]

2 голосов
/ 11 марта 2011

Может быть, вы имели в виду, что хотите вызывать дочерний процесс вместо родительского после вызова fork В этом случае:

Если вы хотите следовать за ребенком процесс вместо родительского процесса, используйте команду set follow-fork-mode.

установить режим следования за вилкой режим

Установить ответ отладчика на программный вызов fork или vfork. Вызов форк или vfork создает новый процесс. Аргументом режима может быть:

parent : Исходный процесс отлаживается после разветвления. Ребенок Процесс проходит беспрепятственно. Это по умолчанию.

child : Новый процесс отлаживается после разветвления. Родительский процесс выполняется беспрепятственное.

0 голосов
/ 11 марта 2011

Если вы хотите увидеть, что лучше всего происходит, если сначала посмотреть на код ядра, отметьте здесь .

Я не думаю, что вы можете пройти один шаг по ядру из пространства пользователя.Вы можете использовать виртуальный сервер для отладки с использованием KGDB.Проверьте сообщение в блоге здесь .Или вы можете использовать KGDB в основном ядре.

...