controlflowgraph plugin moved to kdereview ...

Sandro Andrade sandro.andrade at gmail.com
Sat Jun 19 11:39:30 UTC 2010


Hi Niko,

Thanks for reporting this, I actually removed some unnecessary DUChain
locks some weeks ago, may be I am
misunderstanding this.

The function in which the assert hapenned
(DUChainControlFlow::processFunctionCall) is only called from other
functions which already holds a DUChain lock. I am considering the
locks are kept in ordinary function invocations
and when using signals/slots.

I mean:

X::m1()
{
DUChainReadLocker lock(DUChain::lock());
DUChainControlFlow::processFunctionCall();
}

or

X::m2()
{
DUChainReadLocker lock(DUChain::lock());
emit signalConnectedToProcessFunctionCall();
}

Since connections aren't queued wouldn't the locks be kept in this both cases ?

Thanks,
Sandro

On Sat, Jun 19, 2010 at 4:19 AM, Niko Sams <niko.sams at gmail.com> wrote:
> Hi,
>
> Great to see progress on this nice plugin!
>
> Do you run KDevelop in debug mode?
> because I hit this assert:
>
> ASSERT: "DUChain::lock()->currentThreadHasReadLock() ||
> DUChain::lock()->currentThreadHasWriteLock()" in file
> /home/niko/kdesvn/kdevelop/kdevplatform/language/duchain/functiondefinition.cpp,
> line 82
>
> [KCrash Handler]
> #4  0x00007f685eb61315 in raise () from /lib/libc.so.6
> #5  0x00007f685eb62811 in abort () from /lib/libc.so.6
> #6  0x00007f686082e7ed in qt_message_output(QtMsgType, char const*) ()
> from /usr/lib64/qt4/libQtCore.so.4
> #7  0x00007f686082e98d in ?? () from /usr/lib64/qt4/libQtCore.so.4
> #8  0x00007f686082eb25 in qFatal(char const*, ...) () from
> /usr/lib64/qt4/libQtCore.so.4
> #9  0x00007f685d3c8748 in KDevelop::FunctionDefinition::definition
> (decl=0x5526ce0) at
> /home/niko/kdesvn/kdevelop/kdevplatform/language/duchain/functiondefinition.cpp:82
> #10 0x00007f683bff1f64 in DUChainControlFlow::processFunctionCall
> (this=0x2513450, source=0x7f682c244310, target=0x5526ce0, use=...)
>    at /home/niko/kdesvn/kdevelop/controlflowgraph/duchaincontrolflow.cpp:266
> #11 0x00007f683bfe29d2 in DUChainControlFlow::qt_metacall
> (this=0x2513450, _c=QMetaObject::InvokeMetaMethod, _id=6,
> _a=0x7f68412ea470)
>    at /home/niko/kdesvn/build/kdevelop/controlflowgraph/moc_duchaincontrolflow.cpp:114
> #12 0x00007f6860947468 in QObject::event(QEvent*) () from
> /usr/lib64/qt4/libQtCore.so.4
>
> --
> KDevelop-devel mailing list
> KDevelop-devel at kdevelop.org
> https://barney.cs.uni-potsdam.de/mailman/listinfo/kdevelop-devel
>




More information about the KDevelop-devel mailing list