mirror of
https://github.com/github/codeql.git
synced 2025-12-16 16:53:25 +01:00
Merge pull request #19384 from github/redsun82/swift-add-logs
Swift: add more debug logs
This commit is contained in:
@@ -210,6 +210,7 @@ void codeql::extractSwiftFiles(SwiftExtractorState& state, swift::CompilerInstan
|
||||
auto inputFiles = collectInputFilenames(compiler);
|
||||
std::vector<swift::ModuleDecl*> todo = collectLoadedModules(compiler);
|
||||
state.encounteredModules.insert(todo.begin(), todo.end());
|
||||
LOG_DEBUG("{} modules loaded", todo.size());
|
||||
|
||||
while (!todo.empty()) {
|
||||
auto module = todo.back();
|
||||
@@ -223,13 +224,18 @@ void codeql::extractSwiftFiles(SwiftExtractorState& state, swift::CompilerInstan
|
||||
}
|
||||
isFromSourceFile = true;
|
||||
if (inputFiles.count(sourceFile->getFilename().str()) == 0) {
|
||||
LOG_DEBUG("skipping module {} from file {}, not in input files", module->getName().get(),
|
||||
sourceFile->getFilename());
|
||||
continue;
|
||||
}
|
||||
LOG_DEBUG("extracting module {} from input file {}", module->getName().get(),
|
||||
sourceFile->getFilename());
|
||||
archiveFile(state.configuration, *sourceFile);
|
||||
encounteredModules =
|
||||
extractDeclarations(state, compiler, *module, sourceFile, /*lazy declaration*/ nullptr);
|
||||
}
|
||||
if (!isFromSourceFile) {
|
||||
LOG_DEBUG("extracting module {} from non-source file", module->getName().get());
|
||||
encounteredModules = extractDeclarations(state, compiler, *module, /*source file*/ nullptr,
|
||||
/*lazy declaration*/ nullptr);
|
||||
}
|
||||
|
||||
@@ -93,6 +93,7 @@ class Observer : public swift::FrontendObserver {
|
||||
explicit Observer(const codeql::SwiftExtractorConfiguration& config) : state{config} {}
|
||||
|
||||
void parsedArgs(swift::CompilerInvocation& invocation) override {
|
||||
LOG_DEBUG("{}()", __func__);
|
||||
auto& options = invocation.getFrontendOptions();
|
||||
options.KeepASTContext = true;
|
||||
lockOutputSwiftModuleTraps(state, options);
|
||||
@@ -101,18 +102,21 @@ class Observer : public swift::FrontendObserver {
|
||||
}
|
||||
|
||||
void configuredCompiler(swift::CompilerInstance& instance) override {
|
||||
LOG_DEBUG("{}()", __func__);
|
||||
// remove default consumers to avoid double messaging
|
||||
instance.getDiags().takeConsumers();
|
||||
instance.addDiagnosticConsumer(&diagConsumer);
|
||||
}
|
||||
|
||||
void performedCompilation(swift::CompilerInstance& compiler) override {
|
||||
LOG_DEBUG("{}()", __func__);
|
||||
codeql::extractSwiftFiles(state, compiler);
|
||||
codeql::extractSwiftInvocation(state, compiler, invocationTrap);
|
||||
codeql::extractExtractLazyDeclarations(state, compiler);
|
||||
}
|
||||
|
||||
void markSuccessfullyExtractedFiles() {
|
||||
LOG_DEBUG("{}()", __func__);
|
||||
codeql::SwiftLocationExtractor locExtractor{invocationTrap};
|
||||
for (const auto& src : state.sourceFiles) {
|
||||
auto fileLabel = locExtractor.emitFile(src);
|
||||
|
||||
Reference in New Issue
Block a user