Hi all. I have a single-threaded FoxPro 8 DLL being instantiated and
used in a IIS ASP application. At times, the DLL will stop responding
and produce a stack overflow. I am able to catch the problem with
WinDbg and it shows me the recurring frames but I do not understand how
to proceed in order to find where in the FoxPro CODE itself the error
is occurring. I need some assistance in translating the dump into areas
in the actual code that are causing the loop. The results of !analyze
-v are below. Thanks for any help!
0:025> !analyze -v
*******************************************************************************
*
*
* Exception Analysis
*
*
*
*******************************************************************************
*************************************************************************
***
***
***
***
*** Your debugger is not using the correct symbols
***
***
***
*** In order for this command to work properly, your symbol path
***
*** must point to .pdb files that have full type information.
***
***
***
*** Certain .pdb files (such as the public OS symbols) do not
***
*** contain the required information. Contact the group that
***
*** provided you with these symbols if you need this command to
***
*** work.
***
***
***
*** Type referenced: ntdll!_PEB
***
***
***
*************************************************************************
*** WARNING: Unable to verify checksum for pdm.dll
*** ERROR: Symbol file could not be found. Defaulted to export symbols
for pdm.dll -
*** ERROR: Symbol file could not be found. Defaulted to export symbols
for oledb32.dll -
FAULTING_IP:
vfp8r!EXECloseDoHistory+5d
0c0615d5 a1f8d43a0c mov eax,[vfp8r!g_punt (0c3ad4f8)]
EXCEPTION_RECORD: ffffffff -- (.exr ffffffffffffffff)
ExceptionAddress: 0c0188cf (vfp8r!_chkstk+0x00000026)
ExceptionCode: c00000fd (Stack overflow)
ExceptionFlags: 00000000
NumberParameters: 2
Parameter[0]: 00000000
Parameter[1]: 02172ecc
BUGCHECK_STR: c00000fd
DEFAULT_BUCKET_ID: APPLICATION_FAULT
PROCESS_NAME: DLLHOST.EXE
ERROR_CODE: (NTSTATUS) 0xc00000fd - A new guard page for the stack
cannot be created.
RECURRING_STACK: From frames 0x4 to 0xc
LAST_CONTROL_TRANSFER: from 0c2d6f38 to 0c0188cf
STACK_TEXT:
021abee0 0c2d6f38 00000000 0000001e 00000000 vfp8r!_chkstk+0x26
021abef4 0c116276 20657355 525c3a58 4f534945 vfp8r!PCProgReset+0xc4
021adfa0 0c0c869f 00000001 00000000 898fdbe3 vfp8r!macro+0xff
021adfb4 0c0615d5 00000000 039d0270 021ae058 vfp8r!x_macro+0xc
021adfd4 0c061204 0c3ab4e0 0c061776 00000001
vfp8r!EXECloseDoHistory+0x5d
021adfdc 0c061776 00000001 00000000 0c3ad560 vfp8r!imode+0x96
021ae058 0c083b7a 00000000 00000000 00000000 vfp8r!xDoStmt+0x160
021ae318 0c0839ed 0000030c 039d17d5 0c018b3d vfp8r!arrayelement+0x3e1
021ae324 0c018b3d 0000020b 0c3ad560 0000002c vfp8r!esubscript+0x17
021ae398 0c06388b 00000008 021aea10 021aeb34 vfp8r!xxexpr+0xba
021ae3b0 0c0732e6 021ae3c8 00000008 00000004 vfp8r!xxgetname+0x33
021ae5e0 0c07543c 00000000 00000014 0c3b0aa0 vfp8r!DBMObj2SpecEx+0x11f
021aebec 0c0615d5 00000045 039d16f3 021aec90 vfp8r!x_use+0x1ba
021aec0c 0c061204 0c3ab4a0 0c061776 00000000
vfp8r!EXECloseDoHistory+0x5d
021aec14 0c061776 00000000 021aee0c 00000003 vfp8r!imode+0x96
021aec90 0c0a5811 00000045 00000045 00000040 vfp8r!xDoStmt+0x160
021aed10 0c0a57a9 021aee00 00000003 00000045 vfp8r!LDCIs25Form2+0xca
021aed34 0c069583 00000045 00000002 00000000
vfp8r!LDCInvokeUserMethod+0x8c
021aee58 0c0a5380 00000002 0394518c 00000003
vfp8r!omDoMethodOrEvent+0x6d1
021af030 0c2352e7 00000002 0394518c 00000003 vfp8r!omDoMethod+0x318
021af0b4 0c2362ca 021af0f0 00000045 000002ff
vfp8r!CFoxOleObjIGetOleObject::GetOleObject+0x1a6
021af1b4 0c2364f1 03841b9c 00000001 00000000
vfp8r!CFoxOleObjIDispatchInvoke+0x2ad
021af1e8 6b614279 03841b9c 00000002 6b65c888
vfp8r!CFoxOleObjIDispatch::Invoke+0x48
021af240 0c1cc64f 0cff32e0 021af214 0c0f177a
vbscript!DllUnregisterServer+0x43
021af24c 0c0f177a 021af9a8 6b6578ce 6b658e28
vfp8r!CstSrvComMapBlindFunc+0x46
021af264 6b61866f 052c0a78 03841b9c 00000002
vfp8r!ATL::AtlInternalQueryInterface+0x63
021af988 6b62e400 00000018 021afa7c 00000000
vbscript!GlobalBinder::EnsureBuiltin+0xf60
021afa38 6b62f166 021af9a8 00000000 56433230
vbscript!CScriptRuntime::SetVar+0x13a
021afab0 6b61a3d6 00000000 00000000 00000000
vbscript!CScriptRuntime::Run+0xc83
021afaf8 6b61a251 02563960 6b607b25 02579460
vbscript!GlobalBinder::EnsureBuiltin+0x5e00
00000000 00000000 00000000 00000000 00000000
vbscript!GlobalBinder::EnsureBuiltin+0x392e
FOLLOWUP_IP:
vfp8r!EXECloseDoHistory+5d
0c0615d5 a1f8d43a0c mov eax,[vfp8r!g_punt (0c3ad4f8)]
SYMBOL_STACK_INDEX: 4
FOLLOWUP_NAME: MachineOwner
SYMBOL_NAME: vfp8r!EXECloseDoHistory+5d
MODULE_NAME: vfp8r
IMAGE_NAME: vfp8r.dll
DEBUG_FLR_IMAGE_TIMESTAMP: 3f73c232
STACK_COMMAND: .ecxr ; kb
FAILURE_BUCKET_ID: c00000fd_vfp8r!EXECloseDoHistory+5d
BUCKET_ID: c00000fd_vfp8r!EXECloseDoHistory+5d
Followup: MachineOwner
---------