![]() |
|
![]() ![]() ![]() |
|
OlegIT |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 684 Регистрация: 5.4.2006 Репутация: нет Всего: нет |
Программа на Qt под Android очень редко вылетает, без видимых причин. Как определить в каком модуле, в какой строке произошёл крах?
|
|||
|
||||
Alca |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3993 Регистрация: 14.6.2006 Репутация: 2 Всего: 50 |
Возможно stack trace получить
https://gist.github.com/jvranish/4441299 Это сообщение отредактировал(а) Alca - 1.9.2016, 15:04 |
|||
|
||||
OlegIT |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 684 Регистрация: 5.4.2006 Репутация: нет Всего: нет |
Спасибо, попробую.
|
|||
|
||||
Alca |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3993 Регистрация: 14.6.2006 Репутация: 2 Всего: 50 |
И всё это собирай в дебаге
|
|||
|
||||
OlegIT |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 684 Регистрация: 5.4.2006 Репутация: нет Всего: нет |
Включил в проект файл stack_traces.c, собрал, запустил. Но забыл убрать из кода мейн в файле stack_traces, mingv собрала программу и не выдала даже предупреждения, что в программе два мейна, это я понял, когда программа упала на тестовой ошибке. Это что, баг компилятора или...?
|
|||
|
||||
Alca |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3993 Регистрация: 14.6.2006 Репутация: 2 Всего: 50 |
хз, ты stack trace получил?
|
|||
|
||||
OlegIT |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 684 Регистрация: 5.4.2006 Репутация: нет Всего: нет |
stack trace получил, несколько уровней, правда только в виндах, до андройда пока не добрался. Но там только адреса, сбойной команды и вызывающих функций, а как это всё в исходный код странслировать?
|
|||
|
||||
Alca |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3993 Регистрация: 14.6.2006 Репутация: 2 Всего: 50 |
Надо, чтобы все было собрано в дебагe, чтоб была включена отладочная информация (символы), погугли какие там ключи нужны для сборки (т.е. Qt должна быть собрана с этими ключами или что-там еще) Это сообщение отредактировал(а) Alca - 7.9.2016, 15:42 |
|||
|
||||
OlegIT |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 684 Регистрация: 5.4.2006 Репутация: нет Всего: нет |
Утилита addr2line как я понимаю преобразует адрес в номер строки или как то так, сейчас буду разбираться.
|
|||
|
||||
OlegIT |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 684 Регистрация: 5.4.2006 Репутация: нет Всего: нет |
Скачал winaddr2line подправил код обращение к этой программе, в ней возникает ошибка, код 487 "Попытка обратиться к неверному адресу". В чём может быть проблема?
|
|||
|
||||
Alca |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3993 Регистрация: 14.6.2006 Репутация: 2 Всего: 50 |
да в чем угодно. Скорее всего это в твоем коде косяк
Это сообщение отредактировал(а) Alca - 9.9.2016, 15:20 |
|||
|
||||
OlegIT |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 684 Регистрация: 5.4.2006 Репутация: нет Всего: нет |
Не думаю, что это в моей программе ошибка, работает stack_traces и ddr2line, моей программы тут уже нет, она уже лежит.
stack_traces.c выдаёт список адресов, проверял они правильные, запускаю winaddr2line с соответствующей строкой аргумента, на некоторые адреса выдаёт ошибку 487, на другие 126. |
|||
|
||||
maint |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 77 Регистрация: 12.5.2008 Репутация: нет Всего: 2 |
сто пудов где то ошибка адресациию Полгода мучался и ругал матерным словом голливуд, пока не понял.
Это сообщение отредактировал(а) maint - 9.9.2016, 16:26 |
|||
|
||||
OlegIT |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 684 Регистрация: 5.4.2006 Репутация: нет Всего: нет |
Не могу пока понять этих ошибок, одна по адресации, другая по отсутствую модуля и все после прохождения функции SymFromAddr(...); в winaddr2line.
|
|||
|
||||
OlegIT |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 684 Регистрация: 5.4.2006 Репутация: нет Всего: нет |
Разобрался с этим вопросом, всё просто оказалось. Уйму времени потратил на winaddr2line, а она работает. В комплекте mingw есть программа addr2line, которая прекрасно работает. Но эта программа работает с консолью и максимум что мне удалось это для каждого вызова сделать свой лог файл. А как получить выход программы addr2line в своей программе, из которой я её вызываю?
|
|||
|
||||
![]() ![]() ![]() |
Правила форума "С/С++: Кроссплатформенное программирование, QT/Gtk+/wxWidgets" | |
|
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, Любитель. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | С/С++: Кроссплатформенное программирование, Qt/Gtk+/wxWidgets | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |