crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

2 страниц V   1 2 >  
Ответить в данную темуНачать новую тему
> проблема с дебагером
neyro
  опции профиля:
сообщение 22.2.2010, 22:13
Сообщение #1


Новичок


Группа: Новичок
Сообщений: 7
Регистрация: 22.2.2010
Пользователь №: 1477

Спасибо сказали: 0 раз(а)




Репутация:   0  


Всем доброго времени суток :)
Случилась у меня такая проблема... Но по порядку. Установил себе на ноутбук QT Creator, написал простенькую программку для работы с com-портом(QExtSerialPort, есть такая библиотека). Но проблемы начались после сборки.
При запуске окно приложения не появляется, в консоли приложения
Запускается D:\Code\ComTool\debug\ComTool.exe...
D:\Code\ComTool\debug\ComTool.exe завершился с кодом -1073741515

Это меня сильно расстроило, решил пройтись по программе дебагером, но вот что получил:
Цитата
You can't do that without a process to debug
.
Поиск по гуглу ничего утешительного не дал, дебагер у всех работает нормально...
Может подскажете, как быть? Очень расстраивает такое поведение qt...
Заранее спасибо :)
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
SABROG
  опции профиля:
сообщение 23.2.2010, 0:47
Сообщение #2


Профессионал
*****

Группа: Участник
Сообщений: 1207
Регистрация: 8.12.2008
Из: Russia, Moscow
Пользователь №: 446

Спасибо сказали: 229 раз(а)




Репутация:   34  


В QtCreator'e указал путь к gdb? Возможно старая версия gdb.

Если нет времени разбираться с отладчиком в QtCreator'e используй gdb в консоли. http://sourceware.org/gdb/current/onlinedocs/gdb.html

cd D:\Code\ComTool\debug
gdb -ex 'r' comtool.exe
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
neyro
  опции профиля:
сообщение 23.2.2010, 11:08
Сообщение #3


Новичок


Группа: Новичок
Сообщений: 7
Регистрация: 22.2.2010
Пользователь №: 1477

Спасибо сказали: 0 раз(а)




Репутация:   0  


SABROG,
Спасибо, попробовал из консоли, консоль ругнулась на то, что gdb не программа и т.д. Прописал путь к gdb в переменной PATH, в консоли gdb заработал, а вот в QT Creator тот же эффект. Путь к gdb в нем прописан, путь к начальному скрипту пустой.
Хотелось бы все-таки разобраться с отладчиком, какие там настройки нужны?
QT Creator версии 1.3.1(QT 4.6.1).
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
SABROG
  опции профиля:
сообщение 23.2.2010, 12:00
Сообщение #4


Профессионал
*****

Группа: Участник
Сообщений: 1207
Регистрация: 8.12.2008
Из: Russia, Moscow
Пользователь №: 446

Спасибо сказали: 229 раз(а)




Репутация:   34  


Пути к qmake и mingw32-make правильно стоят?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
neyro
  опции профиля:
сообщение 23.2.2010, 17:46
Сообщение #5


Новичок


Группа: Новичок
Сообщений: 7
Регистрация: 22.2.2010
Пользователь №: 1477

Спасибо сказали: 0 раз(а)




Репутация:   0  


В настройках стоит так:
Путь к qmake:
c:\qt\2010.01\qt\bin\qmake.exe
Каталог minigw:
C:\Qt\2010.01\mingw
Помощник отладчика - стоит зеленая галочка.
Что меня смущает - в поле Автопределенная Qt в Path - не найдена.
Переменной Qt среди переменных окружения нет.

Прощу прощения, я видимо напрасно ввел всех в заблуждение...
Сейчас исключил весь код, зависящий от библиотеки QextSerialPort - все, включая дебагер, работает.

Посему вопрос меняется: как правильно подключить библиотеку?
Я делал так:
1) Скопировал папку с исходниками библиотеки в папку рядом с папкой исходников программы.
2) в pro файл добавил строчки:
INCLUDEPATH += D:\Code\qextserialport-1.2win-alpha
QMAKE_LIBDIR += D:\Code\qextserialport-1.2win-alpha\build
LIBS += -lqextserialportd

