[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kdevelop-bugs
Subject:    [Bug 252745] New: crash on close
From:       ardhael <ardhael () gmail ! com>
Date:       2010-09-29 11:19:16
Message-ID: bug-252745-40295 () http ! bugs ! kde ! org/
[Download RAW message or body]

https://bugs.kde.org/show_bug.cgi?id=252745

           Summary: crash on close
           Product: kdevelop
           Version: unspecified
          Platform: Ubuntu Packages
        OS/Version: Linux
            Status: UNCONFIRMED
          Severity: crash
          Priority: NOR
         Component: general
        AssignedTo: kdevelop-bugs@kdevelop.org
        ReportedBy: ardhael@gmail.com


Application: kdevelop (4.0.0 (using KDevPlatform 1.0.0))
KDE Platform Version: 4.4.5 (KDE 4.4.5)
Qt Version: 4.6.3
Operating System: Linux 2.6.32-24-generic x86_64
Distribution: Ubuntu 10.04.1 LTS

-- Information about the crash:
kdev crash on click button quit sometime
in use some php file open

The crash can be reproduced some of the time.

 -- Backtrace:
Application: KDevelop (kdevelop.bin), signal: Segmentation fault
[Current thread is 1 (Thread 0x7f3d67089760 (LWP 4468))]

Thread 10 (Thread 0x7f3d53bbf710 (LWP 4470)):
#0  pthread_cond_timedwait@@GLIBC_2.3.2 () at
../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S:211
#1  0x00007f3d65832f42 in QWaitConditionPrivate::wait (this=<value optimized
out>, mutex=0x2552a90, time=200000) at thread/qwaitcondition_unix.cpp:85
#2  QWaitCondition::wait (this=<value optimized out>, mutex=0x2552a90,
time=200000) at thread/qwaitcondition_unix.cpp:159
#3  0x00007f3d612b106e in KDevelop::DUChainPrivate::CleanupThread::run
(this=0x2552a70) at ../../language/duchain/duchain.cpp:286
#4  0x00007f3d65831f95 in QThreadPrivate::start (arg=0x2552a70) at
thread/qthread_unix.cpp:248
#5  0x00007f3d6426f9ca in start_thread (arg=<value optimized out>) at
pthread_create.c:300
#6  0x00007f3d6456c6fd in clone () at
../sysdeps/unix/sysv/linux/x86_64/clone.S:112
#7  0x0000000000000000 in ?? ()

Thread 9 (Thread 0x7f3d4d620710 (LWP 4471)):
#0  pthread_cond_wait@@GLIBC_2.3.2 () at
../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:162
#1  0x00007f3d65832fdb in QWaitConditionPrivate::wait (this=<value optimized
out>, mutex=0x250cf10, time=18446744073709551615) at
thread/qwaitcondition_unix.cpp:87
#2  QWaitCondition::wait (this=<value optimized out>, mutex=0x250cf10,
time=18446744073709551615) at thread/qwaitcondition_unix.cpp:159
#3  0x00007f3d5c6e7026 in
ThreadWeaver::WeaverImpl::blockThreadUntilJobsAreBeingAssigned (this=0x2ea0220,
th=0x25231c0) at ../../../threadweaver/Weaver/WeaverImpl.cpp:365
#4  0x00007f3d5c6e96ab in ThreadWeaver::WorkingHardState::applyForWork
(this=0x2519f80, th=0x25231c0) at
../../../threadweaver/Weaver/WorkingHardState.cpp:71
#5  0x00007f3d5c6e96c4 in ThreadWeaver::WorkingHardState::applyForWork
(this=0x2519f80, th=0x25231c0) at
../../../threadweaver/Weaver/WorkingHardState.cpp:74
#6  0x00007f3d5c6e7bff in ThreadWeaver::ThreadRunHelper::run
(this=0x7f3d4d61fe00, parent=0x2ea0220, th=0x25231c0) at
../../../threadweaver/Weaver/Thread.cpp:87
#7  0x00007f3d5c6e8168 in ThreadWeaver::Thread::run (this=0x25231c0) at
../../../threadweaver/Weaver/Thread.cpp:142
#8  0x00007f3d65831f95 in QThreadPrivate::start (arg=0x25231c0) at
thread/qthread_unix.cpp:248
#9  0x00007f3d6426f9ca in start_thread (arg=<value optimized out>) at
pthread_create.c:300
#10 0x00007f3d6456c6fd in clone () at
../sysdeps/unix/sysv/linux/x86_64/clone.S:112
#11 0x0000000000000000 in ?? ()

