Здраствуйте! При компиляции релизной версии никаких ошибок в процессе работы нет. Недавно скачал QtCreator решил попробовать отладить программу в тамошнем debugere. Для этого нужно было создать debug версию проекта. В откомпилированном варианте вылетает сообщение "Runtime error. Program...(путь к exe). This Application has reguested the Runtime to terminate it in an unusual way. Please contact the applications support team for more information" Ошибка появляется при нажатии на пункт меню в главном окне. В обработчике события клика по этому меню запускается новый поток, открывается Com порт и производится зацикленное чтение из него(работа с портом на winapi) Буду очень признателен если вы сможете помочь. Из-за чего вообще может появляться данная ошибка??? И еще вопрос - можно ли как-нибудь извлечь отладочную информацию из debug файла в Qt приложении (компилируется gcc) и отлаживать программу в исходных текстах в стороннем отладчике, Olly например?
В коде - ничего особенного нету, однако сегодня я заметил одну вещь: У меня есть класс интерфейса, наследующий у QMainWindow. В нем объявлен статический член, объект потока (QThread). Также отдельно создается глобальный объект класса QDialog. В него я вывожу отладочную информацию из всех остальный функций программы. В последствии я планировал его просто убрать. Так вот в методе run объекта QThread (главная функция потока), я добавляю некоторые строки текста в компонент QTextEdit - член отладочного окна класса QDialog. Методом QTextEdit::append(QString(const char*)). Именно эти строки и рушат программу. Когда я их комментирую ошибка не вылетает. Помимо них, как я уже писал раньше в функции run открывается порт Com1 и начинается его чтение в цикле и обработка принятых данных. Причом release версия работает без проблем. Не знаю что и думать. Попробую отладчик который вы посоветовали, спасибо. А насчет формата отладочной информации вы не знаете?
В коде - ничего особенного нету, однако сегодня я заметил одну вещь: У меня есть класс интерфейса, наследующий у QMainWindow. В нем объявлен статический член, объект потока (QThread). Также отдельно создается глобальный объект класса QDialog. В него я вывожу отладочную информацию из всех остальный функций программы. В последствии я планировал его просто убрать. Так вот в методе run объекта QThread (главная функция потока), я добавляю некоторые строки текста в компонент QTextEdit - член отладочного окна класса QDialog. Методом QTextEdit::append(QString(const char*)). Именно эти строки и рушат программу. Когда я их комментирую ошибка не вылетает. Помимо них, как я уже писал раньше в функции run открывается порт Com1 и начинается его чтение в цикле и обработка принятых данных. Причом release версия работает без проблем. Не знаю что и думать. Попробую отладчик который вы посоветовали, спасибо. А насчет формата отладочной информации вы не знаете?