VirtualBox

Changeset 16080 in vbox for trunk/src/VBox/VMM


Ignore:
Timestamp:
Jan 20, 2009 11:15:58 AM (16 years ago)
Author:
vboxsync
Message:

DBGF: 64-bit linux symbol files.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/VMM/DBGFSym.cpp

    r14072 r16080  
    466466            return SYMFILETYPE_LINUX_SYSTEM_MAP;
    467467
     468        if (   isxdigit(szHead[0])
     469            && isxdigit(szHead[1])
     470            && isxdigit(szHead[2])
     471            && isxdigit(szHead[3])
     472            && isxdigit(szHead[4])
     473            && isxdigit(szHead[5])
     474            && isxdigit(szHead[6])
     475            && isxdigit(szHead[7])
     476            && isxdigit(szHead[8])
     477            && isxdigit(szHead[9])
     478            && isxdigit(szHead[10])
     479            && isxdigit(szHead[11])
     480            && isxdigit(szHead[12])
     481            && isxdigit(szHead[13])
     482            && isxdigit(szHead[14])
     483            && isxdigit(szHead[15])
     484            && szHead[16] == ' '
     485            && isalpha(szHead[17])
     486            && szHead[18] == ' '
     487            && (isalpha(szHead[19]) || szHead[19] == '_' || szHead[19] == '$')
     488            )
     489            return SYMFILETYPE_LINUX_SYSTEM_MAP;
     490
    468491        if (strstr(szHead, "Microsoft C/C++ MSF") == szHead)
    469492            return SYMFILETYPE_PDB;
     
    496519        const char *psz = dbgfR3Strip(szLine);
    497520        char *pszEnd = NULL;
    498         RTGCUINTPTR Address = strtoul(psz, &pszEnd, 16);
    499         if (    pszEnd && (*pszEnd == ' ' || *pszEnd == '\t')
    500             &&  Address != 0
    501             &&  Address != (RTGCUINTPTR)~0)
     521        uint64_t u64Address;
     522        int rc = RTStrToUInt64Ex(psz, &pszEnd, 16, &u64Address);
     523        RTGCUINTPTR Address = u64Address;
     524        if (    RT_SUCCESS(rc)
     525            &&  (*pszEnd == ' ' || *pszEnd == '\t')
     526            &&  Address == u64Address
     527            &&  u64Address != 0
     528            &&  u64Address != (RTGCUINTPTR)~0)
    502529        {
    503530            pszEnd++;
Note: See TracChangeset for help on using the changeset viewer.

© 2024 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette