File tree Expand file tree Collapse file tree 4 files changed +21
-6
lines changed Expand file tree Collapse file tree 4 files changed +21
-6
lines changed Original file line number Diff line number Diff line change @@ -215,8 +215,7 @@ refreshSymbolsAndDumpStack(HANDLE hProcess, HANDLE hThread)
215
215
assert (hProcess);
216
216
assert (hThread);
217
217
218
- // XXX: Deferred symbols don't get loaded without this
219
- SymRefreshModuleList (hProcess);
218
+ loadSymbols (hProcess);
220
219
221
220
dumpStack (hProcess, hThread, NULL );
222
221
}
@@ -383,12 +382,11 @@ BOOL DebugMainLoop(const DebugOptions *pOptions)
383
382
}
384
383
}
385
384
386
- // XXX: Deferred symbols don't get loaded without this
387
- SymRefreshModuleList (pProcessInfo->hProcess );
388
-
389
385
dumpException (pProcessInfo->hProcess ,
390
386
&DebugEvent.u .Exception .ExceptionRecord );
391
387
388
+ loadSymbols (hProcess);
389
+
392
390
// Find the thread in the thread list
393
391
THREAD_INFO_LIST::const_iterator it;
394
392
for (it = pProcessInfo->Threads .begin (); it != pProcessInfo->Threads .end (); ++it) {
Original file line number Diff line number Diff line change @@ -155,6 +155,18 @@ dumpContext(
155
155
}
156
156
157
157
158
+ void
159
+ loadSymbols (HANDLE hProcess )
160
+ {
161
+ lprintf ("Loading symbols..." );
162
+
163
+ // XXX: Deferred symbols don't get loaded without this
164
+ SymRefreshModuleList (hProcess );
165
+
166
+ lprintf (" done.\n\n" );
167
+ }
168
+
169
+
158
170
void
159
171
dumpStack (HANDLE hProcess , HANDLE hThread ,
160
172
const CONTEXT * pTargetContext )
Original file line number Diff line number Diff line change @@ -35,6 +35,9 @@ lprintf(const char * format, ...);
35
35
EXTERN_C void
36
36
dumpException (HANDLE hProcess , PEXCEPTION_RECORD pExceptionRecord );
37
37
38
+ EXTERN_C void
39
+ loadSymbols (HANDLE hProcess );
40
+
38
41
EXTERN_C void
39
42
dumpStack (HANDLE hProcess , HANDLE hThread ,
40
43
const CONTEXT * pContext );
Original file line number Diff line number Diff line change @@ -84,10 +84,12 @@ void GenerateExceptionReport(PEXCEPTION_POINTERS pExceptionInfo)
84
84
85
85
SetSymOptions (FALSE);
86
86
87
- if (InitializeSym (hProcess , TRUE )) {
87
+ if (InitializeSym (hProcess , FALSE )) {
88
88
89
89
dumpException (hProcess , pExceptionRecord );
90
90
91
+ loadSymbols (hProcess );
92
+
91
93
PCONTEXT pContext = pExceptionInfo -> ContextRecord ;
92
94
93
95
// XXX: In 64-bits WINE we can get context record that don't match the
You can’t perform that action at this time.
0 commit comments