[cmake-developers] toolset Clang 3.7 with Microsoft CodeGen (v140_clang_3_7) debug is broken

forumer at smartmobili.com forumer at smartmobili.com
Mon May 2 14:48:15 EDT 2016


Le 2016-05-02 20:41, Brad King a écrit :
> On 05/02/2016 02:17 PM, forumer at smartmobili.com wrote:
>> Don't know if it's the best place to report it but I am testing 
>> nightly
>> builds(3.5.20160429) to generate some projects
>> for Visual Studio 2015 and the clang toolset now provided by 
>> Microsoft.
> 
> Yes, this is the right place to report it, especially since this is
> recent development.  For reference, support for this toolset was added
> in a topic merged here:
> 
>   Merge topic 'vs-clang-cl'
>   https://cmake.org/gitweb?p=cmake.git;a=commit;h=612a8b3b
> 
> based on discussion in this thread:
> 
>   [PATCH SET] Support of Clang/C2 compiler.
>   
> http://thread.gmane.org/gmane.comp.programming.tools.cmake.devel/15902
> 
>> I have found some changes that seems to be necessary to be able to
>> debug, here are the changes I have found:
>> 
>> 1) DebugInformationFormat should be set FullDebug, AdditionalOptions
>> MUST BE removed and optimizations must be disabled
>> 
>> <ClCompile>
>>     ... REMOVE AdditionalOptions ...
>>     <DebugInformationFormat>FullDebug</DebugInformationFormat>
>>     ...
>>     <Optimization>Disabled</Optimization>
>>     <OmitFramePointers>false</OmitFramePointers>
>> </ClCompile>
>> 
>> 
>> 2)GenerateDebugInformation must be set to true and ProgramDataBaseFile
>> must be empty because clang doesn't use pdb for now
>> <Link>
>> ...
>>        <GenerateDebugInformation>true</GenerateDebugInformation>
>> ...
>>        <ProgramDataBaseFile>
>>        </ProgramDataBaseFile>
>> 
>> </Link>
> 
> Mariusz, please take a look at this.
> 
> See also this hack:
> 
>   VS: Fix VS 2015 .vcxproj debug setting for older toolsets
>   https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=dc422d27
> 
> Basically we need to have a different flag table for each possible
> toolset.  Also it looks like additional special handling may be
> needed for PDBs and perhaps other limitations of the Clang/C2
> toolchain.
> 
> Thanks,
> -Brad

Just a small update about what I wrote regarding AdditionalOptions, I 
found that it's not necessary to remove the whole line but only the
-gline-tables-only parameter.







More information about the cmake-developers mailing list