Thread 8 (Thread 0x7f3d43f5b710 (LWP 4477)):
#0  0x00007f3d6455ff83 in *__GI___poll (fds=<value optimized out>, nfds=<value
optimized out>, timeout=-1) at ../sysdeps/unix/sysv/linux/poll.c:87
#1  0x00007f3d5ec4c4a9 in ?? () from /lib/libglib-2.0.so.0
#2  0x00007f3d5ec4c8fc in g_main_context_iteration () from
/lib/libglib-2.0.so.0
#3  0x00007f3d6594b406 in QEventDispatcherGlib::processEvents (this=0x3052b40,
flags=<value optimized out>) at kernel/qeventdispatcher_glib.cpp:414
#4  0x00007f3d659206c2 in QEventLoop::processEvents (this=<value optimized
out>, flags=) at kernel/qeventloop.cpp:149
#5  0x00007f3d65920a9c in QEventLoop::exec (this=0x7f3d43f5adf0, flags=) at
kernel/qeventloop.cpp:201
#6  0x00007f3d6582f8db in QThread::exec (this=<value optimized out>) at
thread/qthread.cpp:487
#7  0x00007f3d65831f95 in QThreadPrivate::start (arg=0x302d710) at
thread/qthread_unix.cpp:248
#8  0x00007f3d6426f9ca in start_thread (arg=<value optimized out>) at
pthread_create.c:300
#9  0x00007f3d6456c6fd in clone () at
../sysdeps/unix/sysv/linux/x86_64/clone.S:112
#10 0x0000000000000000 in ?? ()

Thread 7 (Thread 0x7f3d4375a710 (LWP 4486)):
#0  pthread_cond_wait@@GLIBC_2.3.2 () at
../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:162
#1  0x00007f3d65832fdb in QWaitConditionPrivate::wait (this=<value optimized
out>, mutex=0x22629d0, time=18446744073709551615) at
thread/qwaitcondition_unix.cpp:87
#2  QWaitCondition::wait (this=<value optimized out>, mutex=0x22629d0,
time=18446744073709551615) at thread/qwaitcondition_unix.cpp:159
#3  0x00007f3d5c6e7026 in
ThreadWeaver::WeaverImpl::blockThreadUntilJobsAreBeingAssigned (this=0x247e270,
th=0x4b0e750) at ../../../threadweaver/Weaver/WeaverImpl.cpp:365
#4  0x00007f3d5c6e96ab in ThreadWeaver::WorkingHardState::applyForWork
(this=0x247a6c0, th=0x4b0e750) at
../../../threadweaver/Weaver/WorkingHardState.cpp:71
#5  0x00007f3d5c6e7bff in ThreadWeaver::ThreadRunHelper::run
(this=0x7f3d43759e00, parent=0x247e270, th=0x4b0e750) at
../../../threadweaver/Weaver/Thread.cpp:87
#6  0x00007f3d5c6e8168 in ThreadWeaver::Thread::run (this=0x4b0e750) at
../../../threadweaver/Weaver/Thread.cpp:142
#7  0x00007f3d65831f95 in QThreadPrivate::start (arg=0x4b0e750) at
thread/qthread_unix.cpp:248
#8  0x00007f3d6426f9ca in start_thread (arg=<value optimized out>) at
pthread_create.c:300
#9  0x00007f3d6456c6fd in clone () at
../sysdeps/unix/sysv/linux/x86_64/clone.S:112
#10 0x0000000000000000 in ?? ()

