Сложно отлаживать встроенное приложение - PullRequest
1 голос
/ 23 августа 2010

Я пытаюсь отладить приложение на встроенном устройстве под управлением старой версии Linux / Qtopia. Я просил помощи на форумах QT, но люди там не знают о старом программном обеспечении и встроенных системах. Мне бы очень хотелось помочь со стратегиями отладки.

Моя программа аварийно завершает работу после того, как главное окно было построено, то есть некоторое время в цикле событий. Но в зависимости от порядка функций в конструкторе, иногда он запускается только из консоли, а иногда только из значка. Несмотря на все мои усилия, я не могу сузить причины проблемы.

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

Мои параметры отладки ограничены, так как область, где фактически происходит сбой, не находится под моим контролем. Я попытался войти в файл и распечатать на stderr, но это не помогло. Когда я добрался до состояния, в котором он запускается из значка, но не из консоли, я попытался запустить в gdb и strace, но он работал нормально - классическая проблема инициализации программного обеспечения отладки по-другому.

Моя следующая мысль - попытаться форсировать дамп ядра и затем проанализировать это. Как заставить дамп ядра? Есть ли лучшая стратегия?

1 Ответ

2 голосов
/ 23 августа 2010

Запись в файл или на коммуникационный порт (последовательный порт и т. Д.), Вероятно, является самым простым способом увидеть, что происходит, и поддерживать нормальное время выполнения (т. Е. Не в отладчике).

Вы говоритечто регистрация в файл и печать в stderr не помогли.Почему бы и нет?Вы печатаете соответствующую отладочную информацию в файл?Используете ли вы исходники Linux / Qtopia и добавляете логи отладки?

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...