NativeParser::OnParserStart(): Starting batch parsing for project 'visualizer'...
ReadVarNames() : Unexpected token '}' for 'plus', file 'C:/Program Files (x86)/Microsoft Visual Studio 12.0/VC/include/xstddef', line 210.
ReadVarNames() : Unexpected token '}' for 'minus', file 'C:/Program Files (x86)/Microsoft Visual Studio 12.0/VC/include/xstddef', line 225.
ReadVarNames() : Unexpected token '}' for 'multiplies', file 'C:/Program Files (x86)/Microsoft Visual Studio 12.0/VC/include/xstddef', line 240.
ReadVarNames() : Unexpected token '}' for 'equal_to', file 'C:/Program Files (x86)/Microsoft Visual Studio 12.0/VC/include/xstddef', line 255.
ReadVarNames() : Unexpected token '}' for 'less', file 'C:/Program Files (x86)/Microsoft Visual Studio 12.0/VC/include/xstddef', line 270.
ReadVarNames() : Unexpected token '<' for '_Alloc_allocate', file 'C:/Program Files (x86)/Microsoft Visual Studio 12.0/VC/include/xmemory0', line 313.
ReadVarNames() : Unexpected token '::' for 'shared_count', file 'C:/devel/boost_1_55_0/boost/smart_ptr/detail/shared_count.hpp', line 584.
ReadVarNames() : Unexpected token '}' for 'divides', file 'C:/Program Files (x86)/Microsoft Visual Studio 12.0/VC/include/xfunctional', line 211.
ReadVarNames() : Unexpected token '}' for 'modulus', file 'C:/Program Files (x86)/Microsoft Visual Studio 12.0/VC/include/xfunctional', line 224.
ReadVarNames() : Unexpected token '}' for 'negate', file 'C:/Program Files (x86)/Microsoft Visual Studio 12.0/VC/include/xfunctional', line 236.
ReadVarNames() : Unexpected token '}' for 'not_equal_to', file 'C:/Program Files (x86)/Microsoft Visual Studio 12.0/VC/include/xfunctional', line 252.
ReadVarNames() : Unexpected token '}' for 'greater', file 'C:/Program Files (x86)/Microsoft Visual Studio 12.0/VC/include/xfunctional', line 265.
ReadVarNames() : Unexpected token '}' for 'greater_equal', file 'C:/Program Files (x86)/Microsoft Visual Studio 12.0/VC/include/xfunctional', line 281.
ReadVarNames() : Unexpected token '}' for 'less_equal', file 'C:/Program Files (x86)/Microsoft Visual Studio 12.0/VC/include/xfunctional', line 294.
ReadVarNames() : Unexpected token '}' for 'logical_and', file 'C:/Program Files (x86)/Microsoft Visual Studio 12.0/VC/include/xfunctional', line 307.
ReadVarNames() : Unexpected token '}' for 'logical_or', file 'C:/Program Files (x86)/Microsoft Visual Studio 12.0/VC/include/xfunctional', line 320.
ReadVarNames() : Unexpected token '}' for 'logical_not', file 'C:/Program Files (x86)/Microsoft Visual Studio 12.0/VC/include/xfunctional', line 332.
ReadVarNames() : Unexpected token '}' for 'bit_and', file 'C:/Program Files (x86)/Microsoft Visual Studio 12.0/VC/include/xfunctional', line 345.
ReadVarNames() : Unexpected token '}' for 'bit_or', file 'C:/Program Files (x86)/Microsoft Visual Studio 12.0/VC/include/xfunctional', line 358.
ReadVarNames() : Unexpected token '}' for 'bit_xor', file 'C:/Program Files (x86)/Microsoft Visual Studio 12.0/VC/include/xfunctional', line 371.
ReadVarNames() : Unexpected token '}' for 'bit_not', file 'C:/Program Files (x86)/Microsoft Visual Studio 12.0/VC/include/xfunctional', line 383.
NativeParser::OnParserStart(): Starting batch parsing for project 'visualizer'...
ReadVarNames() : Unexpected token '::' for 'shared_count', file 'C:/devel/boost_1_55_0/boost/smart_ptr/detail/shared_count.hpp', line 584.
NativeParser::OnParserEnd(): Project 'visualizer' parsing stage done!
NativeParser::OnParserStart(): Starting batch parsing for project 'visualizer'...
NativeParser::OnParserEnd(): Project 'visualizer' parsing stage done!
My last working CodeBlocks version is r9272So, the bug may introduced between r9272 and r9573, but I think it is still hard to find which commit has regression.
//-----------------------------------------------------------------------------
#include <windows.h>
int main() {
return 0;
}
I found a way to easily produce the lockup, it doesn't even require Boost, however it does require to use Visual Studio as compiler for the project, i have used the 2013 version, don't know if it "works" also with older ones. All you need to do is to setup the include paths to include the Windows SDK that is shipped with the compiler, i haven't installed a full Windows SDK. Then open a project that contains this simple file:Code//-----------------------------------------------------------------------------
#include <windows.h>
int main() {
return 0;
}
When CodeBlocks starts the parser it never finishes, i don't even get any error messages like before, CodeBlocks just freezes. This does only happen with Visual Studio, if TDM-MinGW is used as compiler it frankly produces some error messages but the parser finishes.
I am using default settings of CodeBlocks regarding the CodeCompletion plugin.
<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<CodeBlocks_project_file>
<FileVersion major="1" minor="6" />
<Project>
<Option title="test" />
<Option compiler="msvc10" />
<Build>
<Target title="Debug">
<Option output="test_d.exe" prefix_auto="0" extension_auto="0" />
<Option object_output="objvc/Debug" />
<Option type="1" />
<Option compiler="msvc10" />
<Option use_console_runner="0" />
<Compiler>
<Add option="/Od" />
<Add option="/Gm" />
<Add option="/RTC1" />
<Add option="/MTd" />
<Add option="/Zi" />
<Add option="/EHsc" />
<Add option="/GR" />
<Add option="/W4" />
<Add option='/Fd"objvc/Debug/"' />
<Add option="/DSTRICT" />
<Add option="/D_CRT_SECURE_NO_DEPRECATE" />
<Add option="/D_DEBUG" />
<Add option="/DUNICODE" />
<Add option="/D_UNICODE" />
<Add option="/fp:precise" />
<Add directory="src" />
</Compiler>
<Linker>
<Add option="/DEBUG" />
<Add option="/INCREMENTAL" />
<Add option="/MANIFEST" />
<Add option="/DYNAMICBASE" />
<Add option="/NXCOMPAT" />
<Add option='/MANIFESTUAC:"level='asInvoker' uiAccess='false'"' />
<Add directory="." />
</Linker>
</Target>
<Target title="Debug_DLL">
<Option output="test_dll_d.exe" prefix_auto="0" extension_auto="0" />
<Option object_output="objvc/Debug_DLL" />
<Option type="1" />
<Option compiler="msvc10" />
<Option use_console_runner="0" />
<Compiler>
<Add option="/Od" />
<Add option="/Gm" />
<Add option="/RTC1" />
<Add option="/MDd" />
<Add option="/Zi" />
<Add option="/EHsc" />
<Add option="/GR" />
<Add option="/W4" />
<Add option='/Fd"objvc/Debug_DLL/"' />
<Add option="/DSTRICT" />
<Add option="/D_CRT_SECURE_NO_DEPRECATE" />
<Add option="/D_DEBUG" />
<Add option="/DUNICODE" />
<Add option="/D_UNICODE" />
<Add option="/fp:precise" />
<Add directory="src" />
</Compiler>
<Linker>
<Add option="/DEBUG" />
<Add option="/INCREMENTAL" />
<Add option="/MANIFEST" />
<Add option="/DYNAMICBASE" />
<Add option="/NXCOMPAT" />
<Add option='/MANIFESTUAC:"level='asInvoker' uiAccess='false'"' />
<Add directory="." />
</Linker>
</Target>
<Target title="Release">
<Option output="test.exe" prefix_auto="0" extension_auto="0" />
<Option object_output="objvc/Release" />
<Option type="1" />
<Option compiler="msvc10" />
<Option use_console_runner="0" />
<Compiler>
<Add option="/O2" />
<Add option="/MT" />
<Add option="/EHsc" />
<Add option="/GR" />
<Add option="/W4" />
<Add option="/DSTRICT" />
<Add option="/D_CRT_SECURE_NO_DEPRECATE" />
<Add option="/DNDEBUG" />
<Add option="/DUNICODE" />
<Add option="/D_UNICODE" />
<Add option="/fp:precise" />
<Add directory="src" />
</Compiler>
<Linker>
<Add option="/INCREMENTAL:NO" />
<Add option="/MANIFEST" />
<Add option="/DYNAMICBASE" />
<Add option="/NXCOMPAT" />
<Add option='/MANIFESTUAC:"level='asInvoker' uiAccess='false'"' />
<Add directory="." />
</Linker>
<ExtraCommands>
<Add after="mt.exe -manifest $exe_output.manifest -outputresource:$exe_output;1" />
<Mode after="always" />
</ExtraCommands>
</Target>
<Target title="Release_DLL">
<Option output="test_dll.exe" prefix_auto="0" extension_auto="0" />
<Option object_output="objvc/Release_DLL" />
<Option type="1" />
<Option compiler="msvc10" />
<Option use_console_runner="0" />
<Compiler>
<Add option="/O2" />
<Add option="/MD" />
<Add option="/EHsc" />
<Add option="/GR" />
<Add option="/W4" />
<Add option="/DSTRICT" />
<Add option="/D_CRT_SECURE_NO_DEPRECATE" />
<Add option="/DNDEBUG" />
<Add option="/DUNICODE" />
<Add option="/D_UNICODE" />
<Add option="/fp:precise" />
<Add directory="src" />
</Compiler>
<Linker>
<Add option="/INCREMENTAL:NO" />
<Add option="/MANIFEST" />
<Add option="/DYNAMICBASE" />
<Add option="/NXCOMPAT" />
<Add option='/MANIFESTUAC:"level='asInvoker' uiAccess='false'"' />
<Add directory="." />
</Linker>
<ExtraCommands>
<Add after="mt.exe -manifest $exe_output.manifest -outputresource:$exe_output;1" />
<Mode after="always" />
</ExtraCommands>
</Target>
</Build>
<Unit filename="src/main.cpp" />
<Extensions>
<code_completion />
<envvars />
<debugger />
</Extensions>
</Project>
</CodeBlocks_project_file>
The compiler variable in the project file reads msvc10 because CodeBlocks doesn't integrate higher versions, i just misuse that one and changed all the paths to point to 2013 :).Oops. Integration code has been sitting on my local version for a while now... I probably should tidy and commit it soon.
s_TokenTreeMutex.Lock() : IsFileParsed(), C:\SVN\xternal\codeblocks\src\plugins\codecompletion\parser\parser.cpp, 1170
InitTokenizer() : m_Filename='C:\Program Files (x86)\Microsoft SDKs\Windows\v7.1A\Include\ObjBase.h', m_FileSize=38379.
Parse() : Parsing 'C:\Program Files (x86)\Microsoft SDKs\Windows\v7.1A\Include\ObjBase.h'
// _When_(expr, annos) specifies that the annotations listed in 'annos' only
// apply when 'expr' evaluates to non-zero.
#define _When_(expr, annos) _When_impl_(expr, annos _SAL_nop_impl_)
#define _Group_(annos) _Group_impl_(annos _SAL_nop_impl_)
#define _GrouP_(annos) _GrouP_impl_(annos _SAL_nop_impl_)