@@ -50,7 +50,7 @@ sealed class ImageWriter : BinaryStreamWriter {
50
50
51
51
internal long debug_header_entries_position ;
52
52
53
- ImageWriter ( ModuleDefinition module , string runtime_version , MetadataBuilder metadata , Disposable < Stream > stream , bool metadataOnly = false , ImageDebugHeader debugHeader = null )
53
+ ImageWriter ( ModuleDefinition module , string runtime_version , MetadataBuilder metadata , Disposable < Stream > stream , bool metadataOnly = false )
54
54
: base ( stream . value )
55
55
{
56
56
this . module = module ;
@@ -63,18 +63,26 @@ sealed class ImageWriter : BinaryStreamWriter {
63
63
64
64
this . pe64 = module . Architecture == TargetArchitecture . AMD64 || module . Architecture == TargetArchitecture . IA64 || module . Architecture == TargetArchitecture . ARM64 ;
65
65
this . has_reloc = module . Architecture == TargetArchitecture . I386 ;
66
+ this . GetDebugHeader ( ) ;
66
67
this . GetWin32Resources ( ) ;
68
+ this . BuildTextMap ( ) ;
69
+ this . sections = ( ushort ) ( has_reloc ? 2 : 1 ) ; // text + reloc?
70
+ }
71
+
72
+ void GetDebugHeader ( )
73
+ {
74
+ var symbol_writer = metadata . symbol_writer ;
75
+ if ( symbol_writer != null )
76
+ debug_header = symbol_writer . GetDebugHeader ( ) ;
67
77
68
- debug_header = debugHeader ;
69
78
if ( module . HasDebugHeader ) {
70
79
var header = module . GetDebugHeader ( ) ;
71
80
var deterministic = header . GetDeterministicEntry ( ) ;
72
- if ( deterministic != null )
73
- debug_header = debug_header . AddDeterministicEntry ( ) ;
74
- }
81
+ if ( deterministic == null )
82
+ return ;
75
83
76
- this . BuildTextMap ( ) ;
77
- this . sections = ( ushort ) ( has_reloc ? 2 : 1 ) ; // text + reloc?
84
+ debug_header = debug_header . AddDeterministicEntry ( ) ;
85
+ }
78
86
}
79
87
80
88
void GetWin32Resources ( )
@@ -90,9 +98,9 @@ void GetWin32Resources ()
90
98
}
91
99
}
92
100
93
- public static ImageWriter CreateWriter ( ModuleDefinition module , MetadataBuilder metadata , Disposable < Stream > stream , ImageDebugHeader debugHeader )
101
+ public static ImageWriter CreateWriter ( ModuleDefinition module , MetadataBuilder metadata , Disposable < Stream > stream )
94
102
{
95
- var writer = new ImageWriter ( module , module . runtime_version , metadata , stream , metadataOnly : false , debugHeader : debugHeader ) ;
103
+ var writer = new ImageWriter ( module , module . runtime_version , metadata , stream , metadataOnly : false ) ;
96
104
writer . BuildSections ( ) ;
97
105
return writer ;
98
106
}
0 commit comments