Thread 6 (Thread 0x7f3d3a516710 (LWP 4487)):
#0  pthread_cond_wait@@GLIBC_2.3.2 () at
../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:162
#1  0x00007f3d65832fdb in QWaitConditionPrivate::wait (this=<value optimized
out>, mutex=0x22629d0, time=18446744073709551615) at
thread/qwaitcondition_unix.cpp:87
#2  QWaitCondition::wait (this=<value optimized out>, mutex=0x22629d0,
time=18446744073709551615) at thread/qwaitcondition_unix.cpp:159
#3  0x00007f3d5c6e7026 in
ThreadWeaver::WeaverImpl::blockThreadUntilJobsAreBeingAssigned (this=0x247e270,
th=0x420a6b0) at ../../../threadweaver/Weaver/WeaverImpl.cpp:365
#4  0x00007f3d5c6e96ab in ThreadWeaver::WorkingHardState::applyForWork
(this=0x247a6c0, th=0x420a6b0) at
../../../threadweaver/Weaver/WorkingHardState.cpp:71
#5  0x00007f3d5c6e96c4 in ThreadWeaver::WorkingHardState::applyForWork
(this=0x247a6c0, th=0x420a6b0) at
../../../threadweaver/Weaver/WorkingHardState.cpp:74
#6  0x00007f3d5c6e7bff in ThreadWeaver::ThreadRunHelper::run
(this=0x7f3d3a515e00, parent=0x247e270, th=0x420a6b0) at
../../../threadweaver/Weaver/Thread.cpp:87
#7  0x00007f3d5c6e8168 in ThreadWeaver::Thread::run (this=0x420a6b0) at
../../../threadweaver/Weaver/Thread.cpp:142
#8  0x00007f3d65831f95 in QThreadPrivate::start (arg=0x420a6b0) at
thread/qthread_unix.cpp:248
#9  0x00007f3d6426f9ca in start_thread (arg=<value optimized out>) at
pthread_create.c:300
#10 0x00007f3d6456c6fd in clone () at
../sysdeps/unix/sysv/linux/x86_64/clone.S:112
#11 0x0000000000000000 in ?? ()

Thread 5 (Thread 0x7f3d39aea710 (LWP 4537)):
#0  pthread_cond_wait@@GLIBC_2.3.2 () at
../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:162
#1  0x00007f3d65832fdb in QWaitConditionPrivate::wait (this=<value optimized
out>, mutex=0x250cf10, time=18446744073709551615) at
thread/qwaitcondition_unix.cpp:87
#2  QWaitCondition::wait (this=<value optimized out>, mutex=0x250cf10,
time=18446744073709551615) at thread/qwaitcondition_unix.cpp:159
#3  0x00007f3d5c6e7026 in
ThreadWeaver::WeaverImpl::blockThreadUntilJobsAreBeingAssigned (this=0x2ea0220,
th=0x5f8ed00) at ../../../threadweaver/Weaver/WeaverImpl.cpp:365
#4  0x00007f3d5c6e96ab in ThreadWeaver::WorkingHardState::applyForWork
(this=0x2519f80, th=0x5f8ed00) at
../../../threadweaver/Weaver/WorkingHardState.cpp:71
#5  0x00007f3d5c6e96c4 in ThreadWeaver::WorkingHardState::applyForWork
(this=0x2519f80, th=0x5f8ed00) at
../../../threadweaver/Weaver/WorkingHardState.cpp:74
#6  0x00007f3d5c6e96c4 in ThreadWeaver::WorkingHardState::applyForWork
(this=0x2519f80, th=0x5f8ed00) at
../../../threadweaver/Weaver/WorkingHardState.cpp:74
#7  0x00007f3d5c6e96c4 in ThreadWeaver::WorkingHardState::applyForWork
(this=0x2519f80, th=0x5f8ed00) at
../../../threadweaver/Weaver/WorkingHardState.cpp:74
#8  0x00007f3d5c6e7bff in ThreadWeaver::ThreadRunHelper::run
(this=0x7f3d39ae9e00, parent=0x2ea0220, th=0x5f8ed00) at
../../../threadweaver/Weaver/Thread.cpp:87
#9  0x00007f3d5c6e8168 in ThreadWeaver::Thread::run (this=0x5f8ed00) at
../../../threadweaver/Weaver/Thread.cpp:142
#10 0x00007f3d65831f95 in QThreadPrivate::start (arg=0x5f8ed00) at
thread/qthread_unix.cpp:248
#11 0x00007f3d6426f9ca in start_thread (arg=<value optimized out>) at
pthread_create.c:300
#12 0x00007f3d6456c6fd in clone () at
../sysdeps/unix/sysv/linux/x86_64/clone.S:112
#13 0x0000000000000000 in ?? ()

