Double Commander

Official forum
It is currently Mon May 20, 2013 4:37 pm

All times are UTC + 3 hours [ DST ]




Post new topic Reply to topic  [ 20 posts ]  Go to page Previous  1, 2
Author Message
PostPosted: Sat Oct 01, 2011 10:41 pm 
Offline
Developer
User avatar

Joined: Wed Apr 01, 2009 9:17 pm
Posts: 761
Location: Poland
Ok, so that's not it.

Can you try changing themes, maybe it doesn't work with your current theme.
I know there are problems with Oxygen theme.

If you have "gdb" installed then you can try:
Code:
$> gdb doublecmd

then
Code:
(gdb)> run

and when it crashes
Code:
(gdb)> bt

It must show in what library it crashes.


Top
 Profile  
 
PostPosted: Sun Oct 02, 2011 9:48 am 
Offline

Joined: Wed Apr 14, 2010 11:59 pm
Posts: 16
$gdb doublecmd
GNU gdb (GDB) 7.2
Copyright (C) 2010 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-frugalware-linux".
For bug reporting instructions, please see:

Widgetset library: QT 4.7.4, libQt4Pas 4.5.3
This program is free software released under terms of GNU GPL 2
(C)opyright 2006-2011 Koblov Alexander (Alexx2000@mail.ru)
and contributors (see about dialog)
Executable directory: /home/kikadf/install/build/
Loading configuration...
Creating PixmapManager
Theme Frugalware-KDE4 not found.
Theme dctheme not found.
UDisks: Service found running.
UDisks: Version 1.0.3
Creating TFileSystemFileSource
TColumnsFileView.Create components
[New Thread 0xb2b14b70 (LWP 1666)]
FileSystemWatcher thread starting
[New Thread 0xb26d2b70 (LWP 1667)]
TColumnsFileView.Create components
[New Thread 0xb22c8b70 (LWP 1668)]
frmMain.frmMainShow

