| 1285 | } |
| 1286 | |
| 1287 | void StackWalker::OnCallstackEntry(CallstackEntryType eType, CallstackEntry &entry) |
| 1288 | { |
| 1289 | CHAR buffer[STACKWALK_MAX_NAMELEN]; |
| 1290 | if ( (eType != lastEntry) && (entry.offset != 0) ) |
| 1291 | { |
| 1292 | if (entry.name[0] == 0) |
| 1293 | MyStrCpy(entry.name, STACKWALK_MAX_NAMELEN, "(function-name not available)"); |
| 1294 | if (entry.undName[0] != 0) |
| 1295 | MyStrCpy(entry.name, STACKWALK_MAX_NAMELEN, entry.undName); |
| 1296 | if (entry.undFullName[0] != 0) |
| 1297 | MyStrCpy(entry.name, STACKWALK_MAX_NAMELEN, entry.undFullName); |
| 1298 | if (entry.lineFileName[0] == 0) |
| 1299 | { |
| 1300 | MyStrCpy(entry.lineFileName, STACKWALK_MAX_NAMELEN, "(filename not available)"); |
| 1301 | if (entry.moduleName[0] == 0) |
| 1302 | MyStrCpy(entry.moduleName, STACKWALK_MAX_NAMELEN, "(module-name not available)"); |
| 1303 | _snprintf_s(buffer, STACKWALK_MAX_NAMELEN, "%p (%s): %s: %s\n", (LPVOID) entry.offset, entry.moduleName, entry.lineFileName, entry.name); |
| 1304 | } |
| 1305 | else |
| 1306 | _snprintf_s(buffer, STACKWALK_MAX_NAMELEN, "%s (%d): %s\n", entry.lineFileName, entry.lineNumber, entry.name); |
| 1307 | buffer[STACKWALK_MAX_NAMELEN-1] = 0; |
| 1308 | OnOutput(buffer); |
| 1309 | } |
| 1310 | } |
| 1311 | |
| 1312 | void StackWalker::OnDbgHelpErr(LPCSTR szFuncName, DWORD gle, DWORD64 addr) |
| 1313 | { |
no test coverage detected