/*++ Copyright (c) 2000 Microsoft Corporation Module Name: debug.cxx Abstract: This file contains debug routines to debug extenstion problems. Author: JasonHa --*/ #include #if DBG const char NoIndent[] = ""; void vPrintNativeFieldInfo( PFIELD_INFO pFI, const char *pszIndent) { if (!pFI) return; DbgPrint(" %sPUCHAR fName = \"%s\"\n", pszIndent, pFI->fName); DbgPrint(" %sPUCHAR printName = \"%s\"\n", pszIndent, pFI->printName); DbgPrint(" %sULONG size = 0x%x\n", pszIndent, pFI->size); DbgPrint(" %sULONG fOptions = 0x%08x\n", pszIndent, pFI->fOptions); DbgPrint(" %sULONG64 address = 0x%I64x\n", pszIndent, pFI->address); DbgPrint(" %sPVOID fieldCallBack = 0x%p\n", pszIndent, pFI->fieldCallBack); } void vPrintNativeSymDumpParam( PSYM_DUMP_PARAM pSDP, BOOL bDumpFields, const char *pszIndent) { if (!pSDP) return; char pszNextIndent[80]; _snprintf(pszNextIndent, sizeof(pszNextIndent), "%s ", pszIndent); DbgPrint(" %sULONG size = 0x%x\n", pszIndent, pSDP->size); DbgPrint(" %sPUCHAR sName = \"%s\"\n", pszIndent, pSDP->sName); DbgPrint(" %sULONG Options = 0x%08x\n", pszIndent, pSDP->Options); DbgPrint(" %sULONG64 addr = 0x%I64x\n", pszIndent, pSDP->addr); DbgPrint(" %sPFIELD_INFO listLink = 0x%p\n", pszIndent, pSDP->listLink); DbgPrint(" %sPVOID Context = 0x%p\n", pszIndent, pSDP->Context); DbgPrint(" %sPSYM_DUMP_FIELD_CALLBACK CallbackRoutine = 0x%p\n", pszIndent, pSDP->CallbackRoutine); DbgPrint(" %sULONG nFields = %d\n", pszIndent, pSDP->nFields); DbgPrint(" %sPFIELD_INFO Fields = 0x%p\n", pszIndent, pSDP->Fields); if (bDumpFields && pSDP->Fields) { for (ULONG nField = 0; nField < pSDP->nFields; nField++) { DbgPrint(" %sFIELD_INFO Fields[%d] = {\n", pszIndent, nField); vPrintNativeFieldInfo(&pSDP->Fields[nField], pszNextIndent); DbgPrint(" %s}\n", pszIndent); } } } #endif DBG