jit-отладка с помощью qt Creator (Windows)

Можно ли использовать Qt Creator (сборка MinGW) в качестве оперативного отладчика? Вместо VS на окнах.

Каждый раз, когда мое приложение падает, Windows предлагает мне использовать Visual Studio в качестве отладчика.


person tower120    schedule 30.12.2013    source источник
comment
Например, сделайте простое консольное приложение QT, затем разделите на 0. Создайте с отладочной информацией. Запустить его. Поймать ошибку (jit). Отладка с помощью создателя QT вместо VS.   -  person tower120    schedule 02.01.2014
comment
@Laszlo Papp - я могу отлаживать с помощью VS. Но что мне нужно сделать для отладки с помощью QT Creator? Когда возникает ошибка - я вижу только VS как отладчик в диалоговом окне выбора отладчика JIT.   -  person tower120    schedule 04.01.2014


Ответы (2)


Из QtCreator: Запуск отладчика, статья:

Посмертный режим доступен только в Windows, если у вас установлены средства отладки для Windows.

Программа установки Qt Creator спросит вас, хотите ли вы зарегистрировать Qt Creator в качестве посмертного отладчика. Чтобы изменить этот параметр, выберите Инструменты > Параметры > Отладчик > Общие > Использовать Qt Creator для отладки посмертно.

person dawid    schedule 24.03.2015

Вам нужно будет настроить его в соответствии с документация:

GDB В Linux и Windows используйте версии GDB с поддержкой Python, которые устанавливаются при установке Qt Creator и Qt SDK. В Mac OS X используйте GDB, поставляемый с Xcode. Вы также можете создать свою собственную GDB с поддержкой Python. Следуйте инструкциям в разделе Создание GDB.

Здесь вы можете найти вики для самостоятельной сборки GDB:

Построение GDB

Я прилагаю снимок экрана из моего QtCreator в Linux, где вы можете настроить параметры, связанные с отладчиком, если он не распознается по умолчанию.

введите здесь описание изображения

person lpapp    schedule 04.01.2014
comment
Это не будет использовать gdb, пользователя отладчика GNU с MinGW. - person rubenvb; 04.01.2014
comment
Теперь это актуально, но это не настроит посмертный отладчик или как его там называют. Я помню, что в какой-то момент Qt Creator мог это сделать, я просто не уверен, как он это сделал. Понижение удалено :-) - person rubenvb; 04.01.2014
comment
@rubenvb: что вы подразумеваете под посмертным отладчиком? - person lpapp; 04.01.2014
comment
Когда приложение дает сбой, и у вас установлен VS, Windows спрашивает вас, хотите ли вы отладить сбой в этот момент. Я боюсь, что это сделает только Qt Creator с CDB, а не GDB. Но я не уверен. - person rubenvb; 05.01.2014
comment
@rubenvb: Я не понимаю, зачем смешивать эти две среды ... Я думаю, что кто-то должен придерживаться любой из них для более счастливой жизни. M$ может запутаться, когда они смешаны. :) - person lpapp; 05.01.2014
comment
Я думаю, что OP просто хочет, чтобы скомпилированная программа MinGW запускала эту функцию отладки. Вы не можете отлаживать программу MinGW с помощью Visual Studio. Но опять же, я не вижу причин для того, чтобы вообще не запускать сбойное приложение в отладчике... - person rubenvb; 05.01.2014
comment
@rubenvb: да, я согласен, просто используйте отладчик QtCreator. - person lpapp; 05.01.2014
comment
Я немного уточняю. У меня установлен VS, и он мне нужен. У меня установлен Qt, я сделал с ним свое приложение, и я хочу отладить его для этого приложения. Я использую сборку Windows qt-project.org/downloads с MinGW. У меня есть GDB в этом списке, но это мне не помогает. - person tower120; 05.01.2014
comment
@tower120: Просто используйте отладчик QtCreator для отладки с помощью QtCreator. Кроме того, у вас будет много проблем при смешивании радикально разных сред, подобных этим. Просто придерживайтесь MSVC, если вам действительно нужен VS. - person lpapp; 05.01.2014
comment
Когда возникает ошибка, я получаю что-то вроде этого s12.postimg.org/v2enhnugt/ . У меня просто НЕТ отладчика GDB/CDB в этом списке. - person tower120; 05.01.2014
comment
У меня есть ошибка, которая возникает только в том случае, если отладчик не подключен. Вероятно, какое-то время зависело от ошибки. - person tower120; 05.01.2014
comment
@tower120: Я не понимаю, почему ты усложняешь себе жизнь. Позвольте мне спросить в X-й раз: почему бы вам просто не использовать отладчик QtCreator для отладки, а не запускать исполняемый файл отдельно, когда вы действительно хотите отлаживать приложение. - person lpapp; 05.01.2014
comment
Я хочу выяснить, почему мое приложение падает, и оно не падает, когда я запускаю его с подключенным отладчиком (кнопка отладки). И в конце концов, что не так с этим JIT? - person tower120; 05.01.2014
comment
@tower120: предоставьте автономное приложение, воспроизводящее эту проблему. Подробную информацию см. на сайте sscce.org. - person lpapp; 05.01.2014
comment
Вопрос в том, как использовать создателя QT для JIT (посмертной отладки) в Windows. Не как исправить мое приложение. - person tower120; 05.01.2014
comment
@tower120: пожалуйста, приведите пример, который вылетает без отладчика, а не с ним. Если это не так, ваш вариант использования спорен, и вам следует использовать отладчик QtCreator с самого начала. Таким образом, вам нужно будет доказать, что ваш вариант использования существует. - person lpapp; 05.01.2014
comment
Я исправил свой случай, поэтому я не могу показать его сейчас. Но я обнаружил, что stackoverflow.com/questions/186237/ - так что мой случай не единственный. Если JIT существует, я хочу его использовать. Если это невозможно использовать с QT Creator в Windows, это одно, если вы мне скажете, как мне отлаживать, это другое. - person tower120; 05.01.2014
comment
Если вы не можете доказать, что такое использование приводит к выходу, зачем вам решать этот вариант использования? Нет смысла решать теоретические задачи. В любом случае, я уже писал, что это не сработает даже для воображаемых проблем. Я не знаю, что осталось решить. - person lpapp; 05.01.2014
comment
@Laszlo Papp - пример неправильной работы приложения в режиме выпуска, но правильной в отладке. Если значение будет указателем - это вызовет ошибку сегментации. coliru.stacked-crooked.com/a/7d7bada1dacf5352 и coliru.stacked-crooked.com/a/f29a8469ec179046 из stackoverflow.com/questions/23710910/c11-rvalue-object-field - person tower120; 17.05.2014