3) в файле, использующем библиотеку прописал #include "qextserialport.h"
4) собрал, запустил - получил
Цитата
Запускается D:\Code\ComTool\debug\ComTool.exe...
D:\Code\ComTool\debug\ComTool.exe завершился с кодом -1073741515

Дебагер выдает ошибку, про которую уже писал.
Что я не так сделал при подключении библиотеки?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
SABROG
  опции профиля:
сообщение 23.2.2010, 18:13
Сообщение #6


Профессионал
*****

Группа: Участник
Сообщений: 1207
Регистрация: 8.12.2008
Из: Russia, Moscow
Пользователь №: 446

Спасибо сказали: 229 раз(а)




Репутация:   34  


Цитата(neyro @ 23.2.2010, 17:46) *
C:\Qt\2010.01\mingw


Это установщик QtCreator'a туда помещает mingw? У меня он лежит на c:\mingw (я сам ставил, отдельно)

Сообщение отредактировал SABROG - 23.2.2010, 18:13
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
neyro
  опции профиля:
сообщение 23.2.2010, 18:41
Сообщение #7


Новичок


Группа: Новичок
Сообщений: 7
Регистрация: 22.2.2010
Пользователь №: 1477

Спасибо сказали: 0 раз(а)




Репутация:   0  


SABROG,
Да, это при установке QT SDK все так установилось.
А про библиотеку не знаете? Я не думаю, что проблема в самой этой библиотеке - скорее я где-то напортачил. Не приходилось еще дело с библиотеками иметь...
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
SABROG
  опции профиля:
сообщение 23.2.2010, 19:00
Сообщение #8


Профессионал
*****

Группа: Участник
Сообщений: 1207
Регистрация: 8.12.2008
Из: Russia, Moscow
Пользователь №: 446

Спасибо сказали: 229 раз(а)




Репутация:   34  


Скачай программу depends (Dependency Walker), открой ей свою программу и запусти профайлинг (F7)

Ошибка -1073741515 - C0000135 - 135 - STATUS_DLL_NOT_FOUND

Полагаю библиотека QExtSerialPort собрана динамически. Значит должна быть какая-нибудь QExtSerialPortd.dll, которую почему-то не поместили в одну и ту же папку где и ComTool.exe

gdb пытается загрузить программу, но операционка ему показывает кукиш, так как программа требует .dll, а раз нет загруженной программы (process), то gdb ругается:

Цитата
You can't do that without a process to debug


Сообщение отредактировал SABROG - 23.2.2010, 19:03
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
neyro
  опции профиля:
сообщение 23.2.2010, 19:31
Сообщение #9


Новичок


Группа: Новичок
Сообщений: 7
Регистрация: 22.2.2010
Пользователь №: 1477

Спасибо сказали: 0 раз(а)




Репутация:   0  


SABROG,
Оооо, скопировал библиотеку к экзешнику, и все заработало. В связи с этим всплывает вопрос: что нужно указать такого в pro файле(а может еще где), чтобы библиотека копировалась сама?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
SABROG
  опции профиля:
сообщение 23.2.2010, 19:52
Сообщение #10


Профессионал
*****

Группа: Участник
Сообщений: 1207
Регистрация: 8.12.2008
Из: Russia, Moscow
Пользователь №: 446

Спасибо сказали: 229 раз(а)




Репутация:   34  


Секция INSTALLS

Пример из QtCreator'a

include(../qtcreator.pri)

win32 {
    DLLDESTDIR = $$IDE_APP_PATH
}

DESTDIR = $$IDE_LIBRARY_PATH

include(rpath.pri)

TARGET = $$qtLibraryTarget($$TARGET)

contains(QT_CONFIG, reduce_exports):CONFIG += hide_symbols

!macx {
    win32 {
        target.path = /bin
        target.files = $$DESTDIR/$${TARGET}.dll
    } else {
        target.path = /$$IDE_LIBRARY_BASENAME/qtcreator
    }
    INSTALLS += target
}


Потом make install и запускаешь уже оттуда.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

2 страниц V   1 2 >
Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 25.4.2024, 16:03