Program received signal SIGSEGV, Segmentation fault.
0xb5ca75ce in ?? () from /usr/lib/libQtGui.so.4
(gdb) bt
#0 0xb5ca75ce in ?? () from /usr/lib/libQtGui.so.4
#1 0xb5ec65ec in ?? () from /usr/lib/libQtGui.so.4
#2 0xb5ec0acd in ?? () from /usr/lib/libQtGui.so.4
#3 0xb5ec0c3a in ?? () from /usr/lib/libQtGui.so.4
#4 0xb5ecb014 in ?? () from /usr/lib/libQtGui.so.4
#5 0xb5e8efea in ?? () from /usr/lib/libQtGui.so.4
#6 0xb5ea052b in ?? () from /usr/lib/libQtGui.so.4
#7 0xb5e06d3b in QPaintEngineEx::draw(QVectorPath const&) ()
from /usr/lib/libQtGui.so.4
#8 0xb5e09f8c in QPaintEngineEx::drawPath(QPainterPath const&) ()
from /usr/lib/libQtGui.so.4
#9 0xb5e1a7d1 in QPainter::drawPath(QPainterPath const&) ()
from /usr/lib/libQtGui.so.4
#10 0xb5e184fc in ?? () from /usr/lib/libQtGui.so.4
---Type <return> to continue, or q <return> to quit---
#11 0xb5e1a821 in QPainter::drawPath(QPainterPath const&) ()
from /usr/lib/libQtGui.so.4
#12 0xb5e1ad84 in QPainter::fillPath(QPainterPath const&, QBrush const&) ()
from /usr/lib/libQtGui.so.4
#13 0xb3f55535 in QtCurve::Style::drawBevelGradientReal(QColor const&, QPainter*, QRect const&, QPainterPath const&, bool, bool, EAppearance, EWidget) const
() from /usr/lib/kde4/plugins/styles/qtcurve.so
#14 0xb3f59a24 in QtCurve::Style::drawBevelGradient(QColor const&, QPainter*, QRect const&, QPainterPath const&, bool, bool, EAppearance, EWidget, bool) const () from /usr/lib/kde4/plugins/styles/qtcurve.so
#15 0xb3f5a55b in QtCurve::Style::drawLightBevelReal(QPainter*, QRect const&, QStyleOption const*, QWidget const*, int, QColor const&, QColor const*, bool, EWidget, bool, ERound, bool) const ()
from /usr/lib/kde4/plugins/styles/qtcurve.so
---Type <return> to continue, or q <return> to quit---
#16 0xb3f5ce6c in QtCurve::Style::drawLightBevel(QPainter*, QRect const&, QStyleOption const*, QWidget const*, int, QColor const&, QColor const*, bool, EWidget) const () from /usr/lib/kde4/plugins/styles/qtcurve.so
#17 0xb3f6681e in QtCurve::Style::drawComplexControl(QStyle::ComplexControl, QStyleOptionComplex const*, QPainter*, QWidget const*) const ()
from /usr/lib/kde4/plugins/styles/qtcurve.so
#18 0xb6166550 in QScrollBar::paintEvent(QPaintEvent*) ()
from /usr/lib/libQtGui.so.4
#19 0xb5d0cf7a in QWidget::event(QEvent*) () from /usr/lib/libQtGui.so.4
#20 0xb60c5663 in QAbstractSlider::event(QEvent*) ()
from /usr/lib/libQtGui.so.4
#21 0xb6166409 in QScrollBar::event(QEvent*) () from /usr/lib/libQtGui.so.4
#22 0xb5cb3094 in QApplicationPrivate::notify_helper(QObject*, QEvent*) ()
from /usr/lib/libQtGui.so.4
---Type <return> to continue, or q <return> to quit---
#23 0xb5cb84f8 in QApplication::notify(QObject*, QEvent*) ()
from /usr/lib/libQtGui.so.4
#24 0xb58f8d7e in QCoreApplication::notifyInternal(QObject*, QEvent*) ()
from /usr/lib/libQtCore.so.4
#25 0xb5d09dda in QWidgetPrivate::drawWidget(QPaintDevice*, QRegion const&, QPoint const&, int, QPainter*, QWidgetBackingStore*) ()
from /usr/lib/libQtGui.so.4
#26 0xb5d0ab0c in QWidgetPrivate::paintSiblingsRecursive(QPaintDevice*, QList<QObject*> const&, int, QRegion const&, QPoint const&, int, QPainter*, QWidgetBackingStore*) () from /usr/lib/libQtGui.so.4
#27 0xb5d09b38 in QWidgetPrivate::drawWidget(QPaintDevice*, QRegion const&, QPoint const&, int, QPainter*, QWidgetBackingStore*) ()
from /usr/lib/libQtGui.so.4
#28 0xb5d0ab0c in QWidgetPrivate::paintSiblingsRecursive(QPaintDevice*, QList<Q---Type <return> to continue, or q <return> to quit---
Object*> const&, int, QRegion const&, QPoint const&, int, QPainter*, QWidgetBackingStore*) () from /usr/lib/libQtGui.so.4
#29 0xb5d09b38 in QWidgetPrivate::drawWidget(QPaintDevice*, QRegion const&, QPoint const&, int, QPainter*, QWidgetBackingStore*) ()
from /usr/lib/libQtGui.so.4
#30 0xb5d0ab0c in QWidgetPrivate::paintSiblingsRecursive(QPaintDevice*, QList<QObject*> const&, int, QRegion const&, QPoint const&, int, QPainter*, QWidgetBackingStore*) () from /usr/lib/libQtGui.so.4
#31 0xb5d0a9d2 in QWidgetPrivate::paintSiblingsRecursive(QPaintDevice*, QList<QObject*> const&, int, QRegion const&, QPoint const&, int, QPainter*, QWidgetBackingStore*) () from /usr/lib/libQtGui.so.4
#32 0xb5d09b38 in QWidgetPrivate::drawWidget(QPaintDevice*, QRegion const&, QPoint const&, int, QPainter*, QWidgetBackingStore*) ()
from /usr/lib/libQtGui.so.4
---Type <return> to continue, or q <return> to quit---
#33 0xb5d0ab0c in QWidgetPrivate::paintSiblingsRecursive(QPaintDevice*, QList<QObject*> const&, int, QRegion const&, QPoint const&, int, QPainter*, QWidgetBackingStore*) () from /usr/lib/libQtGui.so.4
#34 0xb5d09b38 in QWidgetPrivate::drawWidget(QPaintDevice*, QRegion const&, QPoint const&, int, QPainter*, QWidgetBackingStore*) ()
from /usr/lib/libQtGui.so.4
#35 0xb5d0ab0c in QWidgetPrivate::paintSiblingsRecursive(QPaintDevice*, QList<QObject*> const&, int, QRegion const&, QPoint const&, int, QPainter*, QWidgetBackingStore*) () from /usr/lib/libQtGui.so.4
#36 0xb5d09b38 in QWidgetPrivate::drawWidget(QPaintDevice*, QRegion const&, QPoint const&, int, QPainter*, QWidgetBackingStore*) ()
from /usr/lib/libQtGui.so.4
#37 0xb5d0ab0c in QWidgetPrivate::paintSiblingsRecursive(QPaintDevice*, QList<QObject*> const&, int, QRegion const&, QPoint const&, int, QPainter*, QWidgetBac---Type <return> to continue, or q <return> to quit---
kingStore*) () from /usr/lib/libQtGui.so.4
#38 0xb5d09b38 in QWidgetPrivate::drawWidget(QPaintDevice*, QRegion const&, QPoint const&, int, QPainter*, QWidgetBackingStore*) ()
from /usr/lib/libQtGui.so.4
#39 0xb5d0ab0c in QWidgetPrivate::paintSiblingsRecursive(QPaintDevice*, QList<QObject*> const&, int, QRegion const&, QPoint const&, int, QPainter*, QWidgetBackingStore*) () from /usr/lib/libQtGui.so.4
#40 0xb5d09b38 in QWidgetPrivate::drawWidget(QPaintDevice*, QRegion const&, QPoint const&, int, QPainter*, QWidgetBackingStore*) ()
from /usr/lib/libQtGui.so.4
#41 0xb5d0ab0c in QWidgetPrivate::paintSiblingsRecursive(QPaintDevice*, QList<QObject*> const&, int, QRegion const&, QPoint const&, int, QPainter*, QWidgetBackingStore*) () from /usr/lib/libQtGui.so.4
#42 0xb5d09b38 in QWidgetPrivate::drawWidget(QPaintDevice*, QRegion const&, QPo---Type <return> to continue, or q <return> to quit---
int const&, int, QPainter*, QWidgetBackingStore*) ()
from /usr/lib/libQtGui.so.4
#43 0xb5d0ab0c in QWidgetPrivate::paintSiblingsRecursive(QPaintDevice*, QList<QObject*> const&, int, QRegion const&, QPoint const&, int, QPainter*, QWidgetBackingStore*) () from /usr/lib/libQtGui.so.4
#44 0xb5d09b38 in QWidgetPrivate::drawWidget(QPaintDevice*, QRegion const&, QPoint const&, int, QPainter*, QWidgetBackingStore*) ()
from /usr/lib/libQtGui.so.4
#45 0xb5d0ab0c in QWidgetPrivate::paintSiblingsRecursive(QPaintDevice*, QList<QObject*> const&, int, QRegion const&, QPoint const&, int, QPainter*, QWidgetBackingStore*) () from /usr/lib/libQtGui.so.4
#46 0xb5d09b38 in QWidgetPrivate::drawWidget(QPaintDevice*, QRegion const&, QPoint const&, int, QPainter*, QWidgetBackingStore*) ()
from /usr/lib/libQtGui.so.4
---Type <return> to continue, or q <return> to quit---
#47 0xb5eef922 in ?? () from /usr/lib/libQtGui.so.4
#48 0xb5cff6fb in QWidgetPrivate::syncBackingStore() ()
from /usr/lib/libQtGui.so.4
#49 0xb5d0d907 in QWidget::event(QEvent*) () from /usr/lib/libQtGui.so.4
#50 0xb5cb3094 in QApplicationPrivate::notify_helper(QObject*, QEvent*) ()
from /usr/lib/libQtGui.so.4
#51 0xb5cb84f8 in QApplication::notify(QObject*, QEvent*) ()
from /usr/lib/libQtGui.so.4
#52 0xb58f8d7e in QCoreApplication::notifyInternal(QObject*, QEvent*) ()
from /usr/lib/libQtCore.so.4
#53 0xb58fc544 in QCoreApplicationPrivate::sendPostedEvents(QObject*, int, QThreadData*) () from /usr/lib/libQtCore.so.4
#54 0xb58fc68c in QCoreApplication::sendPostedEvents(QObject*, int) ()
from /usr/lib/libQtCore.so.4
---Type <return> to continue, or q <return> to quit---
#55 0xb5926a84 in ?? () from /usr/lib/libQtCore.so.4
#56 0xb7b4dda2 in g_main_context_dispatch () from /usr/lib/libglib-2.0.so.0
#57 0xb7b4e580 in g_main_context_iterate.clone.5 ()
from /usr/lib/libglib-2.0.so.0
#58 0xb7b4e834 in g_main_context_iteration () from /usr/lib/libglib-2.0.so.0
#59 0xb5926eb7 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/libQtCore.so.4
#60 0xb5d6682a in ?? () from /usr/lib/libQtGui.so.4
#61 0xb58fc923 in QCoreApplication::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/libQtCore.so.4
#62 0xb7e45b43 in QCoreApplication_processEvents ()
from /usr/lib/libQt4Pas.so.5
#63 0x081b4e03 in TQTWIDGETSET__APPWAITMESSAGE (this=<error reading variable>)
at ./qt/qtobject.inc:256
---Type <return> to continue, or q <return> to quit---
#64 0x080b3fb1 in TAPPLICATION__IDLE (WAIT=true,
this=<error reading variable>) at ./include/application.inc:401
#65 0x080b5be0 in TAPPLICATION__HANDLEMESSAGE (this=<error reading variable>)
at ./include/application.inc:1265
#66 0x080b5fee in TAPPLICATION__RUNLOOP (this=<error reading variable>)
at ./include/application.inc:1397
#67 0x081b4de1 in TQTWIDGETSET__APPRUN (
ALOOP=0x80b5fb0 <TAPPLICATION__RUNLOOP>, this=<error reading variable>)
at ./qt/qtobject.inc:239
#68 0x080b5fa6 in TAPPLICATION__RUN (this=<error reading variable>)
at ./include/application.inc:1385
#69 0x08061efd in main () at doublecmd.lpr:117


