Russian Qt Forum
Сентябрь 30, 2024, 12:26 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: 1 [2] 3   Вниз
  Печать  
Автор Тема: Падает gdb при пошаговой отладке в QtCreator 2.0.1 в конструкторе QString  (Прочитано 20704 раз)
crossly
Гость
« Ответ #15 : Октябрь 08, 2010, 12:52 »

creator 1.3.1 gdb 6.8... проблемы нету
как я писал выше, у меня со старым creator (< 2.0) тоже проблемы нет... интересует >=2.0
так все же мот дело не в gdb??
Записан
Mechanik
Гость
« Ответ #16 : Октябрь 08, 2010, 13:00 »

Я хз что такое "abrtd". У меня в дебиане его нету. И гуголь не охотно сознаётся. И для coredump'a он не нужен, то есть coredump можно получить и без него. И вообще твой дистрибутивный gdb по идее будет без отладочной информации. А чтобы её заиметь, нужно его собрать с отладкой. Куда dump  валится - наверное в текущий каталог под именем "core". Это можно настроить через /proc/sys/kernel/core_pattern(man 5 core).
abrt - an automated bug-reporting tool,  перехватывает падения и теоретически может сама отправить bugreport... дамп при этом в текущий каталог не записывается.  хм, а надо попробовать ей отправить )
Да, насчет того, что у меня дампа не было и при выключенной abrt - действительно, gdb собран без отладки, это мысль, спасибо.
В любом случае, перед bugreport'ингом хотелось бы зафиксировать еще где-то подобные явления...
Записан
Mechanik
Гость
« Ответ #17 : Октябрь 08, 2010, 13:05 »

так все же мот дело не в gdb??
может и так, но падает именно он... падает, как видно по стеку, при вызове __strlen_sse2 () из /lib/libc.so.6. Может, дело в glibc. Может, creator, хотя тогда проблема была бы более массовая... Потому спрашиваю про версии )
Записан
gogi
Гость
« Ответ #18 : Октябрь 08, 2010, 13:23 »

может и так, но падает именно он... падает, как видно по стеку, при вызове __strlen_sse2 () из /lib/libc.so.6. Может, дело в glibc. Может, creator, хотя тогда проблема была бы более массовая... Потому спрашиваю про версии )

Если ориентироваться на это
Цитировать
Если в QtCreator 2.0.1 поставить точку останова на строчку "QString...", а затем продолжить отладку (любым способом - F5,F10,F11) - появляется сообщение "Приложение остановлено, т.к. оно получило сигнал от операционной системы. Сигнал: SIGABRT Назначение: Aborted", отладка завершается. Стек:
Код:

Thread 1 (Thread 0xb7fe38e0 (LWP 17588)):
#0  0x001867f7 in __strlen_sse2 () from /lib/libc.so.6
#1  0x00de02dc in qstrlen (str=<value optimized out>) at ../../include/QtCore/../../src/corelib/tools/qbytearray.h:68
#2  QString::fromLatin1_helper (str=<value optimized out>) at /var/tmp/qt-src/src/corelib/tools/qstring.cpp:3713
#3  0x00de6f11 in QString::fromAscii_helper (str=0x8048724 "asdsad", size=134514468) at /var/tmp/qt-src/src/corelib/tools/qstring.cpp:3774
#4  0x08048621 in QString::QString (this=0xbffff788, ch=0x8048724 "asdsad") at /opt/qtsdk-2010.05/qt/include/QtCore/qstring.h:426
#5  0x080485d1 in main (argc=1, argv=0xbffff844) at main.cpp:4
То может падает всё-таки программа? Баг в Qt 4.7.0? Попробуй запустить без креатора. И отладиться в консольном gdb.
Записан
Mechanik
Гость
« Ответ #19 : Октябрь 08, 2010, 13:24 »

Похоже, сам gdb ни при чем. Прогнал вручную:
Цитировать
[nik@nik test_gdb_crush]# gdb ./test_gdb_crush
GNU gdb (GDB) Fedora (7.0.1-50.fc12)
Copyright (C) 2009 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.  Type "show copying"
and "show warranty" for details.
This GDB was configured as "i686-redhat-linux-gnu".
For bug reporting instructions, please see:
<http://www.gnu.org/software/gdb/bugs/>...
Reading symbols from /home/nik/projects/simple/test_gdb_crush/test_gdb_crush...done.
(gdb) b main.cpp:7
Breakpoint 1 at 0x80486b9: file main.cpp, line 7.
(gdb) r
Starting program: /home/nik/projects/simple/test_gdb_crush/test_gdb_crush
[Thread debugging using libthread_db enabled]