Thread 4 (Thread 0x7f3d392e9710 (LWP 4538)):
#0  pthread_cond_wait@@GLIBC_2.3.2 () at
../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:162
#1  0x00007f3d65832fdb in QWaitConditionPrivate::wait (this=<value optimized
out>, mutex=0x250cf10, time=18446744073709551615) at
thread/qwaitcondition_unix.cpp:87
#2  QWaitCondition::wait (this=<value optimized out>, mutex=0x250cf10,
time=18446744073709551615) at thread/qwaitcondition_unix.cpp:159
#3  0x00007f3d5c6e7026 in
ThreadWeaver::WeaverImpl::blockThreadUntilJobsAreBeingAssigned (this=0x2ea0220,
th=0x3e671e0) at ../../../threadweaver/Weaver/WeaverImpl.cpp:365
#4  0x00007f3d5c6e96ab in ThreadWeaver::WorkingHardState::applyForWork
(this=0x2519f80, th=0x3e671e0) at
../../../threadweaver/Weaver/WorkingHardState.cpp:71
#5  0x00007f3d5c6e96c4 in ThreadWeaver::WorkingHardState::applyForWork
(this=0x2519f80, th=0x3e671e0) at
../../../threadweaver/Weaver/WorkingHardState.cpp:74
#6  0x00007f3d5c6e96c4 in ThreadWeaver::WorkingHardState::applyForWork
(this=0x2519f80, th=0x3e671e0) at
../../../threadweaver/Weaver/WorkingHardState.cpp:74
#7  0x00007f3d5c6e7bff in ThreadWeaver::ThreadRunHelper::run
(this=0x7f3d392e8e00, parent=0x2ea0220, th=0x3e671e0) at
../../../threadweaver/Weaver/Thread.cpp:87
#8  0x00007f3d5c6e8168 in ThreadWeaver::Thread::run (this=0x3e671e0) at
../../../threadweaver/Weaver/Thread.cpp:142
#9  0x00007f3d65831f95 in QThreadPrivate::start (arg=0x3e671e0) at
thread/qthread_unix.cpp:248
#10 0x00007f3d6426f9ca in start_thread (arg=<value optimized out>) at
pthread_create.c:300
#11 0x00007f3d6456c6fd in clone () at
../sysdeps/unix/sysv/linux/x86_64/clone.S:112
#12 0x0000000000000000 in ?? ()

Thread 3 (Thread 0x7f3d38ae8710 (LWP 4600)):
#0  pthread_cond_wait@@GLIBC_2.3.2 () at
../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:162
#1  0x00007f3d65832fdb in QWaitConditionPrivate::wait (this=<value optimized
out>, mutex=0x250cf10, time=18446744073709551615) at
thread/qwaitcondition_unix.cpp:87
#2  QWaitCondition::wait (this=<value optimized out>, mutex=0x250cf10,
time=18446744073709551615) at thread/qwaitcondition_unix.cpp:159
#3  0x00007f3d5c6e7026 in
ThreadWeaver::WeaverImpl::blockThreadUntilJobsAreBeingAssigned (this=0x2ea0220,
th=0x6612890) at ../../../threadweaver/Weaver/WeaverImpl.cpp:365
#4  0x00007f3d5c6e96ab in ThreadWeaver::WorkingHardState::applyForWork
(this=0x2519f80, th=0x6612890) at
../../../threadweaver/Weaver/WorkingHardState.cpp:71
#5  0x00007f3d5c6e7bff in ThreadWeaver::ThreadRunHelper::run
(this=0x7f3d38ae7e00, parent=0x2ea0220, th=0x6612890) at
../../../threadweaver/Weaver/Thread.cpp:87
#6  0x00007f3d5c6e8168 in ThreadWeaver::Thread::run (this=0x6612890) at
../../../threadweaver/Weaver/Thread.cpp:142
#7  0x00007f3d65831f95 in QThreadPrivate::start (arg=0x6612890) at
thread/qthread_unix.cpp:248
#8  0x00007f3d6426f9ca in start_thread (arg=<value optimized out>) at
pthread_create.c:300
#9  0x00007f3d6456c6fd in clone () at
../sysdeps/unix/sysv/linux/x86_64/clone.S:112
#10 0x0000000000000000 in ?? ()

