crossplatform.ru

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

2 страниц V   1 2 >  
Ответить в данную темуНачать новую тему
> Не работает отладчик в Qt Creator
DarkDiamonD
  опции профиля:
сообщение 6.2.2010, 7:10
Сообщение #1


Новичок


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

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




Репутация:   0  


Здравствуйте!
Не могу настроить отладчик под Qt Creator.
После запуска в режиме отладчика программа сразу же падает, получив segmentation fault. При запуске без отладки все нормально.

Читал, что дело может быть в том что не собраны отладочная версия библиотеки Qt, но так толком и не прошарил, что делать.
У меня установлена qt-sdk-win-opensource-2010.01 (Qt 4.6.1 + Qt Creator 1.3.1) Ставил инсталятором. Перед этим также поставил Debugging Tools for Windows последней версии, т.к. где-то прочитал что SDK с ним работает. Честно говоря, я совсем запутался как это все друг другом и все вместе используется. Сборка проде проходит нормально. Проблемы возникают только при выполнении в режиме отладчика.

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

Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
sharpey
  опции профиля:
сообщение 6.2.2010, 13:37
Сообщение #2


Новичок


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

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




Репутация:   0  


Если не ошибаюсь, Вы программируете под Windows. Тогда ответьте на такой вопрос: установлен ли на проблемном ПК Daemon Tools 4-й версии?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Litkevich Yuriy
  опции профиля:
сообщение 6.2.2010, 14:48
Сообщение #3


разработчик РЭА
*******

Группа: Сомодератор
Сообщений: 9669
Регистрация: 9.1.2008
Из: Тюмень
Пользователь №: 64

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




Репутация:   94  


Цитата(DarkDiamonD @ 6.2.2010, 10:10) *
Читал, что дело может быть в том что не собраны отладочная версия библиотеки Qt, но так толком и не прошарил, что делать.
У меня установлена qt-sdk-win-opensource-2010.01 (Qt 4.6.1 + Qt Creator 1.3.1) Ставил инсталятором.
начиная с Qt 4.5. инсталятор содержит и отладочные и релизные библиотеки.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
DarkDiamonD
  опции профиля:
сообщение 7.2.2010, 2:52
Сообщение #4


Новичок


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

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




Репутация:   0  


Цитата(sharpey @ 6.2.2010, 16:37) *
Если не ошибаюсь, Вы программируете под Windows. Тогда ответьте на такой вопрос: установлен ли на проблемном ПК Daemon Tools 4-й версии?

