================ @@ -749,10 +749,20 @@ TEST_F(SymtabTest, TestSymtabCreatedOnDemand) { ASSERT_THAT_EXPECTED(ExpectedFile, llvm::Succeeded()); auto module_sp = std::make_shared<Module>(ExpectedFile->moduleSpec()); - // The symbol table should not be loaded by default. + // The symbol file should not be created by default. Symtab *module_symtab = module_sp->GetSymtab(/*can_create=*/false); ASSERT_EQ(module_symtab, nullptr); + // Even if the symbol file is created, the symbol table should not be created by default. + + // TODO: + // I need to create a symbol file here, but without causing it to parse the symbol table. + // See next line as a failed attempt. + + // module_sp->GetSymbolFile(/*can_create=*/true); // Cannot do this because it will parse the symbol table. ---------------- royitaqi wrote:
> So is the problem that you don't know how to create a SymbolFile that doesn't > have its SymbolTable loaded? Correct. > Can you debug this example to see how that SymbolFile was created? The same thing doesn't reproduce on Linux. I suppose this is due to how dynamic loaders of Linux and macOS work differently (e.g. on macOS I immediately see a.out + system libraries after target create; while on Linux I only see a.out). My hope is that the finding can be translated into a unit test which need to work on Linux. https://github.com/llvm/llvm-project/pull/136236 _______________________________________________ lldb-commits mailing list lldb-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits