Ignore unloadable PDBs (#194731)

This commit is contained in:
Raymond Zhao 2023-10-06 09:39:58 -07:00 committed by GitHub
parent a792dff3a9
commit 187fa0eff0
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
3 changed files with 19 additions and 3 deletions

2
.nvmrc
View file

@ -1 +1 @@
18.17
18.17

View file

@ -50,6 +50,7 @@ stages:
inputs:
scanFolder: "$(Build.SourcesDirectory)"
outputFormat: "pre"
- task: NodeTool@0
inputs:
versionSource: fromFile
@ -148,6 +149,7 @@ stages:
InputType: "Basic"
Function: "analyze"
TargetPattern: "guardianGlob"
AnalyzeIgnorePdbLoadError: true
AnalyzeTargetGlob: '$(agent.builddirectory)\scanbin\**.dll;$(agent.builddirectory)\scanbin\**.exe;$(agent.builddirectory)\scanbin\**.node'
AnalyzeLocalSymbolDirectories: '$(agent.builddirectory)\scanbin\VSCode-win32-$(VSCODE_ARCH)\pdb'

View file

@ -13,6 +13,7 @@ const electron = require('@vscode/gulp-electron');
const { config } = require('./lib/electron');
const filter = require('gulp-filter');
const deps = require('./lib/dependencies');
const { existsSync, readdirSync } = require('fs');
const root = path.dirname(__dirname);
@ -46,8 +47,9 @@ BUILD_TARGETS.forEach(buildTarget => {
if (platform === 'win32') {
tasks.push(
() => electron.dest(destinationPdb, { ...config, platform, arch: arch === 'armhf' ? 'arm' : arch, pdbs: true }),
util.rimraf(path.join(destinationExe, 'swiftshader')),
util.rimraf(path.join(destinationExe, 'd3dcompiler_47.dll')));
util.rimraf(path.join(destinationExe, 'd3dcompiler_47.dll')),
() => confirmPdbsExist(destinationExe, destinationPdb)
);
}
if (platform === 'linux') {
@ -106,3 +108,15 @@ function nodeModules(destinationExe, destinationPdb, platform) {
return exe;
}
function confirmPdbsExist(destinationExe, destinationPdb) {
readdirSync(destinationExe).forEach(file => {
if (file.endsWith('.dll') || file.endsWith('.exe')) {
const pdb = `${file}.pdb`;
if (!existsSync(path.join(destinationPdb, pdb))) {
throw new Error(`Missing pdb file for ${file}. Tried searching for ${pdb} in ${destinationPdb}.`);
}
}
});
return Promise.resolve();
}