Thread 2 (Thread 0x7f3d37044710 (LWP 5361)):
#0  pthread_cond_wait@@GLIBC_2.3.2 () at
../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:162
#1  0x00007f3d5d9b02a6 in QTWTF::TCMalloc_PageHeap::scavengerThread
(this=0x7f3d5dc8f220) at
../3rdparty/javascriptcore/JavaScriptCore/wtf/FastMalloc.cpp:2304
#2  0x00007f3d5d9b02e9 in QTWTF::TCMalloc_PageHeap::runScavengerThread
(context=0x7f3d5dc9d2ec) at
../3rdparty/javascriptcore/JavaScriptCore/wtf/FastMalloc.cpp:1438
#3  0x00007f3d6426f9ca in start_thread (arg=<value optimized out>) at
pthread_create.c:300
#4  0x00007f3d6456c6fd in clone () at
../sysdeps/unix/sysv/linux/x86_64/clone.S:112
#5  0x0000000000000000 in ?? ()

Thread 1 (Thread 0x7f3d67089760 (LWP 4468)):
[KCrash Handler]
#5  0x0000000000000000 in ?? ()
#6  0x00007f3d3b601d91 in KateSmartRange::checkFeedback (this=0x7f3d3c0f4590)
at ../../kate/smart/katesmartrange.cpp:269
#7  0x00007f3d3b645de8 in KateViewInternal::removeWatcher (this=0x4c14750,
range=0x7f3d3c0f4590, watcher=0x4c14778) at
../../kate/view/kateviewinternal.cpp:236
#8  0x00007f3d3b645e55 in KateViewInternal::removeWatcher (this=0x4c14750,
range=0x4b018b0, watcher=0x4c14778) at ../../kate/view/kateviewinternal.cpp:241
#9  0x00007f3d3b64967e in KateViewInternal::removeHighlightRange
(this=0x4c14750, range=0x4b018b0) at ../../kate/view/kateviewinternal.cpp:3731
#10 0x00007f3d3b63535e in KateView::removeExternalHighlight (this=0x4c11a30,
topRange=0x4b018b0) at ../../kate/view/kateview.cpp:2041
#11 0x00007f3d3b635b12 in ~KateView (this=0x4c11a30, __in_chrg=<value optimized
out>) at ../../kate/view/kateview.cpp:272
#12 0x00007f3d6593088c in QObjectPrivate::deleteChildren (this=0x4d623a0) at
kernel/qobject.cpp:1986
#13 0x00007f3d64d38c0d in ~QWidget (this=0x4caf7c0, __in_chrg=<value optimized
out>) at kernel/qwidget.cpp:1476
#14 0x00007f3d66551d66 in ~TextEditorWidget (this=0x4caf7c0, __in_chrg=<value
optimized out>) at ../../shell/textdocument.cpp:621
#15 0x00007f3d665508c4 in ~TextView (this=0x3e76360, __in_chrg=<value optimized
out>) at ../../shell/textdocument.cpp:523
#16 0x00007f3d6654f168 in KDevelop::PartDocument::close (this=0x3e70540,
mode=<value optimized out>) at ../../shell/partdocument.cpp:136
#17 0x00007f3d66550ac9 in KDevelop::TextDocument::close (this=0x7f3d3c060700,
mode=1008206800) at ../../shell/textdocument.cpp:495
#18 0x00007f3d66553a85 in KDevelop::DocumentController::cleanup
(this=0x2476d10) at ../../shell/documentcontroller.cpp:445
#19 0x00007f3d665384aa in KDevelop::Core::cleanup (this=0x224d8c0) at
../../shell/core.cpp:289
#20 0x00007f3d66526d6d in ~MainWindow (this=0x22d25d0, __in_chrg=<value
optimized out>, __vtt_parm=<value optimized out>) at
../../shell/mainwindow.cpp:120
#21 0x00007f3d65931b9d in QObject::event (this=0x22d25d0, e=0x651aea0) at
kernel/qobject.cpp:1231
#22 0x00007f3d64d3156f in QWidget::event (this=0x22d25d0, event=0x651aea0) at
kernel/qwidget.cpp:8501
#23 0x00007f3d650f5f8b in QMainWindow::event (this=0x22d25d0, event=0x651aea0)
at widgets/qmainwindow.cpp:1414
#24 0x00007f3d65f81f63 in KXmlGuiWindow::event (this=0x7f3d3c060700,
ev=0x7f3d3c1803d0) at ../../kdeui/xmlgui/kxmlguiwindow.cpp:131
#25 0x00007f3d64cdbc0c in QApplicationPrivate::notify_helper (this=0x211fc50,
receiver=0x22d25d0, e=0x651aea0) at kernel/qapplication.cpp:4302
#26 0x00007f3d64ce20eb in QApplication::notify (this=0x7fff662aee80,
receiver=0x22d25d0, e=0x651aea0) at kernel/qapplication.cpp:4185
#27 0x00007f3d65e6aa16 in KApplication::notify (this=0x7fff662aee80,
receiver=0x22d25d0, event=0x651aea0) at ../../kdeui/kernel/kapplication.cpp:302
#28 0x00007f3d65921d9c in QCoreApplication::notifyInternal
(this=0x7fff662aee80, receiver=0x22d25d0, event=0x651aea0) at
kernel/qcoreapplication.cpp:726
#29 0x00007f3d65925454 in QCoreApplication::sendEvent (receiver=0x0,
event_type=<value optimized out>, data=0x18ac7f0) at
../../include/QtCore/../../src/corelib/kernel/qcoreapplication.h:215
#30 QCoreApplicationPrivate::sendPostedEvents (receiver=0x0, event_type=<value
optimized out>, data=0x18ac7f0) at kernel/qcoreapplication.cpp:1367
#31 0x00007f3d6594b873 in QCoreApplication::sendPostedEvents (s=<value
optimized out>) at
../../include/QtCore/../../src/corelib/kernel/qcoreapplication.h:220
#32 postEventSourceDispatch (s=<value optimized out>) at
kernel/qeventdispatcher_glib.cpp:276
#33 0x00007f3d5ec488c2 in g_main_context_dispatch () from /lib/libglib-2.0.so.0
#34 0x00007f3d5ec4c748 in ?? () from /lib/libglib-2.0.so.0
#35 0x00007f3d5ec4c8fc in g_main_context_iteration () from
/lib/libglib-2.0.so.0
#36 0x00007f3d6594b3b3 in QEventDispatcherGlib::processEvents (this=0x18abf50,
flags=<value optimized out>) at kernel/qeventdispatcher_glib.cpp:412
#37 0x00007f3d64d8c18e in QGuiEventDispatcherGlib::processEvents
(this=0x7f3d3c060700, flags=<value optimized out>) at
kernel/qguieventdispatcher_glib.cpp:204
#38 0x00007f3d659206c2 in QEventLoop::processEvents (this=<value optimized
out>, flags=) at kernel/qeventloop.cpp:149
#39 0x00007f3d65920a9c in QEventLoop::exec (this=0x7fff662aecb0, flags=) at
kernel/qeventloop.cpp:201
#40 0x00007f3d6592573b in QCoreApplication::exec () at
kernel/qcoreapplication.cpp:1003
#41 0x00000000004088cf in _start ()

This bug may be a duplicate of or related to bug 249920.

Possible duplicates by query: bug 249920, bug 249154, bug 243895, bug 234840,
bug 218444.

Reported using DrKonqi

-- 
Configure bugmail: https://bugs.kde.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug.

_______________________________________________
KDevelop-bugs mailing list
KDevelop-bugs@kdevelop.org
https://barney.cs.uni-potsdam.de/mailman/listinfo/kdevelop-bugs
[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic