Bug 73274 - crash while importing C++ code
Summary: crash while importing C++ code
Status: RESOLVED WORKSFORME
Alias: None
Product: umbrello
Classification: Applications
Component: general (show other bugs)
Version: unspecified
Platform: Gentoo Packages Linux
: NOR crash
Target Milestone: ---
Assignee: Umbrello Development Group
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2004-01-22 21:42 UTC by Jake Hamby
Modified: 2004-04-15 10:43 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 Jake Hamby 2004-01-22 21:42:37 UTC
Version:            (using KDE KDE 3.2.0)
Installed from:    Gentoo Packages
Compiler:          gcc (GCC) 3.2.3 20030422 (Gentoo Linux 1.4 3.2.3-r3, propolice) 
OS:          Linux

While importing some classes (aknview.h, aknviewappui.h from Symbian 6.1 SDK), umbrello crashed. Here's the backtrace:

(no debugging symbols found)...Using host libthread_db library "/lib/libthread_db.so.1".
[Thread debugging using libthread_db enabled]
[New Thread 16384 (LWP 15483)]
0x0fb0d184 in waitpid ()
   from /lib/libpthread.so.0
#0  0x0fb0d184 in waitpid () from /lib/libpthread.so.0
#1  0x001690f0 in KCrash::defaultCrashHandler(int) ()
   from /usr/kde/3.2/lib/libkdecore.so.4
#2  0x0fb0bbd4 in __pthread_sighandler () from /lib/libpthread.so.0
#3  <signal handler called>
#4  0x0f4ce6ec in QGList::append(void*) () from /usr/qt/3/lib/libqt-mt.so.3
#5  0x0f4ce6e0 in QGList::append(void*) () from /usr/qt/3/lib/libqt-mt.so.3
#6  0x100ae0a8 in ClassImport::insertAttribute(CClassStore&, UMLObject*, Uml::Scope, QString, QString, QString, bool) ()
#7  0x100aecd8 in ClassImport::importCPP(QStringList) ()
#8  0x1012268c in UMLListView::popupMenuSel(int) ()
#9  0x1012a0ac in UMLListView::qt_invoke(int, QUObject*) ()
#10 0x0f221a58 in QObject::activate_signal(QConnectionList*, QUObject*) ()
   from /usr/qt/3/lib/libqt-mt.so.3
#11 0x0f221bd4 in QObject::activate_signal(int, int) ()
   from /usr/qt/3/lib/libqt-mt.so.3
#12 0x0f55dd9c in QPopupMenu::activated(int) ()
   from /usr/qt/3/lib/libqt-mt.so.3
#13 0x0f32081c in QPopupMenu::actSig(int, bool) ()
   from /usr/qt/3/lib/libqt-mt.so.3
#14 0x0f324288 in QPopupMenu::mouseReleaseEvent(QMouseEvent*) ()
   from /usr/qt/3/lib/libqt-mt.so.3
#15 0x0f25812c in QWidget::event(QEvent*) () from /usr/qt/3/lib/libqt-mt.so.3
#16 0x0f1c01e0 in QApplication::internalNotify(QObject*, QEvent*) ()
   from /usr/qt/3/lib/libqt-mt.so.3
#17 0x0f1bf874 in QApplication::notify(QObject*, QEvent*) ()
   from /usr/qt/3/lib/libqt-mt.so.3
#18 0x000d44c4 in KApplication::notify(QObject*, QEvent*) ()
   from /usr/kde/3.2/lib/libkdecore.so.4
#19 0x0f155824 in QETWidget::translateMouseEvent(_XEvent const*) ()
   from /usr/qt/3/lib/libqt-mt.so.3
#20 0x0f1537b8 in QApplication::x11ProcessEvent(_XEvent*) ()
   from /usr/qt/3/lib/libqt-mt.so.3
#21 0x0f16b1f4 in QEventLoop::processEvents(unsigned) ()
   from /usr/qt/3/lib/libqt-mt.so.3
#22 0x0f1d4a0c in QEventLoop::enterLoop() () from /usr/qt/3/lib/libqt-mt.so.3
#23 0x0f1d4808 in QEventLoop::exec() () from /usr/qt/3/lib/libqt-mt.so.3
#24 0x0f1c04a8 in QApplication::exec() () from /usr/qt/3/lib/libqt-mt.so.3
#25 0x100eeb58 in main ()
Comment 1 Jonathan Riddell 2004-01-23 22:44:05 UTC
Code import is working for me on a random selection of files.  You'll have to attach the header files in question to this report so we can try them.

If you don't want to attach them here send them to me jr @ jriddell.org
Comment 2 Jonathan Riddell 2004-01-24 19:36:37 UTC
No problem with aknview.h but aknviewappui.h causes this backtrace:

