Я пытаюсь отладить приложение на встроенном устройстве под управлением старой версии Linux / Qtopia. Я просил помощи на форумах QT, но люди там не знают о старом программном обеспечении и встроенных системах. Мне бы очень хотелось помочь со стратегиями отладки.
Моя программа аварийно завершает работу после того, как главное окно было построено, то есть некоторое время в цикле событий. Но в зависимости от порядка функций в конструкторе, иногда он запускается только из консоли, а иногда только из значка. Несмотря на все мои усилия, я не могу сузить причины проблемы.
Нет ошибки сегмента или сигнала, но моя программа не продолжается, и деструктор не вызывается. Мне кажется, что одна из первых вещей, которые произойдут в цикле событий, - это событие изменения размера, и когда оно вызывается, оно может отличаться, если вы запускаете его из консоли или значка. Кроме того, различные виджеты в моем графическом интерфейсе будут инициализированы и прорисованы, что также является потенциальным источником ошибки, если я что-то не настроил должным образом.
Мои параметры отладки ограничены, так как область, где фактически происходит сбой, не находится под моим контролем. Я попытался войти в файл и распечатать на stderr, но это не помогло. Когда я добрался до состояния, в котором он запускается из значка, но не из консоли, я попытался запустить в gdb и strace, но он работал нормально - классическая проблема инициализации программного обеспечения отладки по-другому.
Моя следующая мысль - попытаться форсировать дамп ядра и затем проанализировать это. Как заставить дамп ядра? Есть ли лучшая стратегия?