Ignore:
Timestamp:
Aug 20, 2007, 5:42:03 AM (18 years ago)
Author:
bird
Message:

Made the generic pe module build too.

File:
1 moved

Legend:

Unmodified
Added
Removed
  • trunk/kDbg/kDbgModPE.cpp

    r3529 r3530  
    3131#include "kDbgInternal.h"
    3232#include <kLdrModPE.h>
     33#include <string.h>
    3334
    3435
     
    7273                        ("off=" PRI_KDBGADDR " VirtualSize=%x\n", off, pModPe->aSections[iSegment].Misc.VirtualSize),
    7374                        KDBG_ERR_INVALID_ADDRESS);
    74         *puRVA = pModPe->aSections[iSegment].VirtualAddress + off;
     75        *puRVA = pModPe->aSections[iSegment].VirtualAddress + (uint32_t)off;
    7576        return 0;
    7677    }
     
    8081        kDbgAssertMsgReturn(off < pModPe->cbImage, ("off=" PRI_KDBGADDR ", cbImage=%x\n", off, pModPe->cbImage),
    8182                            KDBG_ERR_INVALID_ADDRESS);
    82         *puRVA = off;
     83        *puRVA = (uint32_t)off;
    8384        return 0;
    8485    }
     
    119120 * @copydoc KDBGMODOPS::pfnQueryLine
    120121 */
    121 static int rtDbgModPEQueryLine(PKDBGMOD pMod, int32_t iSegment, KDBGADDR off, PKDBGLINE pLine)
     122static int kDbgModPeQueryLine(PKDBGMOD pMod, int32_t iSegment, KDBGADDR off, PKDBGLINE pLine)
    122123{
    123124    PKDBGMODPE pModPe = (PKDBGMODPE)pMod;
     
    150151        }
    151152#endif
    152         rc = VERR_NOT_IMPLEMENTED;
     153        rc = KDBG_ERR_NOT_IMPLEMENTED;
    153154    }
    154155    return rc;
     
    159160 * @copydoc KDBGMODOPS::pfnQuerySymbol
    160161 */
    161 static int rtDbgModPEQuerySymbol(PKDBGMOD pMod, int32_t iSegment, KDBGADDR off, PKDBGSYMBOL pSym)
     162static int kDbgModPeQuerySymbol(PKDBGMOD pMod, int32_t iSegment, KDBGADDR off, PKDBGSYMBOL pSym)
    162163{
    163164    PKDBGMODPE pModPe = (PKDBGMODPE)pMod;
     
    175176        {
    176177            SYMBOL_INFO Sym;
    177             char        achBuffer[sizeof(SYMBOL_INFO) + RTDBG_SYMBOL_MAX];
     178            char        achBuffer[sizeof(SYMBOL_INFO) + KDBG_SYMBOL_MAX];
    178179        } Buf;
    179180        Buf.Sym.SizeOfStruct = sizeof(SYMBOL_INFO);
    180         Buf.Sym.MaxNameLen = RTDBG_SYMBOL_MAX;
     181        Buf.Sym.MaxNameLen = KDBG_SYMBOL_MAX;
    181182        if (g_pfnSymFromAddr(pModPe->hSymInst, pModPe->ImageBase + uRVA, &off, &Buf.Sym))
    182183        {
     
    193194            if ((Buf.Sym.Flags & (SYMFLAG_VALUEPRESENT | SYMFLAG_CONSTANT)) == (SYMFLAG_VALUEPRESENT | SYMFLAG_CONSTANT))
    194195            {
    195                 pSym->iSegment   = RTDBGSEG_ABS;
     196                pSym->iSegment   = KDBGSEG_ABS;
    196197                pSym->offSegment = (KDBGADDR)Buf.Sym.Value;
    197198                pSym->RVA        = (KDBGADDR)Buf.Sym.Value;
     
    214215        }
    215216#endif
    216         rc = VERR_NOT_IMPLEMENTED;
     217        rc = KDBG_ERR_NOT_IMPLEMENTED;
    217218    }
    218219    return rc;
     
    223224 * @copydoc KDBGMODOPS::pfnClose
    224225 */
    225 static int rtDbgModPEClose(PKDBGMOD pMod)
     226static int kDbgModPeClose(PKDBGMOD pMod)
    226227{
    227228    PKDBGMODPE pModPe = (PKDBGMODPE)pMod;
     
    234235    //kDbgAssertMsgFailed(("SymInitialize failed: Err=%d rc=%Rrc\n", Err, rc));
    235236    //return rc;
    236     return VERR_NOT_IMPLEMENTED;
     237    return KDBG_ERR_NOT_IMPLEMENTED;
    237238}
    238239
     
    241242 * Methods for a PE module.
    242243 */
    243 static const KDBGMODOPS g_rtDbgModPEOps =
    244 {
    245     "PE (dbghelp)",
    246     rtDbgModPEClose,
    247     rtDbgModPEQuerySymbol,
    248     rtDbgModPEQueryLine
     244static const KDBGMODOPS g_kDbgModPeOps =
     245{
     246    "PE",
     247    kDbgModPeClose,
     248    kDbgModPeQuerySymbol,
     249    kDbgModPeQueryLine
    249250};
    250251
     
    267268     */
    268269    IMAGE_FILE_HEADER FHdr;
    269     int rc = kDbgHlpReadAt(File, offHdr + KDBG_OFFSETOF(IMAGE_NT_HEADERS32, FileHeader), &FHdr, sizeof(FHdr), NULL);
    270     AssertRCReturn(rc, rc);
     270    int rc = kDbgHlpReadAt(pFile, offHdr + KDBG_OFFSETOF(IMAGE_NT_HEADERS32, FileHeader), &FHdr, sizeof(FHdr));
     271    kDbgAssertRCReturn(rc, rc);
    271272
    272273    uint32_t cbImage;
    273274    if (FHdr.SizeOfOptionalHeader == sizeof(IMAGE_OPTIONAL_HEADER32))
    274         rc = kDbgHlpReadAt(File, offHdr + KDBG_OFFSETOF(IMAGE_NT_HEADERS32, OptionalHeader.SizeOfImage),
    275                           &cbImage, sizeof(cbImage), NULL);
     275        rc = kDbgHlpReadAt(pFile, offHdr + KDBG_OFFSETOF(IMAGE_NT_HEADERS32, OptionalHeader.SizeOfImage),
     276                           &cbImage, sizeof(cbImage));
    276277    else if (FHdr.SizeOfOptionalHeader == sizeof(IMAGE_OPTIONAL_HEADER64))
    277         rc = kDbgHlpReadAt(File, offHdr + KDBG_OFFSETOF(IMAGE_NT_HEADERS64, OptionalHeader.SizeOfImage),
    278                           &cbImage, sizeof(cbImage), NULL);
     278        rc = kDbgHlpReadAt(pFile, offHdr + KDBG_OFFSETOF(IMAGE_NT_HEADERS64, OptionalHeader.SizeOfImage),
     279                           &cbImage, sizeof(cbImage));
    279280    else
    280         AssertFailedReturn(VERR_BAD_EXE_FORMAT);
    281     AssertRCReturn(rc, rc);
     281        kDbgAssertFailedReturn(KDBG_ERR_BAD_EXE_FORMAT);
     282    kDbgAssertRCReturn(rc, rc);
    282283
    283284    /*
    284285     * Allocate the module and read/construct the section headers.
    285286     */
    286     PKDBGMODPE pModPe = (PKDBGMODPE)RTMemAlloc(KDBG_OFFSETOF(KDBGMODPE, aSections[FHdr.NumberOfSections + 2]));
    287     AssertReturn(pModPe, KDBG_ERR_NO_MEMORY);
     287    PKDBGMODPE pModPe = (PKDBGMODPE)kDbgHlpAlloc(KDBG_OFFSETOF(KDBGMODPE, aSections[FHdr.NumberOfSections + 2]));
     288    kDbgAssertReturn(pModPe, KDBG_ERR_NO_MEMORY);
    288289    pModPe->Core.u32Magic   = KDBGMOD_MAGIC;
    289     pModPe->Core.pOps       = &g_rtDbgModPEOps;
    290     pModPe->Core.File       = File;
     290    pModPe->Core.pOps       = &g_kDbgModPeOps;
     291    pModPe->Core.pFile      = pFile;
    291292    pModPe->cbImage         = cbImage;
    292293    pModPe->cSections       = 1 + FHdr.NumberOfSections;
    293     rc = kDbgHlpReadAt(File, offHdr + KDBG_OFFSETOF(IMAGE_NT_HEADERS32, OptionalHeader) + FHdr.SizeOfOptionalHeader,
    294                       &pModPe->aSections[1], sizeof(pModPe->aSections[0]) * FHdr.NumberOfSections, NULL);
     294    rc = kDbgHlpReadAt(pFile, offHdr + KDBG_OFFSETOF(IMAGE_NT_HEADERS32, OptionalHeader) + FHdr.SizeOfOptionalHeader,
     295                       &pModPe->aSections[1], sizeof(pModPe->aSections[0]) * FHdr.NumberOfSections);
    295296    if (!rc)
    296297    {
     
    345346            g_pfnSymSetOptions(SYMOPT_LOAD_LINES | SYMOPT_AUTO_PUBLICS | SYMOPT_ALLOW_ABSOLUTE_SYMBOLS);
    346347
    347             RTFileSeek(File, 0, RTFILE_SEEK_BEGIN, NULL); /* don't know if this is required or not... */
     348            kDbgHlpSeek(pFile, 0); /* don't know if this is required or not... */
    348349            DWORD64 ImageBase = g_pfnSymLoadModule64(hSymInst, (HANDLE)File, pszModulePath, NULL, 0x00400000, 0);
    349350            if (ImageBase)
     
    367368        }
    368369#endif
    369         rc = VERR_NOT_IMPLEMENTED;
     370        rc = KDBG_ERR_NOT_IMPLEMENTED;
    370371    }
    371372    else
    372         AssertRC(rc);
     373        kDbgAssertRC(rc);
    373374
    374375    kDbgHlpFree(pModPe);
Note: See TracChangeset for help on using the changeset viewer.