Changeset 35253 in vbox for trunk/src/VBox/Debugger
- Timestamp:
- Dec 20, 2010 4:47:38 PM (14 years ago)
- svn:sync-xref-src-repo-rev:
- 69100
- Location:
- trunk/src/VBox/Debugger
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/Debugger/DBGCEmulateCodeView.cpp
r35163 r35253 3747 3747 { 3748 3748 PDBGC pDbgc = DBGC_CMDHLP2DBGC(pCmdHlp); 3749 unsigned iArg; 3749 3750 3750 3751 /* 3751 3752 * Validate input. 3752 3753 */ 3753 if ( cArgs >=23754 if ( cArgs < 2 3754 3755 || !DBGCVAR_ISPOINTER(paArgs[0].enmType)) 3755 3756 return DBGCCmdHlpFail(pCmdHlp, pCmd, "internal error: The parser doesn't do its job properly yet... It might help to use the '%%' operator.\n"); 3756 for ( unsigned iArg = 2; iArg < cArgs; iArg++)3757 for (iArg = 1; iArg < cArgs; iArg++) 3757 3758 if (paArgs[iArg].enmType != DBGCVAR_TYPE_NUMBER) 3758 3759 return DBGCCmdHlpFail(pCmdHlp, pCmd, "internal error: The parser doesn't do its job properly yet: Arg #%u is not a number.\n", iArg); … … 3777 3778 */ 3778 3779 DBGCVAR Addr = paArgs[0]; 3779 unsigned iArg = 1; 3780 for (;;) 3780 for (iArg = 1;;) 3781 3781 { 3782 3782 size_t cbWritten; -
trunk/src/VBox/Debugger/DBGPlugInSolaris.cpp
r33467 r35253 166 166 AssertCompileSize(SOL64v9_modctl_t, 0x80); 167 167 168 typedef struct SOL32v4_modctl 169 { 170 uint32_t mod_next; /**< 0 */ 171 uint32_t mod_prev; /**< 4 */ 172 int32_t mod_id; /**< 8 */ 173 uint32_t mod_mp; /**< c Pointer to the kernel runtime loader bits. */ 174 uint32_t mod_inprogress_thread; /**< 10 */ 175 uint32_t mod_modinfo; /**< 14 */ 176 uint32_t mod_linkage; /**< 18 */ 177 uint32_t mod_filename; /**< 1c */ 178 uint32_t mod_modname; /**< 20 */ 179 int32_t mod_busy; /**< 24 */ 180 int32_t mod_stub; /**< 28 */ 181 uint32_t mod_loaded:1; /**< 2c DIFF 1 */ 182 uint32_t mod_installed:1; /**< 2c */ 183 uint32_t mod_uninstalled:1; /**< 2c */ 184 uint32_t mod_noautounload:1; /**< 2c */ 185 int8_t mod_want; /**< 30 DIFF 2 */ 186 char mod_padding1[3]; 187 uint32_t mod_requisites; /**< 34 */ 188 uint32_t mod_dependents; /**< 38 */ 189 int32_t mod_loadcnt; /**< 3c */ 190 /* DIFF 3: 8 bytes added in v9 */ 191 } SOL32v4_modctl_t; 192 AssertCompileSize(SOL32v4_modctl_t, 0x40); 193 168 194 typedef union SOL_modctl 169 195 { 196 SOL32v4_modctl_t v4; 170 197 SOL32v9_modctl_t v9_32; 171 198 SOL32v11_modctl_t v11_32; … … 963 990 } 964 991 992 /* v4 - 32bit only */ 993 { 994 DBGFR3AddrFromFlat(pVM, &ModCtlAddr, HitAddr.FlatPtr - RT_OFFSETOF(SOL32v4_modctl_t, mod_loadcnt)); 995 SOL32v4_modctl_t ModCtlv4; 996 rc = DBGFR3MemRead(pVM, 0, &ModCtlAddr, &ModCtlv4, sizeof(ModCtlv4)); 997 if (RT_SUCCESS(rc)) 998 { 999 if ( SOL32_VALID_ADDRESS(ModCtlv4.mod_next) 1000 && SOL32_VALID_ADDRESS(ModCtlv4.mod_prev) 1001 && ModCtlv4.mod_id == 0 1002 && SOL32_VALID_ADDRESS(ModCtlv4.mod_mp) 1003 && SOL32_VALID_ADDRESS(ModCtlv4.mod_filename) 1004 && SOL32_VALID_ADDRESS(ModCtlv4.mod_modname) 1005 && ModCtlv4.mod_requisites == 0 1006 && (ModCtlv4.mod_loadcnt == 1 || ModCtlv4.mod_loadcnt == 0) ) 1007 { 1008 char szUnix[5]; 1009 DBGFADDRESS NameAddr; 1010 DBGFR3AddrFromFlat(pVM, &NameAddr, ModCtlv4.mod_modname); 1011 rc = DBGFR3MemRead(pVM, 0, &NameAddr, &szUnix, sizeof(szUnix)); 1012 if (RT_SUCCESS(rc)) 1013 { 1014 if (!strcmp(szUnix, "unix")) 1015 { 1016 pThis->AddrUnixModCtl = ModCtlAddr; 1017 pThis->iModCtlVer = 4; 1018 cbModCtl = sizeof(ModCtlv4); 1019 break; 1020 } 1021 Log(("sol32 mod_name=%.*s v4\n", sizeof(szUnix), szUnix)); 1022 } 1023 } 1024 } 1025 } 1026 965 1027 /* next */ 966 1028 DBGFR3AddrFromFlat(pVM, &CurAddr, HitAddr.FlatPtr + cbExpr); … … 1039 1101 1040 1102 /* 32-bit search range. */ 1041 DBGFR3AddrFromFlat(pVM, &Addr, 0x fe800000);1042 RTGCUINTPTR cbRange = 0xfec00000 - 0xfe800000;1103 DBGFR3AddrFromFlat(pVM, &Addr, 0xe0010000 /*0xfe800000*/); 1104 RTGCUINTPTR cbRange = 4 * 1024 * 1024; // 0xfec00000 - 0xfe800000; 1043 1105 1044 1106 DBGFADDRESS HitAddr;
Note:
See TracChangeset
for help on using the changeset viewer.