#0  0x40ef9e81 in QGList::append(void*) () from /usr/lib/libqt-mt.so.3
#1  0x080ef01a in UMLClass::addAttribute(QString, int) (this=0x82e7990, name=
      {static null = {static null = <same as static member of an already seen type>, d = 0x82d3dc0, static shared_null = 0x82d3dc0}, d = 0x829bf48, static shared_null = 0x82d3dc0}, id=140604464) at qptrlist.h:82
#2  0x080f70af in ClassImport::insertAttribute(CClassStore&, UMLObject*, Uml::Scope, QString, QString, QString, bool) (
    this=0x83dae50, store=@0x8617430, o=0x82e7990, scope=201, name=
      {static null = {static null = <same as static member of an already seen type>, d = 0x82d3dc0, static shared_null = 0x82d3dc0}, d = 0x8453af0, static shared_null = 0x82d3dc0}, type=
      {static null = {static null = <same as static member of an already seen type>, d = 0x82d3dc0, static shared_null = 0x82d3dc0}, d = 0x8468fc8, static shared_null = 0x82d3dc0}, comment=
      {static null = {static null = <same as static member of an already seen type>, d = 0x82d3dc0, static shared_null = 0x82d3dc0}, d = 0x829bf48, static shared_null = 0x82d3dc0}, isStatic=false) at classimport.cpp:96
#3  0x080f7b8d in ClassImport::importCPP(QStringList) (this=0x83dae50, headerFileList=
        {<QValueList<QString>> = {sh = 0x82bddc8}, <No data fields>}) at classimport.cpp:196
#4  0x081516e0 in UMLApp::slotImportClasses() (this=0x8331660) at qshared.h:49
#5  0x08152716 in UMLApp::qt_invoke(int, QUObject*) (this=0x8331660, _id=110, _o=0xbfffec90) at uml.moc:271
#6  0x40c588bc in QObject::activate_signal(QConnectionList*, QUObject*) () from /usr/lib/libqt-mt.so.3
#7  0x40c586f4 in QObject::activate_signal(int) () from /usr/lib/libqt-mt.so.3
#8  0x4058864b in KAction::activated() () from /usr/lib/libkdeui.so.4
#9  0x40587bef in KAction::slotActivated() () from /usr/lib/libkdeui.so.4
#10 0x40588851 in KAction::qt_invoke(int, QUObject*) () from /usr/lib/libkdeui.so.4
#11 0x40c588bc in QObject::activate_signal(QConnectionList*, QUObject*) () from /usr/lib/libqt-mt.so.3
#12 0x40f751fa in QSignal::signal(QVariant const&) () from /usr/lib/libqt-mt.so.3
#13 0x40c723d6 in QSignal::activate() () from /usr/lib/libqt-mt.so.3
#14 0x40d591e0 in QPopupMenu::mouseReleaseEvent(QMouseEvent*) () from /usr/lib/libqt-mt.so.3
#15 0x40c8d917 in QWidget::event(QEvent*) () from /usr/lib/libqt-mt.so.3
#16 0x40bfd2df in QApplication::internalNotify(QObject*, QEvent*) () from /usr/lib/libqt-mt.so.3
#17 0x40bfc9e1 in QApplication::notify(QObject*, QEvent*) () from /usr/lib/libqt-mt.so.3
#18 0x407d07ed in KApplication::notify(QObject*, QEvent*) () from /usr/lib/libkdecore.so.4
#19 0x40b95d41 in QETWidget::translateMouseEvent(_XEvent const*) () from /usr/lib/libqt-mt.so.3
#20 0x40b93a5e in QApplication::x11ProcessEvent(_XEvent*) () from /usr/lib/libqt-mt.so.3
#21 0x40ba9d91 in QEventLoop::processEvents(unsigned) () from /usr/lib/libqt-mt.so.3
#22 0x40c10ac8 in QEventLoop::enterLoop() () from /usr/lib/libqt-mt.so.3
#23 0x40c10978 in QEventLoop::exec() () from /usr/lib/libqt-mt.so.3
#24 0x40bfd531 in QApplication::exec() () from /usr/lib/libqt-mt.so.3
#25 0x08132f0e in main (argc=140604464, argv=0x8617430) at main.cpp:86
Comment 3 Lars Berntzon 2004-03-09 16:15:14 UTC
I get the same crash while importing the examble below. Changing the spelling of either class name stops the crashing.

--- BEGIN ---
class Interface
{
public:
  class ance {
    public:
      ance();
  };
  int var;
};
--- END ---
Comment 4 Oliver Kellogg 2004-04-15 10:43:45 UTC
Resolution of 53361 has obsoleted this one.

Lars, your Interface::ance() example does not crash for me.
Notice however that the class nesting does not carry over
into umbrello. AFAIK the UML standard does not even make a
provision for nesting classes - and it's something not
possible in all supported OO languages (e.g., Ada95.)