2013-03-20 3 views
2

У меня возникла проблема с отладкой процесса на платформе arm + Linux:Как отлаживать встроенный процесс?

Это процесс демона, работающий с протоколом CAPWAP, поэтому он постоянно обменивается данными с другим удаленным процессом. Когда он падает с ошибкой сегментации, моим обычным средством отладки является добавление некоторого выхода журнала через printf, чтобы найти, где процесс разбился, но он не очень эффективен.

Есть ли другой способ отладить эту проблему?

ответ

3

Можно также включить core(5) дамп, а затем использовать gdb посмертное на этом ядре с

gdb yourprogram core 

Чтобы включить дамп, необходимо вызвать setrlimit(2) системный вызов с RLIMIT_CORE, как правило, в какой-то из родителей процесса (например, оболочка с ulimit)

Кстати, вы могли бы также начать свою программу через gdb используя

gdb --args yourprogram argtoyourprogram 

Не забудьте скомпилировать свою программу с помощью gcc -Wall -g. Параметры -Wall дают почти все предупреждения (очень полезны), а -g создает отладочную информацию.

0

В этом случае есть две возможности для отладки.

  1. Отладка программы с помощью отладчика GDB. Вы можете установить контрольные точки в своей программе с помощью GDB.

  2. Используйте Android-ndk для отладки вашей ошибки сегментации. Такой отладчик может обеспечить точное местоположение ошибки.

+1

Плакат oriinal может иметь встроенный Linux, работающий на ARM, который не является Android ... –

Смежные вопросы