Помогите с загадочным сообщением об ошибке с KGDB - ложный ответ о состоянии трассировки от цели: E22 - PullRequest
0 голосов
/ 19 мая 2010

Я использую gdb для подключения к ядру Linux 2.6.31.13, исправленному с KGDB через Ethernet, и когда я пытаюсь отключить отладчик, я получаю следующее:

(gdb) quit
A debugging session is active.

 Inferior 1 [Remote target] will be killed.

Quit anyway? (y or n) y
Bogus trace status reply from target: E22

после этого сеанс все еще открыт, я могу продолжать и продолжать с помощью ctrl + d, и отладчик не выходит.

Я искал это сообщение в Google, и было только 5 результатов (и ни один из них не полезен: - /).

Есть идеи, что это может быть и как это исправить?

Ответы [ 2 ]

2 голосов
/ 19 мая 2010

Если вы очистили все точки останова на цели и «C» были продолжены с последней точки останова (при условии, что целевой код не аварийно завершился и т. Д.), Я думаю, вы будете в безопасности: при запуске kgdb не будет в любом случае говорить с вашим GDB, так как, если я вспоминаю, он обрабатывает ссылку только тогда, когда остановлен (в точке останова или в исключении) в ожидании команд. Несколько Ctrl-C в быстрой последовательности, если необходимо вернуть контроль в gdb, затем «q», и все.

Это, по крайней мере, мой опыт отладки ко ...

Я подозреваю, что GDB говорит это, потому что не понимает, что говорит с килограммом, а не с удаленным GDB-сервером. Я не представляю, что kgdb согласился уничтожить поток ядра, потому что отладчик был закрыт!

Хммм, запоздалая мысль: Вы говорите о kgdb 'lite', который теперь является частью дерева ядра? Потому что это единственный, с которым у меня есть опыт ...

PS 3 июня:

Я никогда не видел точное сообщение, о котором вы упомянули, пока не перешел на ядро ​​2.6.32 (как часть миграции моей машины разработки и назначения на Lucid). И потом, к удивлению, я тоже столкнулся с этим. Здесь, кажется, это происходит в безнадежных ситуациях (например, segfault или kgbd, которые, казалось бы, убегают после пропуска точки останова или одного шага). Единственное лекарство, которое я нашел до сих пор, - это pkill ddd (gdb) на машине разработчика и перезагрузка цели. Но хорошая новость заключается в том, что kgdb в 2.6.32 кажется более стабильным, чем в Karmic (2.6.31).

0 голосов
/ 20 сентября 2013

Ctrl + Z должен помочь вам выйти.

...