Bug 112567 - Umbrello crashes on startup
Summary: Umbrello crashes on startup
Status: RESOLVED FIXED
Alias: None
Product: umbrello
Classification: Applications
Component: general (show other bugs)
Version: unspecified
Platform: Compiled Sources Linux
: NOR crash
Target Milestone: ---
Assignee: Umbrello Development Group
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2005-09-13 23:43 UTC by Jure Repinc
Modified: 2005-09-21 06:44 UTC (History)
0 users

See Also:
Latest Commit:
Version Fixed In:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Jure Repinc 2005-09-13 23:43:55 UTC
Version:           SVN KDE 3.5 branch (using KDE Devel)
Installed from:    Compiled sources
Compiler:          GCC 3.4.4 AMD64
OS:                Linux

When I try to start umbrello it crashes while loading. Here is what I get if I start it from konsole:

umbrello: WorkToolBar::loadPixmaps: n_buttonInfos = 51
QImage::convertDepth: Image is a null image
QPixmap::convertFromImage: Cannot convert a null image
QCursor: Cannot create bitmap cursor; invalid bitmap(s)
KCrash: crashing... crashRecursionCounter = 2
KCrash: Application Name = umbrello path = <unknown> pid = 6989

And this is from the backtrace window:

Using host libthread_db library "/lib/libthread_db.so.1".
[Thread debugging using libthread_db enabled]
[New Thread 46912578446512 (LWP 6989)]
0x00002aaaae608e84 in waitpid () from /lib/libpthread.so.0
#0  0x00002aaaae608e84 in waitpid () from /lib/libpthread.so.0
#1  0x00002aaaabe00871 in KCrash::defaultCrashHandler (sig=11)
    at /home/kdedev/src/kde/kdelibs/kdecore/kcrash.cpp:251
#2  0x00002aaaaecc2890 in killpg () from /lib/libc.so.6
#3  0x0000000000000000 in ?? ()
#4  0x0000000000000000 in ?? ()
#5  0x0000000000000000 in ?? ()
#6  0x00002aaa00000002 in ?? ()
#7  0x0000000000000000 in ?? ()
#8  0x0000000000000000 in ?? ()
#9  0x0000000000000002 in ?? ()
#10 0x00002aaaac6054d0 in ?? ()
#11 0x0000000000000246 in ?? ()
#12 0x00007fffff91ef58 in ?? ()
#13 0x0000000000000420 in ?? ()
#14 0x00007fffff91e460 in ?? ()
#15 0x00007fffff91e510 in ?? ()
#16 0x00000000ffffffff in ?? ()
#17 0x00007fffff91e3d8 in ?? ()
#18 0x00007fffff91e3b0 in ?? ()
#19 0x00000000ffffffff in ?? ()
#20 0x00000000ffffffff in ?? ()
#21 0x00000000ffffffff in ?? ()
#22 0x0000000000000001 in ?? ()
#23 0x00007fffff91e338 in ?? ()
#24 0x00002aaaaed02240 in strlen () from /lib/libc.so.6
#25 0x0000000000010213 in ?? ()
#26 0x000000000000bfd0 in ?? ()
#27 0x0000000000000004 in ?? ()
#28 0x000000000000000e in ?? ()
#29 0x000000000000002b in ?? ()
#30 0x00002aaaaaab22c1 in _dl_rtld_di_serinfo ()
   from /lib64/ld-linux-x86-64.so.2

This is from gdb, start, continue:

