~ubuntu-branches/ubuntu/trusty/virtualbox/trusty-proposed

« back to all changes in this revision

Viewing changes to src/VBox/Runtime/common/dbg/dbgas.cpp

  • Committer: Package Import Robot
  • Author(s): Felix Geyer
  • Date: 2013-03-07 16:38:36 UTC
  • mfrom: (1.1.13) (3.1.20 experimental)
  • Revision ID: package-import@ubuntu.com-20130307163836-p93jpbgx39tp3gb4
Tags: 4.2.8-dfsg-0ubuntu1
* New upstream release. (Closes: #691148)
  - Fixes compatibility with kernel 3.8. (Closes: #700823; LP: #1101867)
* Switch to my @debian.org email address.
* Move package to contrib as virtualbox 4.2 needs a non-free compiler to
  build the BIOS.
* Build-depend on libdevmapper-dev.
* Refresh patches.
  - Drop 36-fix-ftbfs-xserver-112.patch, cve-2012-3221.patch,
    CVE-2013-0420.patch 37-kcompat-3.6.patch and 38-kcompat-3.7.patch.
* Drop all virtualbox-ose transitional packages.
* Drop the virtualbox-fuse package as vdfuse fails to build with
  virtualbox 4.2.
* Update install files and VBox.sh.
* Bump required kbuild version to 0.1.9998svn2577.
* Fix path to VBoxCreateUSBNode.sh in virtualbox.postinst. (Closes: #700479)
* Add an init script to virtuabox-guest-x11 which loads the vboxvideo
  kernel module. The X Server 1.13 doesn't load it anymore. (Closes: #686994)
* Update man pages. (Closes: #680053)
* Add 36-python-multiarch.patch from Rico Tzschichholz to fix detection of
  python in multiarch paths using pkg-config.

Show diffs side-by-side

added added

removed removed

Lines of Context:
4
4
 */
5
5
 
6
6
/*
7
 
 * Copyright (C) 2009 Oracle Corporation
 
7
 * Copyright (C) 2009-2012 Oracle Corporation
8
8
 *
9
9
 * This file is part of VirtualBox Open Source Edition (OSE), as
10
10
 * available from http://www.virtualbox.org. This file is free software;
757
757
     * Remove it from the module handle tree.
758
758
     */
759
759
    PAVLPVNODECORE pNode = RTAvlPVRemove(&pDbgAs->ModTree, pMod->Core.Key);
760
 
    Assert(pNode == &pMod->Core);
 
760
    Assert(pNode == &pMod->Core); NOREF(pNode);
761
761
 
762
762
    /*
763
763
     * Remove it from the module table by replacing it by the last entry.
792
792
{
793
793
    /* remove from the tree */
794
794
    PAVLRUINTPTRNODECORE pNode = RTAvlrUIntPtrRemove(&pDbgAs->MapTree, pMap->Core.Key);
795
 
    Assert(pNode == &pMap->Core);
 
795
    Assert(pNode == &pMap->Core); NOREF(pNode);
796
796
 
797
797
    /* unlink */
798
798
    PRTDBGASMOD pMod = pMap->pMod;
1288
1288
 * @returns IPRT status code. See RTDbgModSymbolAddr for more specific ones.
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
    /*
1302
1305
     * Validate input and resolve the address.
1318
1321
    /*
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);
1324
1327
    if (phMod)
1336
1339
 * @returns IPRT status code. See RTDbgModSymbolAddrA for more specific ones.
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.
1344
1349
 * @param   ppSymInfo       Where to return the pointer to the allocated symbol
1345
1350
 *                          info. Always set. Free with RTDbgSymbolFree.
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
    /*
1351
1357
     * Validate input and resolve the address.
1367
1373
    /*
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);
1373
1379
    if (phMod)