Top
 Profile  
 
PostPosted: Sun Oct 02, 2011 9:54 am 
Offline

Joined: Wed Apr 14, 2010 11:59 pm
Posts: 16
I change my theme too, but dc crash again.


Top
 Profile  
 
PostPosted: Sun Oct 02, 2011 5:56 pm 
Offline
Developer
User avatar

Joined: Wed Apr 01, 2009 9:17 pm
Posts: 761
Location: Poland
It seems to be the issue with SSE CPU instructions, same as here:
http://www.lazarus.freepascal.org/index ... ic=10749.0

But it should be fixed when using libQt4Pas 2.4. Did you build libQt4Pas yourself? This problem should not appear if it is built with "-mstackrealign" (it is at the beginning of Qt4Pas.pro file in libQt4Pas sources). What Linux distribution you use? Maybe your compiler version doesn't support "-mstackrealign".

Sorry, by changing theme I meant changing QT style.
Can you run with
Code:
doublecmd -style plastique
or
Code:
doublecmd -graphicssystem raster
?


Top
 Profile  
 
PostPosted: Sun Oct 02, 2011 7:07 pm 
Offline

Joined: Wed Apr 14, 2010 11:59 pm
Posts: 16
I use frugalware, I build libqtpascal.

'./doublecmd -graphicssystem raster' doesn't work.
'./doublecmd -style plastique' is working :Yahoo!:

