@@ -113,15 +113,21 @@ public void TryResolveSymbolsForModule(RemoteProcess.Module module)
113113
114114 var name = module . Name . ToLower ( ) ;
115115
116+ bool isBlacklisted ;
116117 lock ( symbolReaders )
117118 {
118- if ( ! moduleBlacklist . Contains ( name ) )
119+ isBlacklisted = moduleBlacklist . Contains ( name ) ;
120+ }
121+
122+ if ( ! isBlacklisted )
123+ {
124+ try
119125 {
120- try
121- {
122- SymbolReader . TryResolveSymbolsForModule ( module , SymbolSearchPath ) ;
123- }
124- catch
126+ SymbolReader . TryResolveSymbolsForModule ( module , SymbolSearchPath ) ;
127+ }
128+ catch
129+ {
130+ lock ( symbolReaders )
125131 {
126132 moduleBlacklist . Add ( name ) ;
127133
@@ -140,11 +146,19 @@ public void LoadSymbolsForModule(RemoteProcess.Module module)
140146
141147 var moduleName = module . Name . ToLower ( ) ;
142148
149+ bool createNew ;
143150 lock ( symbolReaders )
144151 {
145- if ( ! symbolReaders . ContainsKey ( moduleName ) )
152+ createNew = ! symbolReaders . ContainsKey ( moduleName ) ;
153+ }
154+
155+ if ( createNew )
156+ {
157+ var reader = SymbolReader . FromModule ( module , SymbolSearchPath ) ;
158+
159+ lock ( symbolReaders )
146160 {
147- symbolReaders [ moduleName ] = SymbolReader . FromModule ( module , SymbolSearchPath ) ;
161+ symbolReaders [ moduleName ] = reader ;
148162 }
149163 }
150164 }
@@ -155,11 +169,19 @@ public void LoadSymbolsFromPDB(string path)
155169
156170 var moduleName = Path . GetFileName ( path ) . ToLower ( ) ;
157171
172+ bool createNew ;
158173 lock ( symbolReaders )
159174 {
160- if ( ! symbolReaders . ContainsKey ( moduleName ) )
175+ createNew = ! symbolReaders . ContainsKey ( moduleName ) ;
176+ }
177+
178+ if ( createNew )
179+ {
180+ var reader = SymbolReader . FromDatabase ( path ) ;
181+
182+ lock ( symbolReaders )
161183 {
162- symbolReaders [ moduleName ] = SymbolReader . FromDatabase ( path ) ;
184+ symbolReaders [ moduleName ] = reader ;
163185 }
164186 }
165187 }
0 commit comments