Application that crashed: umbrello Version of the application: 2.3.2 KDE Version: 4.3.2 (KDE 4.3.2) Qt Version: 4.5.3 Operating System: Linux 2.6.31-1-amd64 x86_64 Distribution: Debian GNU/Linux unstable (sid) What I was doing when the application crashed: I started Umbrello and importing my C++ file. This file uses variadic templates (C++0x). ----FileBegin---- // Copyright (c) 2009 Benjamin Buch // All rights reserved. // // Redistribution and use in source and binary forms, with or without // modification, are permitted provided that the following conditions // are met: // 1. Redistributions of source code must retain the above copyright // notice, this list of conditions and the following disclaimer. // 2. Redistributions in binary form must reproduce the above copyright // notice, this list of conditions and the following disclaimer in the // documentation and/or other materials provided with the distribution. // 3. The name of the author may not be used to endorse or promote products // derived from this software without specific prior written permission. // // THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR // IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES // OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. // IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, // INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT // NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, // DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY // THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF // THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // /// \file progcoder/bitmap.hpp /// \author Benjamin Buch (benni.buch@googlemail.com) /// \date 02.12.2009 /// \brief Class template progcoder::global_bitmap /// /// \todo replace the struct iterators by template aliases when the GCC supports this /// #ifndef _progcoder_bitmap_hpp_INCLUDED_ #define _progcoder_bitmap_hpp_INCLUDED_ #include "rect.hpp" #include "position_calculator.hpp" #include "vectorizer.hpp" #include <vector> #include <utility> #include <stdexcept> #include <sstream> #include <typeinfo> namespace progcoder { struct bitmap_configuration{}; /// \brief A bitmap for data manipulation /// \tparam ValueTypes Types of the data that administrates the bitmap /// template < typename ... ValueTypes > class bitmap{ protected: /// \brief Self type typedef bitmap< ValueTypes ... > self_type; public: /// \brief Types of the data that administrates the bitmap typedef typename vectorizer< ValueTypes ... >::type value_types; /// \brief Type of the indexed tuple element template < ::std::size_t Index > struct value_type{ typedef typename ::std::tuple_element< Index, value_types >::type type; }; /// \brief Type of points in the bitmap typedef point< ::std::size_t > point_type; /// \brief Type of bitmap size typedef size< ::std::size_t > size_type; /// \brief Type of a iterator for data template < ::std::size_t Index > struct iterator{ typedef typename value_type< Index >::type::iterator type; }; /// \brief Type of a iterator for const data template < ::std::size_t Index > struct const_iterator{ typedef typename value_type< Index >::type::const_iterator type; }; /// \brief Type of a reverse iterator for data template < ::std::size_t Index > struct reverse_iterator{ typedef typename value_type< Index >::type::reverse_iterator type; }; /// \brief Type of a reverse iterator for const data template < ::std::size_t Index > struct const_reverse_iterator{ typedef typename value_type< Index >::type::const_reverse_iterator type; }; /// \brief Constructs a blank bitmap bitmap(); /// \brief Constructs a copy from bitmap bitmap(bitmap const& bitmap); /// \brief Constructs a bitmap on position (0, 0), with size width and height, initialiese all values with value /// \throw ::std::out_of_range bitmap(::std::size_t width, ::std::size_t height, ::std::vector< ValueTypes > const& ... value); /// \brief Constructs a bitmap on position (0, 0), with size size.width and size.height, initialiese all values with value /// \throw ::std::out_of_range bitmap(size_type const& size, ::std::vector< ValueTypes > const& ... value); /// \brief Constructs a bitmap on position (0, 0), with size bottom_right.x + 1 as width and bottom_right.y + 1 as height, initialiese all values with value /// \throw ::std::out_of_range bitmap(point_type const& bottom_right, ::std::vector< ValueTypes > const& ... value); /// \brief Constructs a bitmap on position (0, 0), with size width and height, initialiese all values with value /// \throw ::std::out_of_range bitmap(::std::size_t width, ::std::size_t height, value_types const& value = value_types()); /// \brief Constructs a bitmap on position (0, 0), with size size.width and size.height, initialiese all values with value /// \throw ::std::out_of_range bitmap(size_type const& size, value_types const& value = value_types()); /// \brief Constructs a bitmap on position (0, 0), with size bottom_right.x + 1 as width and bottom_right.y + 1 as height, initialiese all values with value /// \throw ::std::out_of_range bitmap(point_type const& bottom_right, value_types const& value = value_types()); /// \brief Assigns bitmap bitmap& operator=(bitmap const& bitmap); /// \brief Get a iterator on begin of the data template < ::std::size_t Index > typename iterator< Index >::type begin(); /// \brief Get a const_iterator on begin of the data template < ::std::size_t Index > typename const_iterator< Index >::type begin()const; /// \brief Get a iterator behind the data template < ::std::size_t Index > typename iterator< Index >::type end(); /// \brief Get a const_iterator behind the data template < ::std::size_t Index > typename const_iterator< Index >::type end()const; /// \brief Get a reverse_iterator on end of the data template < ::std::size_t Index > typename reverse_iterator< Index >::type rbegin(); /// \brief Get a const_reverse_iterator on end of the data template < ::std::size_t Index > typename const_reverse_iterator< Index >::type rbegin()const; /// \brief Get a reverse_iterator before the data template < ::std::size_t Index > typename reverse_iterator< Index >::type rend(); /// \brief Get a const_reverse_iterator before the data template < ::std::size_t Index > typename const_reverse_iterator< Index >::type rend()const; /// \brief Resize the data field /// \attention All pointers and iterators to the data will be invalid void resize(::std::size_t width, ::std::size_t height, value_types const& value = value_types()); /// \brief Resize the data field /// \attention All pointers and iterators to the data will be invalid void resize(size_type const& size, value_types const& value = value_types()); /// \brief Get the width ::std::size_t const get_width()const; /// \brief Get the height ::std::size_t const get_height()const; /// \brief Get the size size_type const get_size()const; /// \brief Get the number of points in the bitmap ::std::size_t const get_number_of_points()const; /// \brief Get a pointer to data for direct manipulation template < ::std::size_t Index > typename value_type< Index >::type::value_type* get_data(); /// \brief Get a pointer to constant data for direct read template < ::std::size_t Index > typename value_type< Index >::type::value_type const* get_data()const; /// \brief Get a reference to the value by local coordinates /// \throw ::std::out_of_range template < ::std::size_t Index > typename value_type< Index >::type::value_type& get_point(::std::size_t x, ::std::size_t y); /// \brief Get a reference to the value by local coordinates /// \throw ::std::out_of_range template < ::std::size_t Index > typename value_type< Index >::type::value_type& get_point(point_type const& point); /// \brief Get the value by local coordinates /// \throw ::std::out_of_range template < ::std::size_t Index > typename value_type< Index >::type::value_type const& get_point(::std::size_t x, ::std::size_t y)const; /// \brief Get the value by local coordinates /// \throw ::std::out_of_range template < ::std::size_t Index > typename value_type< Index >::type::value_type const& get_point(point_type const& point)const; /// \brief Converts a lokal point in a index for direct data access /// \attention This function performs no range protection ::std::size_t const data_pos(::std::size_t x, ::std::size_t y)const; /// \brief Converts a lokal point in a index for direct data access /// \attention This function performs no range protection ::std::size_t const data_pos(point_type const& point)const; /// \brief Constructs a bitmap by the template-indexed values /// \throw ::std::out_of_range template < ::std::size_t ... Index > bitmap< typename value_type< Index >::type::value_type ... > const get_subtype_bitmap()const; protected: /// \brief The rectangle for global position and size size_type size_; /// \brief The data field value_types data_; /// \brief Get a point without range protection template < ::std::size_t Index > typename value_type< Index >::type& do_get_point(point_type const& point); /// \brief Get a point without range protection template < ::std::size_t Index > typename value_type< Index >::type const& do_get_point(point_type const& point)const; }; template < typename ... ValueTypes > class bitmap< std::tuple< bitmap_configuration, ValueTypes ... > >{ public: typedef bitmap< ValueTypes ... > type; }; //============================================================================= // Implementation //============================================================================= template < typename ... ValueTypes > inline bitmap< ValueTypes ... >::bitmap( ){} template < typename ... ValueTypes > inline bitmap< ValueTypes ... >::bitmap( bitmap< ValueTypes ... > const& bitmap ): size_(bitmap.size_), data_(bitmap.data_) {} template < typename ... ValueTypes > inline bitmap< ValueTypes ... >::bitmap( ::std::size_t width, ::std::size_t height, value_types const& value ): size_(width, height), data_(size_.get_number_of_points(), value) { if(!size_.is_positive()){ ::std::ostringstream os; os << "::std::out_of_range: File " << __FILE__ << ", Line " << __LINE__ << "\n" "bitmap obtain negative size"; throw ::std::out_of_range(os.str()); } } template < typename ... ValueTypes > inline bitmap< ValueTypes ... >::bitmap( size_type const& size, value_types const& value ): size_(size), data_(size_.get_number_of_points(), value) { if(!size_.is_positive()){ ::std::ostringstream os; os << "::std::out_of_range: File " << __FILE__ << ", Line " << __LINE__ << "\n" "bitmap obtain negative size"; throw ::std::out_of_range(os.str()); } } template < typename ... ValueTypes > inline bitmap< ValueTypes ... >::bitmap( point_type const& bottom_right, value_types const& value ): size_(bottom_right.x, bottom_right.y), data_(size_.get_number_of_points(), value) { if(!bottom_right.is_positive()){ ::std::ostringstream os; os << "::std::out_of_range: File " << __FILE__ << ", Line " << __LINE__ << "\n" "bitmap obtain negative size"; throw ::std::out_of_range(os.str()); } } template < typename ... ValueTypes > inline bitmap< ValueTypes ... >& bitmap< ValueTypes ... >::operator=( bitmap< ValueTypes ... > const& bitmap ){ size_ = bitmap.size_; data_ = bitmap.data_; return *this; } template < typename ... ValueTypes > template < ::std::size_t Index > inline typename bitmap< ValueTypes ... >::template iterator< Index >::type bitmap< ValueTypes ... >::begin( ){ return std::get< Index >(data_).begin(); } template < typename ... ValueTypes > template < ::std::size_t Index > inline typename bitmap< ValueTypes ... >::template const_iterator< Index >::type bitmap< ValueTypes ... >::begin( )const{ return std::get< Index >(data_).begin(); } template < typename ... ValueTypes > template < ::std::size_t Index > inline typename bitmap< ValueTypes ... >::template iterator< Index >::type bitmap< ValueTypes ... >::end( ){ return std::get< Index >(data_).end(); } template < typename ... ValueTypes > template < ::std::size_t Index > inline typename bitmap< ValueTypes ... >::template const_iterator< Index >::type bitmap< ValueTypes ... >::end( )const{ return std::get< Index >(data_).end(); } template < typename ... ValueTypes > template < ::std::size_t Index > inline typename bitmap< ValueTypes ... >::template reverse_iterator< Index >::type bitmap< ValueTypes ... >::rbegin( ){ return std::get< Index >(data_).rbegin(); } template < typename ... ValueTypes > template < ::std::size_t Index > inline typename bitmap< ValueTypes ... >::template const_reverse_iterator< Index >::type bitmap< ValueTypes ... >::rbegin( )const{ return std::get< Index >(data_).rbegin(); } template < typename ... ValueTypes > template < ::std::size_t Index > inline typename bitmap< ValueTypes ... >::template reverse_iterator< Index >::type bitmap< ValueTypes ... >::rend( ){ return std::get< Index >(data_).rend(); } template < typename ... ValueTypes > template < ::std::size_t Index > inline typename bitmap< ValueTypes ... >::template const_reverse_iterator< Index >::type bitmap< ValueTypes ... >::rend( )const{ return std::get< Index >(data_).rend(); } template < typename ... ValueTypes > inline void bitmap< ValueTypes ... >::resize( ::std::size_t width, ::std::size_t height, value_types const& value ){ resize(size_type(width, height), value); } template < typename ... ValueTypes > inline void bitmap< ValueTypes ... >::resize( size_type const& size, value_types const& value ){ if(!size.is_positive()){ ::std::ostringstream os; os << "::std::out_of_range: File " << __FILE__ << ", Line " << __LINE__ << "\n" "bitmap obtain negative size"; throw ::std::out_of_range(os.str()); } data_.resize(size.get_number_of_points(), value); size_= size; } template < typename ... ValueTypes > inline ::std::size_t const bitmap< ValueTypes ... >::get_width( )const{ return size_.width; } template < typename ... ValueTypes > inline ::std::size_t const bitmap< ValueTypes ... >::get_height( )const{ return size_.height; } template < typename ... ValueTypes > inline typename bitmap< ValueTypes ... >::size_type const bitmap< ValueTypes ... >::get_size( )const{ return size_; } template < typename ... ValueTypes > inline ::std::size_t const bitmap< ValueTypes ... >::get_number_of_points( )const{ return size_.get_number_of_points(); } template < typename ... ValueTypes > template < ::std::size_t Index > inline typename bitmap< ValueTypes ... >::template value_type< Index >::type::value_type* bitmap< ValueTypes ... >::get_data( ){ return const_cast< typename ::std::tuple_element< Index, self_type::value_types >::type::value_type* >( static_cast< self_type const& >(*this).get_data< Index >() ); } template < typename ... ValueTypes > template < ::std::size_t Index > inline typename bitmap< ValueTypes ... >::template value_type< Index >::type::value_type const* bitmap< ValueTypes ... >::get_data( )const{ return std::get< Index >(data_).empty() ? 0 : &std::get< Index >(data_)[0]; } template < typename ... ValueTypes > template < ::std::size_t Index > inline typename bitmap< ValueTypes ... >::template value_type< Index >::type::value_type& bitmap< ValueTypes ... >::get_point( ::std::size_t x, ::std::size_t y ){ return const_cast< typename value_type< Index >::type::value_type& >( static_cast< self_type const& >(*this).get_point< Index >(x, y) ); } template < typename ... ValueTypes > template < ::std::size_t Index > inline typename bitmap< ValueTypes ... >::template value_type< Index >::type::value_type& bitmap< ValueTypes ... >::get_point( point_type const& point ){ return const_cast< typename value_type< Index >::type::value_type& >( static_cast< self_type const& >(*this).get_point< Index >(point) ); } template < typename ... ValueTypes > template < ::std::size_t Index > inline typename bitmap< ValueTypes ... >::template value_type< Index >::type::value_type const& bitmap< ValueTypes ... >::get_point( ::std::size_t x, ::std::size_t y )const{ return get_point< Index >(point_type(x, y)); } template < typename ... ValueTypes > template < ::std::size_t Index > inline typename bitmap< ValueTypes ... >::template value_type< Index >::type::value_type const& bitmap< ValueTypes ... >::get_point( point_type const& point )const{ if( point.x < 0 || point.x >= get_width() || point.y < 0 || point.y >= get_height() ){ ::std::ostringstream os; os << "::std::out_of_range: File " << __FILE__ << ", Line " << __LINE__ << "\n" "point(x = " << point.x << ", y = " << point.y << ") is outside the bitmap (width = " << get_width() << ", height = " << get_height() << ")"; throw ::std::out_of_range(os.str()); } return do_get_point< Index >(point); } template < typename ... ValueTypes > inline ::std::size_t const bitmap< ValueTypes ... >::data_pos( ::std::size_t x, ::std::size_t y )const{ return data_pos(point_type(x, y)); } template < typename ... ValueTypes > inline ::std::size_t const bitmap< ValueTypes ... >::data_pos( point_type const& point )const{ return point.y * get_width() + point.x; } template < typename ... ValueTypes > template < ::std::size_t Index > inline typename bitmap< ValueTypes ... >::template value_type< Index >::type& bitmap< ValueTypes ... >::do_get_point( point_type const& point ){ return const_cast< typename value_type< Index >::type& >( static_cast< self_type const& >(*this).do_get_point< Index >(point) ); } template < typename ... ValueTypes > template < ::std::size_t Index > inline typename bitmap< ValueTypes ... >::template value_type< Index >::type const& bitmap< ValueTypes ... >::do_get_point( point_type const& point )const{ return std::get< Index >(data_)[data_pos(point)]; } template < typename ... ValueTypes > template < ::std::size_t ... Index > inline bitmap< ValueTypes ... >::bitmap< typename bitmap< ValueTypes ... >::template value_type< Index >::type::value_type ... > const bitmap< ValueTypes ... >::get_subtype_bitmap()const{ return bitmap< typename value_type< Index >::type::value_type ... >( ); } } #endif ----FileEnd---- -- Backtrace: Application: Umbrello UML-Modeller (umbrello), signal: Segmentation fault The current source language is "auto; currently c". [KCrash Handler] #5 0x0000000000bdb11d in QListData::size (this=0x2b7df40, pObject=0x2dc5000) at /usr/include/qt4/QtCore/qlist.h:87 #6 QList<UMLObject*>::indexOf (this=0x2b7df40, pObject=0x2dc5000) at /usr/include/qt4/QtCore/qlist.h:633 #7 UMLPackage::addObject (this=0x2b7df40, pObject=0x2dc5000) at ../../../umbrello/umbrello/package.cpp:136 #8 0x0000000000b2bbbb in Uml::CmdCreateUMLObject::redo (this=0x2dabfd0) at ../../../umbrello/umbrello/cmds/generic/cmd_create_umlobject.cpp:48 #9 0x00007f7aca905398 in QUndoStack::push (this=0x262b230, cmd=0x2dabfd0) at util/qundostack.cpp:543 #10 0x0000000000bf41ef in UMLApp::executeCommand (this=0x263c380, cmd=0x2dc5000) at ../../../umbrello/umbrello/uml.cpp:2782 #11 0x0000000000bcfbce in Object_Factory::createNewUMLObject (type=<value optimized out>, name=<value optimized out>, parentPkg=0x2b7df40) at ../../../umbrello/umbrello/object_factory.cpp:141 #12 0x0000000000bd2387 in Object_Factory::createUMLObject (type=Uml::ot_Package, n=..., parentPkg=0x2b7df40, solicitNewName=true) at ../../../umbrello/umbrello/object_factory.cpp:181 #13 0x0000000000528fcb in Import_Utils::createUMLObject (type=Uml::ot_UMLObject, inName=<value optimized out>, parentPkg=0x2b7df40, comment=..., stereotype=...) at ../../../umbrello/umbrello/codeimport/import_utils.cpp:222 #14 0x000000000051b7cc in CppTree2Uml::parseTemplateDeclaration (this=0x7fffb8647430, ast=0x2c2f360) at ../../../umbrello/umbrello/codeimport/kdevcppparser/cpptree2uml.cpp:214 #15 0x00000000005154c9 in TreeParser::parseLinkageBody (this=0x7fffb8647430, linkageBody=<value optimized out>) at ../../../umbrello/umbrello/codeimport/kdevcppparser/tree_parser.cpp:160 #16 0x000000000051cd76 in CppTree2Uml::parseNamespace (this=0x7fffb8647430, ast=0x2c2bde0) at ../../../umbrello/umbrello/codeimport/kdevcppparser/cpptree2uml.cpp:96 #17 0x0000000000515349 in TreeParser::parseTranslationUnit (this=0x7fffb8647430, translationUnit=<value optimized out>) at ../../../umbrello/umbrello/codeimport/kdevcppparser/tree_parser.cpp:41 #18 0x0000000000518bd7 in CppTree2Uml::parseTranslationUnit (this=0x7fffb8647430, ast=0x2c2bc90) at ../../../umbrello/umbrello/codeimport/kdevcppparser/cpptree2uml.cpp:62 #19 0x0000000000538fe3 in CppImport::feedTheModel (this=0x26b8470, fileName=...) at ../../../umbrello/umbrello/codeimport/cppimport.cpp:98 #20 0x0000000000523882 in ClassImport::importFiles (this=0x26b8470, fileList=...) at ../../../umbrello/umbrello/codeimport/classimport.cpp:45 #21 0x0000000000be9527 in UMLApp::importFiles (this=0x263c380, fileList=0x7fffb8647970) at ../../../umbrello/umbrello/uml.cpp:2213 #22 0x0000000000bf3314 in UMLApp::slotImportClasses (this=0x263c380) at ../../../umbrello/umbrello/uml.cpp:2250 #23 0x0000000000bf9ffd in UMLApp::qt_metacall (this=0x263c380, _c=QMetaObject::InvokeMetaMethod, _id=45604672, _a=0x7fffb8647b60) at ./uml.moc:276 #24 0x00007f7ac9e40df2 in QMetaObject::activate (sender=0x266cbe0, from_signal_index=<value optimized out>, to_signal_index=6, argv=0x1f4) at kernel/qobject.cpp:3112 #25 0x00007f7aca2f4147 in QAction::triggered (this=0x2b7df40, _t1=false) at .moc/release-shared/moc_qaction.cpp:236 #26 0x00007f7aca2f55c0 in QAction::activate (this=0x266cbe0, event=<value optimized out>) at kernel/qaction.cpp:1167 #27 0x00007f7aca6f015d in QMenuPrivate::activateCausedStack (this=0x27fb6c0, causedStack=..., action=0x266cbe0, action_e=QAction::Trigger, self=true) at widgets/qmenu.cpp:967 #28 0x00007f7aca6f608f in QMenuPrivate::activateAction (this=0x27fb6c0, action=0x266cbe0, action_e=QAction::Trigger, self=true) at widgets/qmenu.cpp:1060 #29 0x00007f7acb9497a1 in KMenu::mouseReleaseEvent (this=0x27fb310, e=0x7fffb86487a0) at ../../kdeui/widgets/kmenu.cpp:456 #30 0x00007f7aca34a37f in QWidget::event (this=0x27fb310, event=0x7fffb86487a0) at kernel/qwidget.cpp:7554 #31 0x00007f7aca6f87eb in QMenu::event (this=0x27fb310, e=0x7fffb86487a0) at widgets/qmenu.cpp:2358 #32 0x00007f7aca2fa01d in QApplicationPrivate::notify_helper (this=0x25703b0, receiver=0x27fb310, e=0x7fffb86487a0) at kernel/qapplication.cpp:4065 #33 0x00007f7aca3027ca in QApplication::notify (this=<value optimized out>, receiver=0x27fb310, e=0x7fffb86487a0) at kernel/qapplication.cpp:3767 #34 0x00007f7acb8780db in KApplication::notify (this=0x7fffb864a550, receiver=0x27fb310, event=0x7fffb86487a0) at ../../kdeui/kernel/kapplication.cpp:302 #35 0x00007f7ac9e2bc9c in QCoreApplication::notifyInternal (this=0x7fffb864a550, receiver=0x27fb310, event=0x7fffb86487a0) at kernel/qcoreapplication.cpp:610 #36 0x00007f7aca301a78 in QCoreApplication::sendSpontaneousEvent (receiver=0x27fb310, event=0x7fffb86487a0, alienWidget=0x0, nativeWidget=0x27fb310, buttonDown=<value optimized out>, lastMouseReceiver=...) at ../../include/QtCore/../../src/corelib/kernel/qcoreapplication.h:216 #37 QApplicationPrivate::sendMouseEvent (receiver=0x27fb310, event=0x7fffb86487a0, alienWidget=0x0, nativeWidget=0x27fb310, buttonDown=<value optimized out>, lastMouseReceiver=...) at kernel/qapplication.cpp:2924 #38 0x00007f7aca36a814 in QETWidget::translateMouseEvent (this=0x27fb310, event=<value optimized out>) at kernel/qapplication_x11.cpp:4345 #39 0x00007f7aca36940f in QApplication::x11ProcessEvent (this=0x7fffb864a550, event=0x7fffb864a170) at kernel/qapplication_x11.cpp:3552 #40 0x00007f7aca39176c in x11EventSourceDispatch (s=0x2574130, callback=0, user_data=0x0) at kernel/qguieventdispatcher_glib.cpp:146 #41 0x00007f7ac546713a in g_main_context_dispatch () from /lib/libglib-2.0.so.0 #42 0x00007f7ac546a998 in ?? () from /lib/libglib-2.0.so.0 #43 0x00007f7ac546ab4c in g_main_context_iteration () from /lib/libglib-2.0.so.0 #44 0x00007f7ac9e5439c in QEventDispatcherGlib::processEvents (this=0x2549970, flags=<value optimized out>) at kernel/qeventdispatcher_glib.cpp:407 #45 0x00007f7aca390f1f in QGuiEventDispatcherGlib::processEvents (this=0x2b7df40, flags=<value optimized out>) at kernel/qguieventdispatcher_glib.cpp:202 #46 0x00007f7ac9e2a562 in QEventLoop::processEvents (this=<value optimized out>, flags=...) at kernel/qeventloop.cpp:149 #47 0x00007f7ac9e2a934 in QEventLoop::exec (this=0x7fffb864a4a0, flags=...) at kernel/qeventloop.cpp:201 #48 0x00007f7ac9e2cba4 in QCoreApplication::exec () at kernel/qcoreapplication.cpp:888 #49 0x0000000000bc7ad5 in main (argc=3, argv=0x7fffb864a9e8) at ../../../umbrello/umbrello/main.cpp:111 Reported using DrKonqi
*** This bug has been marked as a duplicate of bug 175096 ***