Mercurial > hg > tc-symbol-server
annotate agent/src/jetbrains/buildServer/symbols/PdbFilePatcher.java @ 29:6ac3c2491e1a
removed copyright
author | Evgeniy.Koshkin |
---|---|
date | Thu, 08 Aug 2013 19:08:42 +0400 |
parents | 76ed2d58c871 |
children | 4c516ddbddf1 |
rev | line source |
---|---|
12 | 1 package jetbrains.buildServer.symbols; |
2 | |
18
d1c5ce19d0f7
added warning in case source info was not found in pdb
Evgeniy.Koshkin
parents:
15
diff
changeset
|
3 import jetbrains.buildServer.agent.BuildProgressLogger; |
27
76ed2d58c871
- reused home path between all srcsrv-related utilities
Evgeniy.Koshkin
parents:
25
diff
changeset
|
4 import jetbrains.buildServer.symbols.tools.PdbStrExe; |
76ed2d58c871
- reused home path between all srcsrv-related utilities
Evgeniy.Koshkin
parents:
25
diff
changeset
|
5 import jetbrains.buildServer.symbols.tools.PdbStrExeCommands; |
76ed2d58c871
- reused home path between all srcsrv-related utilities
Evgeniy.Koshkin
parents:
25
diff
changeset
|
6 import jetbrains.buildServer.symbols.tools.SrcToolExe; |
12 | 7 import jetbrains.buildServer.util.FileUtil; |
18
d1c5ce19d0f7
added warning in case source info was not found in pdb
Evgeniy.Koshkin
parents:
15
diff
changeset
|
8 import org.apache.log4j.Logger; |
12 | 9 |
10 import java.io.File; | |
11 import java.util.Collection; | |
12 | |
13 /** | |
14 * @author Evgeniy.Koshkin | |
15 */ | |
16 public class PdbFilePatcher { | |
17 | |
18
d1c5ce19d0f7
added warning in case source info was not found in pdb
Evgeniy.Koshkin
parents:
15
diff
changeset
|
18 private static final Logger LOG = Logger.getLogger(PdbFilePatcher.class); |
27
76ed2d58c871
- reused home path between all srcsrv-related utilities
Evgeniy.Koshkin
parents:
25
diff
changeset
|
19 private static final File TOOLS_HOME_DIR = new File("c:\\Program Files (x86)\\Windows Kits\\8.0\\Debuggers\\x64\\srcsrv\\"); |
18
d1c5ce19d0f7
added warning in case source info was not found in pdb
Evgeniy.Koshkin
parents:
15
diff
changeset
|
20 |
27
76ed2d58c871
- reused home path between all srcsrv-related utilities
Evgeniy.Koshkin
parents:
25
diff
changeset
|
21 private final PdbStrExe myPdbStrExe = new PdbStrExe(TOOLS_HOME_DIR); |
76ed2d58c871
- reused home path between all srcsrv-related utilities
Evgeniy.Koshkin
parents:
25
diff
changeset
|
22 private final SrcToolExe mySrcToolExe = new SrcToolExe(TOOLS_HOME_DIR); |
12 | 23 |
24 private final File myHomeDir; | |
25 | 25 private SrcSrvStreamBuilder mySrcSrvStreamBuilder; |
12 | 26 |
25 | 27 public PdbFilePatcher(final File homeDir, final SrcSrvStreamBuilder srcSrvStreamBuilder) { |
12 | 28 myHomeDir = homeDir; |
25 | 29 mySrcSrvStreamBuilder = srcSrvStreamBuilder; |
12 | 30 } |
31 | |
18
d1c5ce19d0f7
added warning in case source info was not found in pdb
Evgeniy.Koshkin
parents:
15
diff
changeset
|
32 public void patch(File symbolsFile, BuildProgressLogger buildLogger) throws Exception { |
12 | 33 final Collection<File> sourceFiles = mySrcToolExe.getReferencedSourceFiles(symbolsFile); |
18
d1c5ce19d0f7
added warning in case source info was not found in pdb
Evgeniy.Koshkin
parents:
15
diff
changeset
|
34 if(sourceFiles.isEmpty()){ |
19
c038e1a8c8a5
fixed srcsrv stream content template - srctool now says that files are indexed
Evgeniy.Koshkin
parents:
18
diff
changeset
|
35 final String message = "No source information found in pdb file " + symbolsFile.getCanonicalPath(); |
18
d1c5ce19d0f7
added warning in case source info was not found in pdb
Evgeniy.Koshkin
parents:
15
diff
changeset
|
36 buildLogger.warning(message); |
d1c5ce19d0f7
added warning in case source info was not found in pdb
Evgeniy.Koshkin
parents:
15
diff
changeset
|
37 LOG.debug(message); |
d1c5ce19d0f7
added warning in case source info was not found in pdb
Evgeniy.Koshkin
parents:
15
diff
changeset
|
38 return; |
d1c5ce19d0f7
added warning in case source info was not found in pdb
Evgeniy.Koshkin
parents:
15
diff
changeset
|
39 } |
15 | 40 final File tmpFile = FileUtil.createTempFile(myHomeDir, "pdb-", ".patch", false); |
25 | 41 mySrcSrvStreamBuilder.dumpStreamToFile(tmpFile, sourceFiles); |
27
76ed2d58c871
- reused home path between all srcsrv-related utilities
Evgeniy.Koshkin
parents:
25
diff
changeset
|
42 myPdbStrExe.doCommand(PdbStrExeCommands.WRITE, symbolsFile, tmpFile, PdbStrExe.SRCSRV_STREAM_NAME); |
12 | 43 } |
44 } |