Да, под Windows. Под Linux все работает как надо без дополнительных плясок.
Daemon Tools не стоит никакая. Пользуюсь Алкоголем 120%, но и он постоянно в памяти не висит, ибо крайне редко нужен.
Я пользуюсь еще COMODO Internet Security с проактивной защитой Думал что влияет, так отрубил полностью и попытался запустить отладку - результат тот же. :(

Цитата(Litkevich Yuriy @ 6.2.2010, 17:48) *
начиная с Qt 4.5. инсталятор содержит и отладочные и релизные библиотеки.

Насколько я понял, да. В C:\Qt\2010.01\qt\lib\ на каждую либу по два файла: libQtLibname4.a и libQtLibnamed4.a, а в C:\Qt\2010.01\qt\bin\ соответствующие dll'ки. Да и в принципе, как я понимаю, если бы не было отладочных версий библиотек, то не сработал бы линкер для Debug версии программы.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
CrackedMind
  опции профиля:
сообщение 7.2.2010, 3:11
Сообщение #5


Студент
*

Группа: Участник
Сообщений: 44
Регистрация: 13.3.2009
Пользователь №: 611

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




Репутация:   0  


Debugging Tools for Windows нужен если вы собираете проект MSVC++.

Может распишите по шагам что делаете и что происходит потом.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
DarkDiamonD
  опции профиля:
сообщение 7.2.2010, 3:47
Сообщение #6


Новичок


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

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




Репутация:   0  


Цитата(CrackedMind @ 7.2.2010, 6:11) *
Может распишите по шагам что делаете и что происходит потом.


Создал примитивный проект:
TEMPLATE = app
SOURCES += main.cpp

main.cpp
#include <QtGui>
int main (int argc, char** argv)
{
    QApplication app(argc, argv);
    QPushButton button("Hello World!!!");
    button.show();
    return app.exec();
}

Жму "Начать отладку". Вот что пишет сборщик:
Раскрывающийся текст

Выполняется сборка проекта SimpleProj...

Запускается: c:/qt/2010.01/qt/bin/qmake.exe E:/Dima/Geophysics/My programs/SimpleProj/SimpleProj.pro -spec win32-g++ -r
Завершено с кодом 0.
Запускается: C:/Qt/2010.01/mingw/bin/mingw32-make.exe -w

mingw32-make: Entering directory `E:/Dima/Geophysics/My programs/SimpleProj'
C:/Qt/2010.01/mingw/bin/mingw32-make -f Makefile.Debug
mingw32-make[1]: Entering directory `E:/Dima/Geophysics/My programs/SimpleProj'
g++ -c -g -frtti -fexceptions -mthreads -Wall -DUNICODE -DQT_LARGEFILE_SUPPORT -DQT_DLL -DQT_GUI_LIB -DQT_CORE_LIB -DQT_THREAD_SUPPORT -DQT_NEEDS_QMAIN -I"c:\Qt\2010.01\qt\include\QtCore" -I"c:\Qt\2010.01\qt\include\QtGui" -I"c:\Qt\2010.01\qt\include" -I"c:\Qt\2010.01\qt\include\ActiveQt" -I"debug" -I"c:\Qt\2010.01\qt\mkspecs\win32-g++" -o debug\main.o main.cpp
g++ -enable-stdcall-fixup -Wl,-enable-auto-import -Wl,-enable-runtime-pseudo-reloc -mthreads -Wl -Wl,-subsystem,windows -o debug\SimpleProj.exe debug/main.o -L"c:\Qt\2010.01\qt\lib" -lmingw32 -lqtmaind -lQtGuid4 -lQtCored4
mingw32-make[1]: Leaving directory `E:/Dima/Geophysics/My programs/SimpleProj'
mingw32-make: Leaving directory `E:/Dima/Geophysics/My programs/SimpleProj'
Завершено с кодом 0.

После чего открывается окно Дизасемблера
Раскрывающийся текст
 0x10017cd1     jge    0x10017caf <guard32!?Exported@@YAXXZ+87183>
0x10017cd3     add    %dl,(%eax)
0x10017cd5     add    %al,(%eax)
0x10017cd7     jne    0x10017cef <guard32!?Exported@@YAXXZ+87247>
0x10017cd9     testw  $0x100,-0x20(%ebp)
0x10017cdf     jne    0x10017cef <guard32!?Exported@@YAXXZ+87247>
0x10017ce1     andl   $0x0,-0x4(%ebp)
    0x10017ce5     cmpw   $0x5a4d,(%esi)
0x10017cea     je     0x10017cfa <guard32!?Exported@@YAXXZ+87258>
0x10017cec     mov    %edi,-0x4(%ebp)
0x10017cef     mov    -0x28(%ebp),%eax
0x10017cf2     mov    -0x34(%ebp),%ecx
0x10017cf5     lea    (%eax,%ecx,1),%esi
0x10017cf8     jmp    0x10017cbf <guard32!?Exported@@YAXXZ+87199>
0x10017cfa     mov    0x3c(%esi),%eax
0x10017cfd     add    %esi,%eax
0x10017cff     cmpl   $0x4550,(%eax)
0x10017d05     jne    0x10017cec <guard32!?Exported@@YAXXZ+87244>
0x10017d07     mov    %edi,-0x4(%ebp)
0x10017d0a     mov    %esi,%eax
0x10017d0c     call   0x1000ff65 <guard32!?Exported@@YAXXZ+55109>
0x10017d11     ret    $0x4
0x10017d14     xor    %eax,%eax
0x10017d16     inc    %eax
0x10017d17     ret    
0x10017d18     mov    -0x18(%ebp),%esp
0x10017d1b     movl   $0xfffffffe,-0x4(%ebp)
0x10017d22     xor    %eax,%eax
0x10017d24     jmp    0x10017d0c <guard32!?Exported@@YAXXZ+87276>
0x10017d26     push   $0xc
0x10017d28     push   $0x10020348
0x10017d2d     call   0x1000ff20 <guard32!?Exported@@YAXXZ+55040>
0x10017d32     mov    0x8(%ebp),%eax
0x10017d35     mov    %eax,0x8(%ebp)
0x10017d38     xor    %edi,%edi
0x10017d3a     cmp    %edi,%eax
0x10017d3c     jne    0x10017d48 <guard32!?Exported@@YAXXZ+87336>
0x10017d3e     push   %edi
0x10017d3f     call   *0x1001b040
0x10017d45     mov    %eax,0x8(%ebp)
0x10017d48     mov    %edi,-0x4(%ebp)

Стрелка останавливается на 8 строке "0x10017ce5 cmpw $0x5a4d,(%esi)"
И вылетает мессаджбокс
"Приложение остановлено, т.к. получило сигнал от операционной системы.
Сигнал: SIGSEGV
Назначение: Segmentation fault"
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
DEADHUNT
  опции профиля:
сообщение 7.2.2010, 10:58
Сообщение #7


Активный участник
***

Группа: Участник
Сообщений: 430
Регистрация: 15.4.2009
Пользователь №: 686

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




Репутация:   2  


значит адрес на который указывает esi не доступен.

Сообщение отредактировал DEADHUNT - 7.2.2010, 11:00
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
MoPDoBoPoT
  опции профиля:
сообщение 7.2.2010, 16:57
Сообщение #8


Участник
**

Группа: Участник
Сообщений: 172
Регистрация: 7.5.2009
Из: Москва
Пользователь №: 738

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




Репутация:   9  


Цитата(DarkDiamonD @ 7.2.2010, 2:52) *
Я пользуюсь еще COMODO Internet Security

У моего одногруппника проблема при дебаге была из-за этого фаервола, причем отключение COMODO не помогало. В итоге он как-то настроил, но как - хз.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Rocky
  опции профиля:
сообщение 7.2.2010, 17:22
Сообщение #9


Старейший участник
****

Группа: Участник
Сообщений: 530
Регистрация: 22.12.2008
Из: Санкт-Петербург
Пользователь №: 463

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




Репутация:   7  


Интересно причем тут фаервол и отладчик( Он что стучится в инет и сообщает разработчикам Qt кто что пишет? :crazy:
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Kagami
  опции профиля:
сообщение 7.2.2010, 17:24
Сообщение #10


Старейший участник
****

Группа: Участник
Сообщений: 601
Регистрация: 2.2.2009
Пользователь №: 523

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




Репутация:   9  


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

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


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




RSS Текстовая версия Сейчас: 27.12.2024, 12:28