Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
lwm1986
roslyn
提交
338dd021
R
roslyn
项目概览
lwm1986
/
roslyn
与 Fork 源项目一致
从无法访问的项目Fork
通知
1
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
R
roslyn
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
338dd021
编写于
5月 18, 2015
作者:
T
Tomas Matousek
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Disable Deterministic PDB GUID generation for RTM
上级
72a7129a
变更
6
隐藏空白更改
内联
并排
Showing
6 changed file
with
21 addition
and
9 deletion
+21
-9
src/Compilers/CSharp/Test/Emit/Emit/DeterministicTests.cs
src/Compilers/CSharp/Test/Emit/Emit/DeterministicTests.cs
+2
-2
src/Compilers/Core/Portable/CodeAnalysis.csproj
src/Compilers/Core/Portable/CodeAnalysis.csproj
+2
-0
src/Compilers/Core/Portable/NativePdbWriter/ISymUnmanagedWriter.cs
...lers/Core/Portable/NativePdbWriter/ISymUnmanagedWriter.cs
+2
-1
src/Compilers/Core/Portable/NativePdbWriter/PdbWriter.cs
src/Compilers/Core/Portable/NativePdbWriter/PdbWriter.cs
+11
-4
src/Compilers/Core/Portable/packages.config
src/Compilers/Core/Portable/packages.config
+2
-0
src/Compilers/VisualBasic/Test/Emit/Emit/DeterministicTests.vb
...ompilers/VisualBasic/Test/Emit/Emit/DeterministicTests.vb
+2
-2
未找到文件。
src/Compilers/CSharp/Test/Emit/Emit/DeterministicTests.cs
浏览文件 @
338dd021
...
...
@@ -46,7 +46,7 @@ private ImmutableArray<byte> EmitDeterministic(string source, Platform platform,
return
compilation
.
EmitToArray
();
}
[
Fact
,
WorkItem
(
372
,
"https://github.com/dotnet/roslyn/issues/372"
)]
[
Fact
(
Skip
=
"926"
)
,
WorkItem
(
372
,
"https://github.com/dotnet/roslyn/issues/372"
)]
public
void
Simple
()
{
var
source
=
...
...
@@ -94,7 +94,7 @@ public void CompareAllBytesEmitted_Release()
AssertEx
.
Equal
(
result3
,
result4
);
}
[
Fact
,
WorkItem
(
926
)]
[
Fact
(
Skip
=
"926"
)
,
WorkItem
(
926
)]
public
void
CompareAllBytesEmitted_Debug
()
{
var
source
=
...
...
src/Compilers/Core/Portable/CodeAnalysis.csproj
浏览文件 @
338dd021
...
...
@@ -712,6 +712,7 @@
<HintPath>
..\..\..\..\packages\System.Reflection.Metadata.$(SystemReflectionMetadataVersion)\lib\portable-net45+win8\System.Reflection.Metadata.dll
</HintPath>
</Reference>
</ItemGroup>
<!-- Support for deterministic PDB (workitem 926)
<ItemGroup>
<Content Include="..\..\..\..\packages\Microsoft.DiaSymReader.Native.1.0.0-rc2\lib\any~windows\x86\Microsoft.DiaSymReader.Native.x86.dll">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
...
...
@@ -720,6 +721,7 @@
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
</ItemGroup>
-->
<Import
Project=
"..\AnalyzerDriver\AnalyzerDriver.projitems"
Label=
"Shared"
/>
<Import
Project=
"..\SharedCollections\SharedCollections.projitems"
Label=
"Shared"
/>
<ImportGroup
Label=
"Targets"
>
...
...
src/Compilers/Core/Portable/NativePdbWriter/ISymUnmanagedWriter.cs
浏览文件 @
338dd021
...
...
@@ -144,6 +144,7 @@ internal interface ISymUnmanagedWriter5 : ISymUnmanagedWriter2
void
MapTokenToSourceSpan
(
uint
token
,
ISymUnmanagedDocumentWriter
document
,
uint
startLine
,
uint
startColumn
,
uint
endLine
,
uint
endColumn
);
}
#if DETERMINISTIC_PDB // workitem 926
[
ComImport
,
InterfaceType
(
ComInterfaceType
.
InterfaceIsIUnknown
),
Guid
(
"CA6C2ED9-103D-46A9-B03B-05446485848B"
),
SuppressUnmanagedCodeSecurity
]
internal
interface
ISymUnmanagedWriter6
:
ISymUnmanagedWriter5
{
...
...
@@ -154,7 +155,7 @@ internal interface ISymUnmanagedWriter6 : ISymUnmanagedWriter5
void
InitializeDeterministic
([
MarshalAs
(
UnmanagedType
.
IUnknown
)]
object
emitter
,
[
MarshalAs
(
UnmanagedType
.
IUnknown
)]
object
stream
);
void
SetSignature
(
uint
sig
,
Guid
sig70
);
}
#endif
[
StructLayout
(
LayoutKind
.
Sequential
,
Pack
=
1
)]
internal
struct
ImageDebugDirectory
{
...
...
src/Compilers/Core/Portable/NativePdbWriter/PdbWriter.cs
浏览文件 @
338dd021
...
...
@@ -718,6 +718,7 @@ private void DefineScopeLocals(LocalScope currentScope, uint localSignatureToken
const
string
SymWriterClsid
=
"0AE2DEB0-F901-478b-BB9F-881EE8066788"
;
#if DETERMINISTIC_PDB // workitem 926
private
static
bool
s_MicrosoftDiaSymReaderNativeLoadFailed
;
[
DllImport
(
"Microsoft.DiaSymReader.Native.x86.dll"
,
EntryPoint
=
"CreateSymWriter"
)]
...
...
@@ -725,7 +726,7 @@ private void DefineScopeLocals(LocalScope currentScope, uint localSignatureToken
[
DllImport
(
"Microsoft.DiaSymReader.Native.amd64.dll"
,
EntryPoint
=
"CreateSymWriter"
)]
private
extern
static
void
CreateSymWriter64
(
ref
Guid
id
,
[
MarshalAs
(
UnmanagedType
.
IUnknown
)]
out
object
symWriter
);
#endif
private
static
Type
GetCorSymWriterSxSType
()
{
if
(
s_lazyCorSymWriterSxSType
==
null
)
...
...
@@ -741,6 +742,7 @@ private static object CreateSymWriterWorker()
{
object
symWriter
=
null
;
#if DETERMINISTIC_PDB
// First try to load an implementation from Microsoft.DiaSymReader.Native, which supports determinism.
if
(!
s_MicrosoftDiaSymReaderNativeLoadFailed
)
{
...
...
@@ -762,7 +764,7 @@ private static object CreateSymWriterWorker()
symWriter
=
null
;
}
}
#endif
if
(
symWriter
==
null
)
{
// Try to find a registered CLR implementation
...
...
@@ -784,6 +786,7 @@ public void SetMetadataEmitter(MetadataWriter metadataWriter)
if
(
_deterministic
)
{
#if DETERMINISTIC_PDB
var
deterministicSymWriter
=
symWriter
as
ISymUnmanagedWriter6
;
if
(
deterministicSymWriter
==
null
)
{
...
...
@@ -791,6 +794,9 @@ public void SetMetadataEmitter(MetadataWriter metadataWriter)
}
deterministicSymWriter
.
InitializeDeterministic
(
new
PdbMetadataWrapper
(
metadataWriter
),
_pdbStream
);
#else
throw
new
NotSupportedException
(
CodeAnalysisResources
.
SymWriterNotDeterministic
);
#endif
}
else
{
...
...
@@ -808,6 +814,7 @@ public void SetMetadataEmitter(MetadataWriter metadataWriter)
public
unsafe
ContentId
GetContentId
()
{
#if DETERMINISTIC_PDB
if
(
_deterministic
)
{
// Call to GetDebugInfo fails for SymWriter initialized using InitializeDeterministic.
...
...
@@ -825,7 +832,7 @@ public unsafe ContentId GetContentId()
return
id
;
}
#endif
// See symwrite.cpp - the data byte[] doesn't depend on the content of metadata tables or IL.
// The writer only sets two values of the ImageDebugDirectory struct.
//
...
...
@@ -1419,6 +1426,6 @@ public void WriteDefinitionLocations(MultiDictionary<DebugSourceDocument, Defini
}
}
#
endregion
#endregion
}
}
src/Compilers/Core/Portable/packages.config
浏览文件 @
338dd021
<?
xml
version
=
"1.0"
encoding
=
"utf-8"
?>
<
packages
>
<!--
Support
for
deterministic
PDB
generation
(
workitem
926
)
<
package
id
=
"Microsoft.DiaSymReader.Native"
version
=
"1.0.0-rc2"
/>
-->
</
packages
>
src/Compilers/VisualBasic/Test/Emit/Emit/DeterministicTests.vb
浏览文件 @
338dd021
...
...
@@ -27,7 +27,7 @@ Namespace Microsoft.CodeAnalysis.VisualBasic.UnitTests.Emit
<
Fact
>
Public
Sub
CompareAllBytesEmitted_Release
()
Dim
source
=
Dim
source
=
"Class Program
Shared Sub Main()
End Sub
...
...
@@ -41,7 +41,7 @@ End Class"
AssertEx
.
Equal
(
result3
,
result4
)
End
Sub
<
Fact
,
WorkItem
(
926
)
>
<
Fact
(
Skip
:
=
"926"
)
,
WorkItem
(
926
)
>
Public
Sub
CompareAllBytesEmitted_Debug
()
Dim
source
=
"Class Program
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录