[cmake-developers] genex-generator-objects topic

Brad King brad.king at kitware.com
Tue Oct 13 13:46:25 EDT 2015


Steve,

Last night's RunCMake.include test failures bisect to:

 cmMakefile: Store container of cmExportBuildFileGenerators.
 https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=5925f99c

A clang sanitizer build output is below.  Please take a look.

Thanks,
-Brad


WRITE of size 8 at 0x6110000aee80 thread T0
    #0 0xcfeff3 in cmExportBuildFileGenerator::Compute(cmLocalGenerator*) /.../Source/cmExportBuildFileGenerator.cxx:29:12
    #1 0xeb18a4 in cmGlobalGenerator::ComputeBuildFileGenerators() /.../Source/cmGlobalGenerator.cxx:1238:7
    #2 0xeb1c6d in cmGlobalGenerator::Compute() /.../Source/cmGlobalGenerator.cxx:1272:3
    #3 0xa2cac5 in cmake::Generate() /.../Source/cmake.cxx:1609:8
    #4 0xa28abd in cmake::Run(std::vector<std::string, std::allocator<std::string> > const&, bool) /.../Source/cmake.cxx:1596:9
    #5 0x7809bc in do_cmake(int, char const* const*) /.../Source/cmakemain.cxx:330:13
    #6 0x77e002 in main /.../Source/cmakemain.cxx:190:13
    #7 0x7f7185ab2ec4 in __libc_start_main /build/buildd/eglibc-2.19/csu/libc-start.c:287
    #8 0x6b5e57 in _start (/home/kitware/My Builds/cmake-build-clang/bin/cmake+0x6b5e57)

0x6110000aee80 is located 192 bytes inside of 200-byte region [0x6110000aedc0,0x6110000aee88)
freed by thread T0 here:
    #0 0x77bab0 in operator delete(void*) /projects/llvm/projects/compiler-rt/lib/asan/asan_new_delete.cc:94
    #1 0xd04441 in cmExportBuildFileGenerator::~cmExportBuildFileGenerator() /.../Source/cmExportBuildFileGenerator.h:29:7
    #2 0xe9a810 in cmGlobalGenerator::GenerateImportFile(std::string const&) /.../Source/cmGlobalGenerator.cxx:237:5
    #3 0xbbe513 in cmIncludeCommand::InitialPass(std::vector<std::string, std::allocator<std::string> > const&, cmExecutionStatus&) /.../Source/cmIncludeCommand.cxx:130:5
    #4 0xb5a963 in cmCommand::InvokeInitialPass(std::vector<cmListFileArgument, std::allocator<cmListFileArgument> > const&, cmExecutionStatus&) /.../Source/cmCommand.h:68:12
    #5 0x84dadc in cmMakefile::ExecuteCommand(cmListFileFunction const&, cmExecutionStatus&) /.../Source/cmMakefile.cxx:321:11
    #6 0x8517fb in cmMakefile::ReadListFile(cmListFile const&, std::string const&) /.../Source/cmMakefile.cxx:627:5
    #7 0x861379 in cmMakefile::Configure() /.../Source/cmMakefile.cxx:1683:3
    #8 0x861eef in cmMakefile::ConfigureSubDirectory(cmMakefile*) /.../Source/cmMakefile.cxx:1746:3
    #9 0x862d97 in cmMakefile::AddSubDirectory(std::string const&, std::string const&, bool, bool) /.../Source/cmMakefile.cxx:1785:5
    #10 0xac8f74 in cmAddSubDirectoryCommand::InitialPass(std::vector<std::string, std::allocator<std::string> > const&, cmExecutionStatus&) /.../Source/cmAddSubDirectoryCommand.cxx:124:3
    #11 0xb5a963 in cmCommand::InvokeInitialPass(std::vector<cmListFileArgument, std::allocator<cmListFileArgument> > const&, cmExecutionStatus&) /.../Source/cmCommand.h:68:12
    #12 0x84dadc in cmMakefile::ExecuteCommand(cmListFileFunction const&, cmExecutionStatus&) /.../Source/cmMakefile.cxx:321:11
    #13 0x8517fb in cmMakefile::ReadListFile(cmListFile const&, std::string const&) /.../Source/cmMakefile.cxx:627:5
    #14 0x850bff in cmMakefile::ReadDependentFile(char const*, bool) /.../Source/cmMakefile.cxx:537:3
    #15 0xbbe794 in cmIncludeCommand::InitialPass(std::vector<std::string, std::allocator<std::string> > const&, cmExecutionStatus&) /.../Source/cmIncludeCommand.cxx:146:5
    #16 0xb5a963 in cmCommand::InvokeInitialPass(std::vector<cmListFileArgument, std::allocator<cmListFileArgument> > const&, cmExecutionStatus&) /.../Source/cmCommand.h:68:12
    #17 0x84dadc in cmMakefile::ExecuteCommand(cmListFileFunction const&, cmExecutionStatus&) /.../Source/cmMakefile.cxx:321:11
    #18 0x8517fb in cmMakefile::ReadListFile(cmListFile const&, std::string const&) /.../Source/cmMakefile.cxx:627:5
    #19 0x861379 in cmMakefile::Configure() /.../Source/cmMakefile.cxx:1683:3
    #20 0xea61e2 in cmGlobalGenerator::Configure() /.../Source/cmGlobalGenerator.cxx:1126:3
    #21 0xa26b6b in cmake::ActualConfigure() /.../Source/cmake.cxx:1418:3
    #22 0xa2484c in cmake::Configure() /.../Source/cmake.cxx:1201:13
    #23 0xa28a82 in cmake::Run(std::vector<std::string, std::allocator<std::string> > const&, bool) /.../Source/cmake.cxx:1575:13
    #24 0x7809bc in do_cmake(int, char const* const*) /.../Source/cmakemain.cxx:330:13
    #25 0x77e002 in main /.../Source/cmakemain.cxx:190:13
    #26 0x7f7185ab2ec4 in __libc_start_main /build/buildd/eglibc-2.19/csu/libc-start.c:287

