Changeset 46127 in vbox for trunk/src/VBox/Runtime/tools
- Timestamp:
- May 16, 2013 2:11:26 PM (12 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/Runtime/tools/RTNtDbgHelp.cpp
r46078 r46127 245 245 RTPrintf("*** %#018x - %s ***\n", pMod->uModAddr, pMod->szFullName); 246 246 247 IMAGEHLP_MODULE64 ModInfo; 248 RT_ZERO(ModInfo); 249 ModInfo.SizeOfStruct = sizeof(ModInfo); 250 if (SymGetModuleInfo64(g_hFake, pMod->uModAddr, &ModInfo)) 251 { 252 RTPrintf(" BaseOfImage = %#018llx\n", ModInfo.BaseOfImage); 253 RTPrintf(" ImageSize = %#010x\n", ModInfo.ImageSize); 254 RTPrintf(" TimeDateStamp = %#010x\n", ModInfo.TimeDateStamp); 255 RTPrintf(" CheckSum = %#010x\n", ModInfo.CheckSum); 256 RTPrintf(" NumSyms = %#010x (%u)\n", ModInfo.NumSyms, ModInfo.NumSyms); 257 RTPrintf(" SymType = %s\n", symTypeName(ModInfo.SymType)); 258 RTPrintf(" ModuleName = %.32s\n", ModInfo.ModuleName); 259 RTPrintf(" ImageName = %.256s\n", ModInfo.ImageName); 260 RTPrintf(" LoadedImageName = %.256s\n", ModInfo.LoadedImageName); 261 RTPrintf(" LoadedPdbName = %.256s\n", ModInfo.LoadedPdbName); 262 RTPrintf(" CVSig = %#010x\n", ModInfo.CVSig); 247 static const int8_t s_acbVariations[] = { 0, -4, -8, -12, -16, -20, -24, -28, -32, 4, 8, 12, 16, 20, 24, 28, 32 }; 248 unsigned iVariation = 0; 249 union 250 { 251 IMAGEHLP_MODULE64 ModInfo; 252 uint8_t abPadding[sizeof(IMAGEHLP_MODULE64) + 64]; 253 } u; 254 255 BOOL fRc; 256 do 257 { 258 RT_ZERO(u.ModInfo); 259 u.ModInfo.SizeOfStruct = sizeof(u.ModInfo) + s_acbVariations[iVariation++]; 260 fRc = SymGetModuleInfo64(g_hFake, pMod->uModAddr, &u.ModInfo); 261 } while (!fRc && GetLastError() == ERROR_INVALID_PARAMETER && iVariation < RT_ELEMENTS(s_acbVariations)); 262 263 if (fRc) 264 { 265 RTPrintf(" BaseOfImage = %#018llx\n", u.ModInfo.BaseOfImage); 266 RTPrintf(" ImageSize = %#010x\n", u.ModInfo.ImageSize); 267 RTPrintf(" TimeDateStamp = %#010x\n", u.ModInfo.TimeDateStamp); 268 RTPrintf(" CheckSum = %#010x\n", u.ModInfo.CheckSum); 269 RTPrintf(" NumSyms = %#010x (%u)\n", u.ModInfo.NumSyms, u.ModInfo.NumSyms); 270 RTPrintf(" SymType = %s\n", symTypeName(u.ModInfo.SymType)); 271 RTPrintf(" ModuleName = %.32s\n", u.ModInfo.ModuleName); 272 RTPrintf(" ImageName = %.256s\n", u.ModInfo.ImageName); 273 RTPrintf(" LoadedImageName = %.256s\n", u.ModInfo.LoadedImageName); 274 RTPrintf(" LoadedPdbName = %.256s\n", u.ModInfo.LoadedPdbName); 275 RTPrintf(" CVSig = %#010x\n", u.ModInfo.CVSig); 263 276 /** @todo CVData. */ 264 RTPrintf(" PdbSig = %#010x\n", ModInfo.PdbSig);265 RTPrintf(" PdbSig70 = %RTuuid\n", & ModInfo.PdbSig70);266 RTPrintf(" PdbAge = %#010x\n", ModInfo.PdbAge);267 RTPrintf(" PdbUnmatched = %RTbool\n", ModInfo.PdbUnmatched);268 RTPrintf(" DbgUnmatched = %RTbool\n", ModInfo.DbgUnmatched);269 RTPrintf(" LineNumbers = %RTbool\n", ModInfo.LineNumbers);270 RTPrintf(" GlobalSymbols = %RTbool\n", ModInfo.GlobalSymbols);271 RTPrintf(" TypeInfo = %RTbool\n", ModInfo.TypeInfo);272 RTPrintf(" SourceIndexed = %RTbool\n", ModInfo.SourceIndexed);273 RTPrintf(" Publics = %RTbool\n", ModInfo.Publics);277 RTPrintf(" PdbSig = %#010x\n", u.ModInfo.PdbSig); 278 RTPrintf(" PdbSig70 = %RTuuid\n", &u.ModInfo.PdbSig70); 279 RTPrintf(" PdbAge = %#010x\n", u.ModInfo.PdbAge); 280 RTPrintf(" PdbUnmatched = %RTbool\n", u.ModInfo.PdbUnmatched); 281 RTPrintf(" DbgUnmatched = %RTbool\n", u.ModInfo.DbgUnmatched); 282 RTPrintf(" LineNumbers = %RTbool\n", u.ModInfo.LineNumbers); 283 RTPrintf(" GlobalSymbols = %RTbool\n", u.ModInfo.GlobalSymbols); 284 RTPrintf(" TypeInfo = %RTbool\n", u.ModInfo.TypeInfo); 285 RTPrintf(" SourceIndexed = %RTbool\n", u.ModInfo.SourceIndexed); 286 RTPrintf(" Publics = %RTbool\n", u.ModInfo.Publics); 274 287 } 275 288 else … … 350 363 351 364 case 'h': 352 RTPrintf("usage: %s [-v|--verbose] [-q|--quiet] [- a <addr>] [-l <file>] [-d] [...]\n"365 RTPrintf("usage: %s [-v|--verbose] [-q|--quiet] [--set-debug-info] [-a <addr>] [-l <file>] [-d] [...]\n" 353 366 " or: %s [-V|--version]\n" 354 367 " or: %s [-h|--help]\n",
Note:
See TracChangeset
for help on using the changeset viewer.