win: Register msdia80.dll automatically when dumping symbols.

This commit is contained in:
Cheng Zhao
2013-11-26 22:05:32 +08:00
parent 401fe76acd
commit 386b921914
4 changed files with 21 additions and 8 deletions

View File

@@ -47,6 +47,13 @@ def mkdir_p(path):
else: raise
def RegisterRequiredDll():
register = os.path.join(os.path.dirname(__file__), 'register_msdia80_dll.js')
node = os.path.join(SOURCE_ROOT, 'out', 'Release', 'atom.exe')
os.environ['ATOM_SHELL_INTERNAL_RUN_AS_NODE'] = '1'
subprocess.check_call([node, register]);
def GenerateSymbols(options, binaries):
"""Dumps the symbols of binary and places them in the given directory."""
@@ -118,6 +125,7 @@ def main():
for directory in directories:
pdbs += glob.glob(os.path.join(directory, '*.pdb'))
RegisterRequiredDll();
GenerateSymbols(options, pdbs)
return 0

View File

@@ -0,0 +1,12 @@
var fs = require('fs');
var path = require('path');
var runas = require('runas');
var source = path.resolve(__dirname, '..', '..', 'vendor', 'breakpad', 'msdia80.dll');
var target = 'C:\\Program Files\\Common Files\\Microsoft Shared\\VC\\msdia80.dll';
if (fs.existsSync(target))
return;
var copy = 'copy "' + source + '" "' + target + '"';
var register = 'regsvr32 "' + target + '"';
runas('cmd', ['/K', copy + ' & ' + register + ' & exit']);