previously allocated by thread T0 here:
    #0 0x77b470 in operator new(unsigned long) /projects/llvm/projects/compiler-rt/lib/asan/asan_new_delete.cc:62
    #1 0xc5300c in cmExportCommand::InitialPass(std::vector<std::string, std::allocator<std::string> > const&, cmExecutionStatus&) /.../Source/cmExportCommand.cxx:212:38
    #2 0xb5a963 in cmCommand::InvokeInitialPass(std::vector<cmListFileArgument, std::allocator<cmListFileArgument> > const&, cmExecutionStatus&) /.../Source/cmCommand.h:68:12
    #3 0x84dadc in cmMakefile::ExecuteCommand(cmListFileFunction const&, cmExecutionStatus&) /.../Source/cmMakefile.cxx:321:11
    #4 0x8517fb in cmMakefile::ReadListFile(cmListFile const&, std::string const&) /.../Source/cmMakefile.cxx:627:5
    #5 0x861379 in cmMakefile::Configure() /.../Source/cmMakefile.cxx:1683:3
    #6 0x861eef in cmMakefile::ConfigureSubDirectory(cmMakefile*) /.../Source/cmMakefile.cxx:1746:3
    #7 0x862d97 in cmMakefile::AddSubDirectory(std::string const&, std::string const&, bool, bool) /.../Source/cmMakefile.cxx:1785:5
    #8 0xac8f74 in cmAddSubDirectoryCommand::InitialPass(std::vector<std::string, std::allocator<std::string> > const&, cmExecutionStatus&) /.../Source/cmAddSubDirectoryCommand.cxx:124:3
    #9 0xb5a963 in cmCommand::InvokeInitialPass(std::vector<cmListFileArgument, std::allocator<cmListFileArgument> > const&, cmExecutionStatus&) /.../Source/cmCommand.h:68:12
    #10 0x84dadc in cmMakefile::ExecuteCommand(cmListFileFunction const&, cmExecutionStatus&) /.../Source/cmMakefile.cxx:321:11
    #11 0x8517fb in cmMakefile::ReadListFile(cmListFile const&, std::string const&) /.../Source/cmMakefile.cxx:627:5
    #12 0x850bff in cmMakefile::ReadDependentFile(char const*, bool) /.../Source/cmMakefile.cxx:537:3
    #13 0xbbe794 in cmIncludeCommand::InitialPass(std::vector<std::string, std::allocator<std::string> > const&, cmExecutionStatus&) /.../Source/cmIncludeCommand.cxx:146:5
    #14 0xb5a963 in cmCommand::InvokeInitialPass(std::vector<cmListFileArgument, std::allocator<cmListFileArgument> > const&, cmExecutionStatus&) /.../Source/cmCommand.h:68:12
    #15 0x84dadc in cmMakefile::ExecuteCommand(cmListFileFunction const&, cmExecutionStatus&) /.../Source/cmMakefile.cxx:321:11
    #16 0x8517fb in cmMakefile::ReadListFile(cmListFile const&, std::string const&) /.../Source/cmMakefile.cxx:627:5
    #17 0x861379 in cmMakefile::Configure() /.../Source/cmMakefile.cxx:1683:3
    #18 0xea61e2 in cmGlobalGenerator::Configure() /.../Source/cmGlobalGenerator.cxx:1126:3
    #19 0xa26b6b in cmake::ActualConfigure() /.../Source/cmake.cxx:1418:3
    #20 0xa2484c in cmake::Configure() /.../Source/cmake.cxx:1201:13
    #21 0xa28a82 in cmake::Run(std::vector<std::string, std::allocator<std::string> > const&, bool) /.../Source/cmake.cxx:1575:13
    #22 0x7809bc in do_cmake(int, char const* const*) /.../Source/cmakemain.cxx:330:13
    #23 0x77e002 in main /.../Source/cmakemain.cxx:190:13
    #24 0x7f7185ab2ec4 in __libc_start_main /build/buildd/eglibc-2.19/csu/libc-start.c:287


More information about the cmake-developers mailing list