|
37 | 37 | // Prototypes |
38 | 38 | //***************************************************************************** |
39 | 39 | BOOL InitSymbolInfo(void); |
40 | | -void UninitSymbolInfo(void); |
41 | 40 | void MakeStackTrace(DWORD myeip,DWORD myesp,DWORD myebp, int skipFrames, void (*callback)(const char*)); |
42 | 41 | void GetFunctionDetails(void *pointer, char*name, char*filename, unsigned int* linenumber, unsigned int* address); |
43 | 42 | void WriteStackLine(void*address, void (*callback)(const char*)); |
@@ -109,10 +108,14 @@ BOOL InitSymbolInfo() |
109 | 108 | if (DbgHelpLoader::isLoaded()) |
110 | 109 | return TRUE; |
111 | 110 |
|
112 | | - if (!DbgHelpLoader::load()) |
| 111 | + if (DbgHelpLoader::isFailed()) |
113 | 112 | return FALSE; |
114 | 113 |
|
115 | | - atexit(UninitSymbolInfo); |
| 114 | + if (!DbgHelpLoader::load()) |
| 115 | + { |
| 116 | + atexit(DbgHelpLoader::unload); |
| 117 | + return FALSE; |
| 118 | + } |
116 | 119 |
|
117 | 120 | char pathname[_MAX_PATH+1]; |
118 | 121 | char drive[10]; |
@@ -140,24 +143,16 @@ BOOL InitSymbolInfo() |
140 | 143 | if(DbgHelpLoader::symLoadModule(process, NULL, pathname, NULL, 0, 0)) |
141 | 144 | { |
142 | 145 | //Load any other relevant modules (ie dlls) here |
| 146 | + atexit(DbgHelpLoader::unload); |
143 | 147 | return TRUE; |
144 | 148 | } |
145 | 149 | } |
146 | 150 |
|
147 | 151 | DbgHelpLoader::unload(); |
148 | | - return(FALSE); |
| 152 | + return FALSE; |
149 | 153 | } |
150 | 154 |
|
151 | 155 |
|
152 | | -//***************************************************************************** |
153 | | -//***************************************************************************** |
154 | | -void UninitSymbolInfo(void) |
155 | | -{ |
156 | | - DbgHelpLoader::unload(); |
157 | | -} |
158 | | - |
159 | | - |
160 | | - |
161 | 156 | //***************************************************************************** |
162 | 157 | //***************************************************************************** |
163 | 158 | void MakeStackTrace(DWORD myeip,DWORD myesp,DWORD myebp, int skipFrames, void (*callback)(const char*)) |
|
0 commit comments