Changeset 41493 in vbox for trunk/src/VBox/Runtime/common
- Timestamp:
- May 30, 2012 1:47:41 PM (13 years ago)
- Location:
- trunk/src/VBox/Runtime/common/dbg
- Files:
-
- 5 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/Runtime/common/dbg/dbgas.cpp
r39032 r41493 1289 1289 * @retval VERR_INVALID_HANDLE if hDbgAs is invalid. 1290 1290 * @retval VERR_NOT_FOUND if the address couldn't be mapped to a module. 1291 * @retval VERR_INVALID_PARAMETER if incorrect flags. 1291 1292 * 1292 1293 * @param hDbgAs The address space handle. 1293 1294 * @param Addr The address which closest symbol is requested. 1294 * @param poffDisp Where to return the distance between the symbol 1295 * and address. Optional. 1295 * @param fFlags Symbol search flags, see RTDBGSYMADDR_FLAGS_XXX. 1296 * @param poffDisp Where to return the distance between the symbol and 1297 * address. Optional. 1296 1298 * @param pSymbol Where to return the symbol info. 1297 1299 * @param phMod Where to return the module handle. Optional. 1298 1300 */ 1299 RTDECL(int) RTDbgAsSymbolByAddr(RTDBGAS hDbgAs, RTUINTPTR Addr, PRTINTPTR poffDisp, PRTDBGSYMBOL pSymbol, PRTDBGMOD phMod) 1301 RTDECL(int) RTDbgAsSymbolByAddr(RTDBGAS hDbgAs, RTUINTPTR Addr, uint32_t fFlags, 1302 PRTINTPTR poffDisp, PRTDBGSYMBOL pSymbol, PRTDBGMOD phMod) 1300 1303 { 1301 1304 /* … … 1319 1322 * Forward the call. 1320 1323 */ 1321 int rc = RTDbgModSymbolByAddr(hMod, iSeg, offSeg, poffDisp, pSymbol);1324 int rc = RTDbgModSymbolByAddr(hMod, iSeg, offSeg, fFlags, poffDisp, pSymbol); 1322 1325 if (RT_SUCCESS(rc)) 1323 1326 rtDbgAsAdjustSymbolValue(pSymbol, hMod, MapAddr, iSeg); … … 1337 1340 * @retval VERR_INVALID_HANDLE if hDbgAs is invalid. 1338 1341 * @retval VERR_NOT_FOUND if the address couldn't be mapped to a module. 1342 * @retval VERR_INVALID_PARAMETER if incorrect flags. 1339 1343 * 1340 1344 * @param hDbgAs The address space handle. 1341 1345 * @param Addr The address which closest symbol is requested. 1346 * @param fFlags Symbol search flags, see RTDBGSYMADDR_FLAGS_XXX. 1342 1347 * @param poffDisp Where to return the distance between the symbol 1343 1348 * and address. Optional. … … 1346 1351 * @param phMod Where to return the module handle. Optional. 1347 1352 */ 1348 RTDECL(int) RTDbgAsSymbolByAddrA(RTDBGAS hDbgAs, RTUINTPTR Addr, PRTINTPTR poffDisp, PRTDBGSYMBOL *ppSymInfo, PRTDBGMOD phMod) 1353 RTDECL(int) RTDbgAsSymbolByAddrA(RTDBGAS hDbgAs, RTUINTPTR Addr, uint32_t fFlags, 1354 PRTINTPTR poffDisp, PRTDBGSYMBOL *ppSymInfo, PRTDBGMOD phMod) 1349 1355 { 1350 1356 /* … … 1368 1374 * Forward the call. 1369 1375 */ 1370 int rc = RTDbgModSymbolByAddrA(hMod, iSeg, offSeg, poffDisp, ppSymInfo);1376 int rc = RTDbgModSymbolByAddrA(hMod, iSeg, offSeg, fFlags, poffDisp, ppSymInfo); 1371 1377 if (RT_SUCCESS(rc)) 1372 1378 rtDbgAsAdjustSymbolValue(*ppSymInfo, hMod, MapAddr, iSeg); -
trunk/src/VBox/Runtime/common/dbg/dbgmod.cpp
r39083 r41493 1121 1121 * @retval VERR_DBG_INVALID_SEGMENT_OFFSET if the segment offset is beyond the 1122 1122 * end of the segment. 1123 * @retval VERR_INVALID_PARAMETER if incorrect flags. 1123 1124 * 1124 1125 * @param hDbgMod The module handle. 1125 1126 * @param iSeg The segment number. 1126 1127 * @param off The offset into the segment. 1128 * @param fFlags Symbol search flags, see RTDBGSYMADDR_FLAGS_XXX. 1127 1129 * @param poffDisp Where to store the distance between the 1128 1130 * specified address and the returned symbol. … … 1130 1132 * @param pSymInfo Where to store the symbol information. 1131 1133 */ 1132 RTDECL(int) RTDbgModSymbolByAddr(RTDBGMOD hDbgMod, RTDBGSEGIDX iSeg, RTUINTPTR off, PRTINTPTR poffDisp, PRTDBGSYMBOL pSymInfo) 1134 RTDECL(int) RTDbgModSymbolByAddr(RTDBGMOD hDbgMod, RTDBGSEGIDX iSeg, RTUINTPTR off, uint32_t fFlags, 1135 PRTINTPTR poffDisp, PRTDBGSYMBOL pSymInfo) 1133 1136 { 1134 1137 /* … … 1139 1142 AssertPtrNull(poffDisp); 1140 1143 AssertPtr(pSymInfo); 1144 AssertReturn(!(fFlags & ~RTDBGSYMADDR_FLAGS_VALID_MASK), VERR_INVALID_PARAMETER); 1141 1145 1142 1146 RTDBGMOD_LOCK(pDbgMod); … … 1158 1162 * Get down to business. 1159 1163 */ 1160 int rc = pDbgMod->pDbgVt->pfnSymbolByAddr(pDbgMod, iSeg, off, poffDisp, pSymInfo);1164 int rc = pDbgMod->pDbgVt->pfnSymbolByAddr(pDbgMod, iSeg, off, fFlags, poffDisp, pSymInfo); 1161 1165 1162 1166 RTDBGMOD_UNLOCK(pDbgMod); … … 1183 1187 * end of the segment. 1184 1188 * @retval VERR_NO_MEMORY if RTDbgSymbolAlloc fails. 1189 * @retval VERR_INVALID_PARAMETER if incorrect flags. 1185 1190 * 1186 1191 * @param hDbgMod The module handle. 1187 1192 * @param iSeg The segment index. 1188 1193 * @param off The offset into the segment. 1194 * @param fFlags Symbol search flags, see RTDBGSYMADDR_FLAGS_XXX. 1189 1195 * @param poffDisp Where to store the distance between the 1190 1196 * specified address and the returned symbol. Optional. … … 1193 1199 * RTDbgSymbolFree. 1194 1200 */ 1195 RTDECL(int) RTDbgModSymbolByAddrA(RTDBGMOD hDbgMod, RTDBGSEGIDX iSeg, RTUINTPTR off, PRTINTPTR poffDisp, PRTDBGSYMBOL *ppSymInfo) 1201 RTDECL(int) RTDbgModSymbolByAddrA(RTDBGMOD hDbgMod, RTDBGSEGIDX iSeg, RTUINTPTR off, uint32_t fFlags, 1202 PRTINTPTR poffDisp, PRTDBGSYMBOL *ppSymInfo) 1196 1203 { 1197 1204 AssertPtr(ppSymInfo); … … 1202 1209 return VERR_NO_MEMORY; 1203 1210 1204 int rc = RTDbgModSymbolByAddr(hDbgMod, iSeg, off, poffDisp, pSymInfo);1211 int rc = RTDbgModSymbolByAddr(hDbgMod, iSeg, off, fFlags, poffDisp, pSymInfo); 1205 1212 1206 1213 if (RT_SUCCESS(rc)) -
trunk/src/VBox/Runtime/common/dbg/dbgmodcontainer.cpp
r39083 r41493 288 288 289 289 /** @copydoc RTDBGMODVTDBG::pfnSymbolByAddr */ 290 static DECLCALLBACK(int) rtDbgModContainer_SymbolByAddr(PRTDBGMODINT pMod, RTDBGSEGIDX iSeg, RTUINTPTR off, 290 static DECLCALLBACK(int) rtDbgModContainer_SymbolByAddr(PRTDBGMODINT pMod, RTDBGSEGIDX iSeg, RTUINTPTR off, uint32_t fFlags, 291 291 PRTINTPTR poffDisp, PRTDBGSYMBOL pSymInfo) 292 292 { … … 312 312 : &pThis->paSegs[iSeg].SymAddrTree, 313 313 off, 314 f alse/*fAbove*/);314 fFlags == RTDBGSYMADDR_FLAGS_GREATER_OR_EQUAL /*fAbove*/); 315 315 if (!pAvlCore) 316 316 return VERR_SYMBOL_NOT_FOUND; -
trunk/src/VBox/Runtime/common/dbg/dbgmoddwarf.cpp
r39515 r41493 3301 3301 3302 3302 /** @interface_method_impl{RTDBGMODVTDBG,pfnSymbolByAddr} */ 3303 static DECLCALLBACK(int) rtDbgModDwarf_SymbolByAddr(PRTDBGMODINT pMod, RTDBGSEGIDX iSeg, RTUINTPTR off, 3303 static DECLCALLBACK(int) rtDbgModDwarf_SymbolByAddr(PRTDBGMODINT pMod, RTDBGSEGIDX iSeg, RTUINTPTR off, uint32_t fFlags, 3304 3304 PRTINTPTR poffDisp, PRTDBGSYMBOL pSymInfo) 3305 3305 { 3306 3306 PRTDBGMODDWARF pThis = (PRTDBGMODDWARF)pMod->pvDbgPriv; 3307 return RTDbgModSymbolByAddr(pThis->hCnt, iSeg, off, poffDisp, pSymInfo);3307 return RTDbgModSymbolByAddr(pThis->hCnt, iSeg, off, fFlags, poffDisp, pSymInfo); 3308 3308 } 3309 3309 -
trunk/src/VBox/Runtime/common/dbg/dbgmodnm.cpp
r39389 r41493 92 92 93 93 /** @interface_method_impl{RTDBGMODVTDBG,pfnSymbolByAddr} */ 94 static DECLCALLBACK(int) rtDbgModNm_SymbolByAddr(PRTDBGMODINT pMod, RTDBGSEGIDX iSeg, RTUINTPTR off, 94 static DECLCALLBACK(int) rtDbgModNm_SymbolByAddr(PRTDBGMODINT pMod, RTDBGSEGIDX iSeg, RTUINTPTR off, uint32_t fFlags, 95 95 PRTINTPTR poffDisp, PRTDBGSYMBOL pSymInfo) 96 96 { 97 97 PRTDBGMODNM pThis = (PRTDBGMODNM)pMod->pvDbgPriv; 98 return RTDbgModSymbolByAddr(pThis->hCnt, iSeg, off, poffDisp, pSymInfo);98 return RTDbgModSymbolByAddr(pThis->hCnt, iSeg, off, fFlags, poffDisp, pSymInfo); 99 99 } 100 100
Note:
See TracChangeset
for help on using the changeset viewer.