What styles is working with dc-qt?


Top
 Profile  
 
PostPosted: Sun Oct 02, 2011 7:45 pm 
Offline
Developer
User avatar

Joined: Wed Apr 01, 2009 9:17 pm
Posts: 761
Location: Poland
It should work with all styles. But it has problems with for example Oxygen because it causes Qt to use SSE. Maybe your default QT style is Oxygen? (check with
Code:
qtconfig
)

Can you somehow confirm that you are building libQtPas with "-mstackrealign"? You should get a message like:
"Added -mstackrealign to CXXFLAGS in support of SSE on arch:"
Look at the beginning of Qt4Pas.pro. Maybe it is not automatically included for you? Or simply try to force it by always adding
Code:
QMAKE_CXXFLAGS += -mstackrealign


Also, what do you get when you run:
Code:
gcc --target-help | grep stackrealign


Top
 Profile  
 
PostPosted: Sun Oct 02, 2011 8:56 pm 
Offline

Joined: Wed Apr 14, 2010 11:59 pm
Posts: 16
I look my libqtpascal build log:
(examples)
...
==> qmake
Project MESSAGE: Added -mstackrealign to CXXFLAGS in support of SSE on arch: i686
...
==> make
g++ -c -pipe -mstackrealign -march=i686 -mtune=generic -O2 -pipe -Wno-deprecated -w -D_REENTRANT -fPIC -DBINUX -DQT_NO_DEBUG -DQT_WEBKIT_LIB -DQT_GUI_LIB -DQT_NETWORK_LIB -DQT_CORE_LIB -I/usr/share/qt4/mkspecs/linux-g++ -I. -I/usr/include/QtCore -I/usr/include/QtNetwork -I/usr/include/QtGui -I/usr/include/QtWebKit -I/usr/include -Itmp -o tmp/qt4pas.o src/qt4pas.cpp
...

