![]() |
Здравствуйте, гость ( Вход | Регистрация )
![]() |
AntonTatu |
![]()
Сообщение
#1
|
Студент ![]() Группа: Участник Сообщений: 48 Регистрация: 27.11.2008 Пользователь №: 437 Спасибо сказали: 0 раз(а) Репутация: ![]() ![]() ![]() |
Всем привет!
Объясните мне как правильно пользоваться отладчиком: если объявляю, int Number = 100; то поставив точку останова могу увидеть в отладчике что переменной Number присвоено значение 100 если объявляю QString str = "строка"; то поставив точку останова в отладчике не могу увидеть что str присвоено какое либо значение а почему ? что нужно сделать чтобы в отладчике смотреть значение переменных типа QString ? PS: с массивами (QVector), то же самое, написал небольшой примерчик, работает а вот в отладчике посмотреть не могу |
|
|
![]() |
SABROG |
![]()
Сообщение
#2
|
![]() Профессионал ![]() ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 1207 Регистрация: 8.12.2008 Из: Russia, Moscow Пользователь №: 446 Спасибо сказали: 229 раз(а) Репутация: ![]() ![]() ![]() |
gdb ничего не знает о структуре пользовательских типов. Как ему прикажешь показать строку в такой структуре, если у него есть только ссылка на экземпляр объекта типа MyType? А если это void* указатель?
Сообщение отредактировал SABROG - 17.2.2009, 23:11 |
|
|
AntonTatu |
![]()
Сообщение
#3
|
Студент ![]() Группа: Участник Сообщений: 48 Регистрация: 27.11.2008 Пользователь №: 437 Спасибо сказали: 0 раз(а) Репутация: ![]() ![]() ![]() |
gdb ничего не знает о структуре пользовательских типов. Как ему прикажешь показать строку в такой структуре, если у него есть только ссылка на экземпляр объекта типа MyType? А если это void* указатель?
причем тут прикажешь, я спрашиваю что в таком случае делать, у меня в проге очень много операций со строками, раньше писал на Delphi, теперь пытаюсь на Qt переписать (есть объективные причины), а как пользоваться отладчиком (очень нужно, без него вообще никак) незнаю... в Delphi было просто, объявил переменную типа string или массив, присвоил значение и походу проги в отладчике смотришь как оно меняется, а как в Qt сделать так же незнаю..... |
|
|
Rocky |
![]()
Сообщение
#4
|
Старейший участник ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 530 Регистрация: 22.12.2008 Из: Санкт-Петербург Пользователь №: 463 Спасибо сказали: 22 раз(а) Репутация: ![]() ![]() ![]() |
AntonTatu, используй QMessageBox например, или qDebug для сложных типов. Я так и делал, пока не достало и поставил Visual Studio где начиная с 2005 можно даже внутрь вектора залезть.
SABROG, а не знаешь случайно, такая среда как eclipse тоже gdb использует? Просто думаю, слезать мне с Visual Studio, или нет. В последней отлачик просто отличный. Сообщение отредактировал Rocky - 17.2.2009, 23:22 |
|
|
SABROG |
![]()
Сообщение
#5
|
![]() Профессионал ![]() ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 1207 Регистрация: 8.12.2008 Из: Russia, Moscow Пользователь №: 446 Спасибо сказали: 229 раз(а) Репутация: ![]() ![]() ![]() |
Да, в Eclipse тоже gdb.
|
|
|
AntonTatu |
![]()
Сообщение
#6
|
Студент ![]() Группа: Участник Сообщений: 48 Регистрация: 27.11.2008 Пользователь №: 437 Спасибо сказали: 0 раз(а) Репутация: ![]() ![]() ![]() |
AntonTatu, используй QMessageBox например, или qDebug для сложных типов. Я так и делал, пока не достало и поставил Visual Studio где начиная с 2005 можно даже внутрь вектора залезть. SABROG, а не знаешь случайно, такая среда как eclipse тоже gdb использует? Просто думаю, слезать мне с Visual Studio, или нет. В последней отлачик просто отличный. да я то же про qDebug вспомнил, но мне кажется это будет не удобно... а под Visual Studio, то же Qt используешь или нет ?, я правильно понял что в Qt под Visual Studio можно будет в отладчике QStringи и вектора смотреть ? просто у меня интерфейс уже написан под Qt, такой же писать под чистый Visual Studio я просто свихнусь.... |
|
|
Rocky |
![]()
Сообщение
#7
|
Старейший участник ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 530 Регистрация: 22.12.2008 Из: Санкт-Петербург Пользователь №: 463 Спасибо сказали: 22 раз(а) Репутация: ![]() ![]() ![]() |
Цитата а под Visual Studio, то же Qt используешь или нет ? да, правда недолго, в декабре 2008 начал изучать )) Цитата я правильно понял что в Qt под Visual Studio можно будет в отладчике QStringи и вектора смотреть да Цитата просто у меня интерфейс уже написан под Qt, такой же писать под чистый Visual Studio я просто свихнусь А что значит "чистый Visual Studio"? Голый winAPI/MFC? Не, не придется ничего переписывать. Единственное что, кросплатформенное приложение после компиляции под студией не получится. Хотя как писать. Я потом когда все под виндой оттестирую (именно расчеты), создаю проект *.pro, и под линухами компилю в QDevelop и ловлю возможные ошибки компиляции. Когда все ок, получаю истинно кроссплатформенное приложение. А ошибки бывают: начиная от того, как файл заголовочный написан - регистр, заканчивая отличием в реализации стандартной библиотеки (уж очень она мне нравится). |
|
|
AntonTatu |
![]()
Сообщение
#8
|
Студент ![]() Группа: Участник Сообщений: 48 Регистрация: 27.11.2008 Пользователь №: 437 Спасибо сказали: 0 раз(а) Репутация: ![]() ![]() ![]() |
Цитата А что значит "чистый Visual Studio"? Голый winAPI/MFC? Не, не придется ничего переписывать. Единственное что, кросплатформенное приложение после компиляции под студией не получится. Хотя как писать. Я потом когда все под виндой оттестирую (именно расчеты), создаю проект *.pro, и под линухами компилю в QDevelop и ловлю возможные ошибки компиляции. Когда все ок, получаю истинно кроссплатформенное приложение. А ошибки бывают: начиная от того, как файл заголовочный написан - регистр, заканчивая отличием в реализации стандартной библиотеки (уж очень она мне нравится). Да я именно о winAPI/MFC, вообще мне не дается зараза, столько времени на него убил пока не наткнулся на Qt, на нем интерфейс как то легче рисуется (кнопочки, менюшки, взаимодействие, + не нужно (мне пока) разбираться с winAPI/MFC), меня пока кросплатформеность мало интересует) И еще вопрос а как правильно перенести прогу из QtCreatora в Visual Studio ? |
|
|
SABROG |
![]()
Сообщение
#9
|
![]() Профессионал ![]() ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 1207 Регистрация: 8.12.2008 Из: Russia, Moscow Пользователь №: 446 Спасибо сказали: 229 раз(а) Репутация: ![]() ![]() ![]() |
В принципе в Eclipse есть метод "Cast To Type" (один раз приводишь и работает все время пока не закончишь отладку). Но проблема в том, что строки в Qt - юникодные. Т.ч. содержимое строк можно увидеть разве что поHex'ово
![]() (test) |
|
|
Rocky |
![]()
Сообщение
#10
|
Старейший участник ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 530 Регистрация: 22.12.2008 Из: Санкт-Петербург Пользователь №: 463 Спасибо сказали: 22 раз(а) Репутация: ![]() ![]() ![]() |
Цитата И еще вопрос а как правильно перенести прогу из QtCreatora в Visual Studio Не знаю насчет правильности. Прога - это набор твоих cpp/h/ui. Так? Ставишь Visual Studio, качаешь последнюю qt (хотя она уже наверное скачана ![]() Для хидеров, в капсулах классов в которых написан макрос Q_OBJECT в custom buld setup пишется "MOC и много всего разного.....". Для файлов *.ui - пишется "UIC и меньше всего разного" - тогда студия будет генерить на основе файла с формой заголовочный файл с++. В случае moc - метаобъектную информацию. Об этом можно на форуме тоже много всего почитать. Когда файлы сгенерятся, их надо включить в проект. То, что из ui получилось - необязательно, а то что из MOC - обязательно, иначе получишь кучу ошибок линковки. Короче, денек повозишься, и разберешься ![]() А насчет того, как правильно, я думаю генерить проекты студии qmake-ом все-таки правильнее. Но с этим я до конца не разобрался, понял как сделать вручную проект, сделал эталонный, и тягаю его везде, тока изменяю когда что нужно ручками и все ![]() Сообщение отредактировал Rocky - 18.2.2009, 1:34 |
|
|
![]() ![]() ![]() |
![]() |
|
Текстовая версия | Сейчас: 3.6.2025, 10:41 |