Breakpoint 1 at 0x53b720: file /home/kdedev/src/kde/kdesdk/umbrello/umbrello/main.cpp, line 45.
Starting program: /home/kdedev/kde-unstable/bin/umbrello
[Thread debugging using libthread_db enabled]
[New Thread 46912578446512 (LWP 18779)]
[Switching to Thread 46912578446512 (LWP 18779)]
main (argc=7372752, argv=0x0) at /home/kdedev/src/kde/kdesdk/umbrello/umbrello/main.cpp:45
45      int main(int argc, char *argv[]) {
(gdb) continue
Continuing.
Qt: gdb: -nograb added to command-line options.
         Use the -dograb option to enforce grabbing.
umbrello: WorkToolBar::loadPixmaps: n_buttonInfos = 51
QImage::convertDepth: Image is a null image
QPixmap::convertFromImage: Cannot convert a null image
QCursor: Cannot create bitmap cursor; invalid bitmap(s)

Program received signal SIGSEGV, Segmentation fault.
0x00002aaaaed02240 in strlen () from /lib/libc.so.6

gdb bt:

#0  0x00002aaaaed02240 in strlen () from /lib/libc.so.6
#1  0x00002aaaacde9c90 in internalLatin1ToUnicode (str=0xffffffff <Address 0xffffffff out of bounds>, len=0x7fffffa67c58, maxlen=4294967295)
    at qstring.cpp:1189
#2  0x00002aaaacdf21e5 in QString::fromLatin1 (chars=0xffffffff <Address 0xffffffff out of bounds>, len=-1) at qstring.cpp:5880
#3  0x00002aaaacdf21ad in QString::fromAscii (ascii=0xffffffff <Address 0xffffffff out of bounds>, len=-1) at qstring.cpp:5861
#4  0x00000000005be0a3 in WorkToolBar::loadPixmaps (this=0xb91950) at qstring.h:1046
#5  0x00000000005bebb4 in WorkToolBar (this=0xb91950, parentWindow=0x7fffffa67c58, name=0xffffffff <Address 0xffffffff out of bounds>)
    at /home/kdedev/src/kde/kdesdk/umbrello/umbrello/worktoolbar.cpp:33
#6  0x000000000055e518 in UMLApp::initView (this=0xaacb30) at /home/kdedev/src/kde/kdesdk/umbrello/umbrello/uml.cpp:388
#7  0x0000000000567093 in UMLApp (this=0xaacb30, name=0xabce80 "ĐJr") at /home/kdedev/src/kde/kdesdk/umbrello/umbrello/uml.cpp:100
#8  0x000000000053b88c in main (argc=11193136, argv=0x7fffffa68e78) at /home/kdedev/src/kde/kdesdk/umbrello/umbrello/main.cpp:60
Comment 1 Oliver Kellogg 2005-09-14 04:10:40 UTC
Please do a "make install". Two button pixmap files were renamed on
2005-09-03, http://lists.kde.org/?l=kde-commits&m=112569846425464

> SVN commit 456447 by okellogg:
> 
> Uniform naming prepares for simplification of WorkToolBar::loadPixmaps()
> 
>  M  +2 -2      Makefile.am  
>  D             cursor-end-state.png  
>  A             cursor-end_state.png   cursor-end-state.png#456373
>  D             cursor-initial-state.png  
>  A             cursor-initial_state.png   cursor-initial-state.png#456373
Comment 2 Oliver Kellogg 2005-09-16 23:41:37 UTC
Please reopen if problem persists.
Comment 3 Jure Repinc 2005-09-18 19:18:20 UTC
I just deleted the source and redownloaded it from SVN and recompilled but the crash is still here. Is there any other info that could help?
Comment 4 Oliver Kellogg 2005-09-18 19:35:29 UTC
Just to make sure: Does
  ls $KDEDIR/share/apps/umbrello/pics/cursor-{initial,end}_state.png
show you those two files?
In gdb, you could set a breakpoint at worktoolbar.cpp:305 and
step thru the loop to find out which exact pixmap file is causing
the problem.
Comment 5 Jure Repinc 2005-09-18 19:57:38 UTC
$ ls /home/kdedev/kde-unstable/share/apps/umbrello/pics/cursor*
/home/kdedev/kde-unstable/share/apps/umbrello/pics/cursor-actor.png
/home/kdedev/kde-unstable/share/apps/umbrello/pics/cursor-aggregation.png
/home/kdedev/kde-unstable/share/apps/umbrello/pics/cursor-anchor.png
/home/kdedev/kde-unstable/share/apps/umbrello/pics/cursor-andline.png
/home/kdedev/kde-unstable/share/apps/umbrello/pics/cursor-artifact.png
/home/kdedev/kde-unstable/share/apps/umbrello/pics/cursor-association.png
/home/kdedev/kde-unstable/share/apps/umbrello/pics/cursor-box.png
/home/kdedev/kde-unstable/share/apps/umbrello/pics/cursor-branch.png
/home/kdedev/kde-unstable/share/apps/umbrello/pics/cursor-choice-rhomb.png
/home/kdedev/kde-unstable/share/apps/umbrello/pics/cursor-choice-round.png
/home/kdedev/kde-unstable/share/apps/umbrello/pics/cursor-class.png
/home/kdedev/kde-unstable/share/apps/umbrello/pics/cursor-component.png
/home/kdedev/kde-unstable/share/apps/umbrello/pics/cursor-composition.png
/home/kdedev/kde-unstable/share/apps/umbrello/pics/cursor-containment.png
/home/kdedev/kde-unstable/share/apps/umbrello/pics/cursor-datatype.png
/home/kdedev/kde-unstable/share/apps/umbrello/pics/cursor-deep-history.png
/home/kdedev/kde-unstable/share/apps/umbrello/pics/cursor-dependency.png
/home/kdedev/kde-unstable/share/apps/umbrello/pics/cursor-end_state.png
/home/kdedev/kde-unstable/share/apps/umbrello/pics/cursor-end-state.png
/home/kdedev/kde-unstable/share/apps/umbrello/pics/cursor-entity.png
/home/kdedev/kde-unstable/share/apps/umbrello/pics/cursor-enum.png
/home/kdedev/kde-unstable/share/apps/umbrello/pics/cursor-fork.png
/home/kdedev/kde-unstable/share/apps/umbrello/pics/cursor-generalisation.png
/home/kdedev/kde-unstable/share/apps/umbrello/pics/cursor-initial_state.png
/home/kdedev/kde-unstable/share/apps/umbrello/pics/cursor-initial-state.png
/home/kdedev/kde-unstable/share/apps/umbrello/pics/cursor-interface.png
/home/kdedev/kde-unstable/share/apps/umbrello/pics/cursor-join.png
/home/kdedev/kde-unstable/share/apps/umbrello/pics/cursor-junction.png
/home/kdedev/kde-unstable/share/apps/umbrello/pics/cursor-message-asynchronous.png
/home/kdedev/kde-unstable/share/apps/umbrello/pics/cursor-message-synchronous.png
/home/kdedev/kde-unstable/share/apps/umbrello/pics/cursor-node.png
/home/kdedev/kde-unstable/share/apps/umbrello/pics/cursor-note.png
/home/kdedev/kde-unstable/share/apps/umbrello/pics/cursor-object.png
/home/kdedev/kde-unstable/share/apps/umbrello/pics/cursor-package.png
/home/kdedev/kde-unstable/share/apps/umbrello/pics/cursor-relationship.png
/home/kdedev/kde-unstable/share/apps/umbrello/pics/cursor-shallow-history.png
/home/kdedev/kde-unstable/share/apps/umbrello/pics/cursor-state-fork.png
/home/kdedev/kde-unstable/share/apps/umbrello/pics/cursor-text.png
/home/kdedev/kde-unstable/share/apps/umbrello/pics/cursor-uniassociation.png
/home/kdedev/kde-unstable/share/apps/umbrello/pics/cursor-usecase.png

I don't know how to set breakpoint so if you could teach me I can do it too.
Comment 6 Oliver Kellogg 2005-09-21 06:44:46 UTC
SVN commit 462434 by okellogg:

BUG:112567 - loadPixmaps(): Fix computation of n_buttonInfos.

 M  +1 -2      worktoolbar.cpp  


--- branches/KDE/3.5/kdesdk/umbrello/umbrello/worktoolbar.cpp #462433:462434
@@ -288,8 +288,7 @@
     KStandardDirs * dirs = KGlobal::dirs();
     QString dataDir = dirs->findResourceDir( "data", "umbrello/pics/object.png" );
     dataDir += "/umbrello/pics/";
-    const size_t n_buttonInfos = sizeof(buttonInfo) /
-                                 (sizeof(ToolBar_Buttons) + sizeof(QString) + sizeof(char*));
+    const size_t n_buttonInfos = sizeof(buttonInfo) / sizeof(ButtonInfo);
 
     m_ToolButtons.insert(tbb_Undefined,
                          ToolButton(i18n("UNDEFINED"),