Breakpoint 1, main (argc=1, argv=0xbffff634) at main.cpp:7
7       QString("asdsad");
Missing separate debuginfos, use: debuginfo-install glib2-2.22.5-1.fc12.i686 glibc-2.11.1-1.i686 libgcc-4.4.2-7.fc12.i686 libstdc++-4.4.2-7.fc12.i686
(gdb) n
8       int i=1;
(gdb) n
9   }
(gdb) n
0x00913bb6 in __libc_start_main () from /lib/libc.so.6
(gdb) n
Single stepping until exit from function __libc_start_main,
which has no line number information.

Program exited normally.
(gdb)
все ок. Т.е. дело все-таки в QtCreator?
Записан
Mechanik
Гость
« Ответ #20 : Октябрь 08, 2010, 13:27 »

То может падает всё-таки программа? Баг в Qt 4.7.0? Попробуй запустить без креатора. И отладиться в консольном gdb.
Вот и мне пришла такая мысль в голову, прочитал после своего поста уже )) Насчет бага в Qt - с Qt 4.6.2 то же самое...
Записан
gogi
Гость
« Ответ #21 : Октябрь 08, 2010, 13:30 »

Я таких рекомендаций в документации не видел. Насколько понимаю, классы Qt вполне можно использовать без приложений Qt, которые предназначены для организации и обработки цикла событий.

Ну для простых хэллоувордов может и прокатит. Но если чего посложнее, мы же не вникаем в реализацию всех этих Кутешных классов, может там и события нужны.
Записан
Mechanik
Гость
« Ответ #22 : Октябрь 08, 2010, 13:46 »

Ну для простых хэллоувордов может и прокатит. Но если чего посложнее, мы же не вникаем в реализацию всех этих Кутешных классов, может там и события нужны.
ну так тут хеллоуворд и есть. Столкнулся вначале с проблемой в проекте после перехода на новый креатор, чтоб ее изолировать - сделал такую вот максимально простую болванку.
Записан
gogi
Гость
« Ответ #23 : Октябрь 08, 2010, 13:54 »

все ок. Т.е. дело все-таки в QtCreator?

Иди в http://bugreports.qt.nokia.com/ и делай репорт. gdb падает? Нет. Программа автономно падает? Нет. Значит дело в креаторе.
Записан
Vass
Гость
« Ответ #24 : Октябрь 08, 2010, 13:58 »

Debian GNU/Linux 2.6.30-2-686 #1 SMP Fri Dec 4 00:53:20 UTC 2009 i686
QtCreator 2.0.1
Qt 4.7.0 release
GNU gdb (GDB) 7.2-debian
glibc 2.11.1-1

Проблемы нет.
Записан
gogi
Гость
« Ответ #25 : Октябрь 08, 2010, 19:08 »

Проверил на i686-ом Arch'е
Не падает
gcc - 4.5.1
Qt - 4.7.0
QtCreator - 2.0.1
qlibc - 2.12.1

Подозреваю что у тебя 64-х битная федора (из-за функции __strlen_sse2). Может причина и в этом?
Записан
xokc
Птица говорун
*****
Offline Offline

Сообщений: 976



Просмотр профиля
« Ответ #26 : Октябрь 10, 2010, 10:55 »

QtCreator 2.0.1, Qt 4.7.0 (64 bit) - не падает
Записан
Mechanik
Гость
« Ответ #27 : Октябрь 11, 2010, 07:51 »

Подозреваю что у тебя 64-х битная федора (из-за функции __strlen_sse2). Может причина и в этом?
да нет, 32:
Код:
[nik@nik /]$ uname --a
Linux nik 2.6.31.5-127.fc12.i686.PAE #1 SMP Sat Nov 7 21:25:57 EST 2009 i686 i686 i386 GNU/Linux
Записан
Mechanik
Гость
« Ответ #28 : Октябрь 11, 2010, 08:17 »

Спасибо откликнувшимся. Пока осторожно предположу, что виноват все-таки gdb...
QtCreator 2.0.1, Qt 4.7.0 (64 bit) - не падает
а gdb, glibc какие?
Записан
xokc
Птица говорун
*****
Offline Offline

Сообщений: 976



Просмотр профиля
« Ответ #29 : Октябрь 11, 2010, 18:55 »

GNU gdb (GDB) 7.1-ubuntu
gcc (Ubuntu 4.4.3-4ubuntu5) 4.4.3
qlibc 2.11.1-0ubuntu7.2
Записан
Страниц: 1 [2] 3   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.161 секунд. Запросов: 23.