I run:
$ gcc --target-help | grep stackreal
-mstackrealign Realign stack in prologue

I think is okey.

I see qtconfig, my deafault style is the qtcurve based qtc_frugalware.
I test this, if the style is oxygen, qtcurve, or qtc_frugalware the dc-qt crash.
I will use the plastique style.
What do you mean? Was the style my problem just?


Top
 Profile  
 
PostPosted: Sun Oct 02, 2011 9:15 pm 
Offline
Developer
User avatar

Joined: Wed Apr 01, 2009 9:17 pm
Posts: 761
Location: Poland
Thanks for checking. So it isn't a problem with SSE2 instructions.

A similar stack trace of some other person crashes in:
Code:
comp_func_SourceOver_sse2 (destPixels=0x932c8a0, srcPixels=<value optimized out>, length=92, const_alpha=254)
    at painting/qdrawhelper_sse2.cpp:317
317           BLEND_SOURCE_OVER_ARGB32_WITH_CONST_ALPHA_SSE2(dst, src, length, nullVector, half, one, colorMask, constAlphaVector);
(gdb) bt
#0  comp_func_SourceOver_sse2 (destPixels=0x932c8a0, srcPixels=<value optimized out>, length=92, const_alpha=254)
    at painting/qdrawhelper_sse2.cpp:317

and there the problem was solved by building with "-mstackrealign".

Your stack trace doesn't have debugging info for libQT so we don't actually know where it crashes. It must be some QT bug when using qtcurve library.

From what I know only solution right now is to not use problematic QT styles with Lazarus applications. "plastique" seems to work fine.

I will try to get the crash again on my system, now that I know that it is probably due to using a qtcurve based QT style.


Top
 Profile  
 
PostPosted: Sun Oct 02, 2011 9:55 pm 
Offline

Joined: Wed Apr 14, 2010 11:59 pm
Posts: 16
Thanks your help, great respect!


Top
 Profile  
 
PostPosted: Mon Oct 03, 2011 10:07 pm 
Offline
Developer
User avatar

Joined: Wed Apr 01, 2009 9:17 pm
Posts: 761
Location: Poland
I tried to reproduce the crash using Oxygen and QTCurve styles, but it doesn't crash for me. I don't have a processor with SSE2, so maybe that's why.
If you still want to investigate further you would need to get libQT with debugging info to see exactly in which function it crashes inside libQtGui.so.
If not then simply a solution is not to use QT styles based on qtcurve.


Top
 Profile  
 
Display posts from previous:  Sort by  
Post new topic Reply to topic  [ 20 posts ]  Go to page Previous  1, 2

All times are UTC + 3 hours [ DST ]


Who is online

Users browsing this forum: No registered users


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
Powered by phpBB® Forum Software © phpBB Group
Get Double Commander at SourceForge.net. Fast, secure and Free Open Source software downloads