VirtualBox

Changeset 38515 in vbox for trunk/include/iprt


Ignore:
Timestamp:
Aug 24, 2011 2:33:32 PM (13 years ago)
Author:
vboxsync
Message:

IPRT: Working on debug info again.

Location:
trunk/include/iprt
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/include/iprt/getopt.h

    r37665 r38515  
    334334
    335335/**
    336  * Fetch an additional value.
    337  *
    338  * This is used for special cases where an option have more than one value.
    339  *
     336 * Fetch a value.
     337 *
     338 * Used to retrive a value argument in a manner similar to what RTGetOpt does
     339 * (@a fFlags -> @a pValueUnion).  This can be used when handling
     340 * VINF_GETOPT_NOT_OPTION, but is equally useful for decoding options that
     341 * takes more than one value.
    340342 *
    341343 * @returns VINF_SUCCESS on success.
     
    345347 * @returns VERR_GETOPT_REQUIRED_ARGUMENT_MISSING if there are no more
    346348 *          available arguments. pValueUnion->pDef is NULL.
    347  * @returns VERR_GETOPT_INVALID_ARGUMENT_FORMAT and pValueUnion->pDef if
    348  *          value conversion failed.
     349 * @returns VERR_GETOPT_INVALID_ARGUMENT_FORMAT and pValueUnion->pDef is
     350 *          unchanged if value conversion failed.
    349351 *
    350352 * @param   pState      The state previously initialized with RTGetOptInit.
  • trunk/include/iprt/ldr.h

    r35191 r38515  
    332332/** @} */
    333333
     334
     335/**
     336 * Debug info type (as far the loader can tell).
     337 */
     338typedef enum RTLDRDBGINFOTYPE
     339{
     340    /** The invalid 0 value. */
     341    RTLDRDBGINFOTYPE_INVALID = 0,
     342    /** Unknown debug info format. */
     343    RTLDRDBGINFOTYPE_UNKNOWN,
     344    /** Stabs. */
     345    RTLDRDBGINFOTYPE_STABS,
     346    /** Debug With Arbitrary Record Format (DWARF). */
     347    RTLDRDBGINFOTYPE_DWARF,
     348    /** Microsoft Codeview debug info. */
     349    RTLDRDBGINFOTYPE_CODEVIEW,
     350    /** Watcom debug info. */
     351    RTLDRDBGINFOTYPE_WATCOM,
     352    /** IBM High Level Language debug info.. */
     353    RTLDRDBGINFOTYPE_HLL,
     354    /** The end of the valid debug info values (exclusive). */
     355    RTLDRDBGINFOTYPE_END,
     356    /** Blow the type up to 32-bits. */
     357    RTLDRDBGINFOTYPE_32BIT_HACK = 0x7fffffff
     358} RTLDRDBGINFOTYPE;
     359
     360/**
     361 * Debug info enumerator callback.
     362 *
     363 * @returns VINF_SUCCESS to continue the enumeration.  Any other status code
     364 *          will cause RTLdrEnumDbgInfo to immediately return with that status.
     365 *
     366 * @param   hLdrMod         The module handle.
     367 * @param   iDbgInfo        The debug info ordinal number / id.
     368 * @param   enmType         The debug info type.
     369 * @param   iMajorVer       The major version number of the debug info format.
     370 *                          -1 if unknow - implies invalid iMinorVer.
     371 * @param   iMinorVer       The minor version number of the debug info format.
     372 *                          -1 when iMajorVer is -1.
     373 * @param   pszPartNm       The name of the debug info part, NULL if not
     374 *                          applicable.
     375 * @param   offFile         The file offset *if* this type has one specific
     376 *                          location in the executable image file. This is -1
     377 *                          if there isn't any specific file location.
     378 * @param   LinkAddress     The link address of the debug info if it's
     379 *                          loadable. RTUINTPTR_MAX if not loadable.
     380 * @param   cb              The size of the debug information. -1 is used if
     381 *                          this isn't applicable.
     382 * @param   pszExtFile      This points to the name of an external file
     383 *                          containing the debug info.  This is NULL if there
     384 *                          isn't any external file.
     385 * @param   pvUser          The user parameter specified to RTLdrEnumDbgInfo.
     386 */
     387typedef DECLCALLBACK(int) FNRTLDRENUMDBG(RTLDRMOD hLdrMod, uint32_t iDbgInfo, RTLDRDBGINFOTYPE enmType,
     388                                         uint16_t iMajorVer, uint16_t iMinorVer, const char *pszPartNm,
     389                                         RTFOFF offFile, RTUINTPTR LinkAddress, RTUINTPTR cb,
     390                                         const char *pszExtFile, void *pvUser);
     391/** Pointer to a debug info enumerator callback. */
     392typedef FNRTLDRENUMDBG *PFNRTLDRENUMDBG;
     393
     394
     395/**
     396 * Enumerate the debug info contained in the executable image.
     397 *
     398 * @returns IPRT status code or whatever pfnCallback returns.
     399 *
     400 * @param   hLdrMod         The module handle.
     401 * @param   pvBits          Optional pointer to bits returned by
     402 *                          RTLdrGetBits().  This can be used by some module
     403 *                          interpreters to reduce memory consumption.
     404 * @param   pfnCallback     The callback function.
     405 * @param   pvUser          The user argument.
     406 */
     407RTDECL(int) RTLdrEnumDbgInfo(RTLDRMOD hLdrMod, const void *pvBits, PFNRTLDRENUMDBG pfnCallback, void *pvUser);
     408
    334409RT_C_DECLS_END
    335410
  • trunk/include/iprt/mangling.h

    r37951 r38515  
    551551# define RTLatin1ToUtf8Tag                              RT_MANGLER(RTLatin1ToUtf8Tag)
    552552# define RTLdrClose                                     RT_MANGLER(RTLdrClose)
     553# define RTLdrEnumDbgInfo                               RT_MANGLER(RTLdrEnumDbgInfo)
    553554# define RTLdrEnumSymbols                               RT_MANGLER(RTLdrEnumSymbols)
    554555# define RTLdrGetBits                                   RT_MANGLER(RTLdrGetBits)
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