User forums > Using Code::Blocks

crash in code::blocks svn5844 apparently in code completion

<< < (2/4) > >>

frithjofh:
Did some more testing.

Tested the c++ keywords (not all):

do not crash: int, bool, long, class, struct, signed, unsigned, template, typedef, explicit, const

crash: void, double

crash always happens on typing third character (meaning, if typedef works, typename also works). Settings: kick in after three characters, maximum hits is 20.

setting up the limit of kick-in to four the behavior is the same, only crash now happening after typing forth character.

Regards

nausea

frithjofh:
Did a check-out of the svn. There have been changes in code completion yesterday, I think, by Morten McFly.

the files that changed:
nativeparser.cpp             5840     to      5845
nativeparser.h                5826              5845
codecompletion.cpp        5834              5845
parserthread.cpp            5838              5845
parserthread.h               5833              5845
parser                          5838              5845
codecompletion              5840              5846

I will try out the new svn and see what happens....

frithjofh:
well, same result, void did work and I saw a pop up saying "parser is still working", but no pop-up with suggestions, at least it did not crash.

CORRECTION: typing "voi" did crash after second try, the first positive result I can not explain, now it crashes in this case too, always ...

"double" crashed after typing "dou" with symptoms as before. c::b is 5846      (svn build rev 5846 (2009-10-06T08:52:59.937028Z) gcc 4.3.2 Linux/unicode)

Regards

nausea

CORRECTION: the pop-up saying "parser is still working" always shows once, trying to type either "double" or "void" and the program does not crash after third character, but does not show pop-up with suggestion either. At second intent the program crashes as above. This happens either by typing a new line and there "dou" or "voi" or by erasing the previous typed letters, such as leaving only a "d" or "v" and trying to complete this word to "double" or "void" respectively. crash as above described.

PS: would be nice, please, if anyone could post any reaction whatsoever. I'm beginning to feel a bit strange, like that cartoon figure running over the edge and still moving it's legs ;)

Jenna:
I can confirm this issue with your test-project on debian 64-bit.
Will look into it.

Jenna:
It's an endless-loop in FindAIMatches in nativeparser.cpp.
If I comment out the if-block starting with if (local_result.size() == 1) (lines 1720 - 1747) it works again, but most likely break other stuff.

The block was added in svn r5770 (merge with old cc-branch) and originally added in svn 5685 to cc-refactoring-branch.

To reproduce the crash (or better the endless-loop) on windows, you can do the following:


* find the definition of VOID (it is in winnt.h in my MinGW-install),
* comment it out
* add typedef void VOID; in a simple hello-world console-project
* save it
* and after typing vo it hangs (if cc kicks in after three characters).

This "works" at least for me.

Navigation

[0] Message Index

[#] Next page

[*] Previous page

Go to full version