经典的asp(vb6)应用程序以100%的CPU使用率崩溃

时间:2010-10-21 06:28:34

标签: vb6 asp-classic crash-dumps

我遇到了最近崩溃的旧版应用程序出现问题。我正在尝试调查DebugDiag分析,但没有太多运气。要么有一个sql查询锁定,不知何故调用线程不会消失?然后再次callstack指向oledb32!CImpIErrorInfo :: GetHelpFile + a1。

以下是DebugDiag的信息,我认为这与此问题有关:

w3wp.exe_ MyApp _PID_ 7572 _Date__10_21_2010__Time_08_43_22AM_ 720 _Manual Dump.dmp中的以下主题正在使用ADO进行数据库操作。

对MSADO15的调用!CERRORLOOKUP :: GETHELPINFO来自oledb32!CImpIErrorInfo :: GetHelpFile + a1

...夹...夹...

线程17 - 系统ID 4160 入口点msvcrt!_endthreadex + 2f 创造时间21.10.2010 0:08:16 在用户模式中花费的时间0天00:11:22.781 在内核模式下花费的时间0天00:27:49.953

此线程正在使用ADO进行数据库操作。

对MSADO15的调用!CERRORLOOKUP :: GETHELPINFO来自oledb32!CImpIErrorInfo :: GetHelpFile + a1

功能源 NTDLL!GetUILangID + 31
NTDLL!LdrpSearchResourceSection_U + 186
NTDLL!LdrFindResource_U + 18
KERNEL32!FindResourceExW + 65
USER32!LoadStringOrError + 31
USER32!LoadStringW + 18
msado15!FetchInfo + BA
msado15!CErrorLookup :: GetHelpInfo + 1E
oledb32!CImpIErrorInfo :: GetHelpFile + A1
MSVBVM60!ExecProj :: SetModuleCount +一个
MSVBVM60!CEcProjTypeComp ::版本+ 4
MSVBVM60!RcmConstructModuleInstance + 8F
OLEAUT32!DispCallFunc + 16A
MSVBVM60!VBStrToLong + CF
MSVBVM60!FileOutString + BB
MSVBVM60!_ vbaPrintObj + 51
MSWCRUN!DllUnregisterDesigner + 8ad3
MSWCRUN!DllUnregisterDesigner + ACCB
MSWCRUN!DllUnregisterDesigner + af8c
MSWCRUN!DllUnregisterDesigner + a7de
MSWCRUN!DllUnregisterDesigner + 7b51
MyApp的!DllCanUnloadNow + 212E
OLEAUT32!DispCallFunc + 16A
MSVBVM60!VBStrToLong + CF
MSVBVM60!FileOutString + BB
MSVBVM60!
_vbaPrintObj + 51
MSWCRUN!DllUnregisterDesigner + 8ad3
MSWCRUN!DllUnregisterDesigner + 7d13
MSWCRUN!DllUnregisterDesigner + 6e64
MSWCRUN!DllUnregisterDesigner + 9097
MSWCRUN!DllUnregisterDesigner + 8fa6
VBScript中!IDispatchInvoke2 + B2
VBScript中!IDispatchInvoke + 59
VBScript中!InvokeDispatch + 13A
VBScript中!InvokeByName + 42
VBScript中!CScriptRuntime :: RunNoEH + 234C
VBScript中!CScriptRuntime ::运行+ 62
VBScript中!CScriptEntryPoint ::电话+ 51
VBScript中!CSession ::执行+ C8
VBScript中!COleScript :: ExecutePendingScripts + 144
VBScript中!COleScript :: SetScriptState + 14D
ASP!CActiveScriptEngine :: TryCall + 19
ASP!CActiveScriptEngine ::拨打+ 31
ASP!CallScriptFunctionOfEngine + 5B
ASP!ExecuteRequest + 17E
ASP!执行+ 24C
ASP!CHitObj :: ViperAsyncCallback + 3f0
ASP!CViperAsyncRequest :: OnCall中+ 92
COMSVCS!CSTAActivityWork :: STAActivityWorkHelper + 32
OLE32!EnterForCallback + C4
OLE32!SwitchForCallback + 1A3
OLE32!PerformCallback + 54
OLE32!CObjectContext :: InternalContextCallback + 159
OLE32!CObjectContext :: DoCallback + 1C
COMSVCS!CSTAActivityWork :: DoWork的+ 12D
COMSVCS!CSTAThread :: DoWork的+ 18
COMSVCS!CSTAThread :: ProcessQueueWork + 37
COMSVCS!CSTAThread :: WorkerLoop + 190
MSVCRT!_endthreadex + A3
kernel32!BaseThreadStart + 34

...夹...夹...

客户端连接从194.241.111.228:26238到81.175.250.2:80
主机标题81.175.250.2:80 GET请求/MyApp/netk.asp HTTP版本HTTP / 1.1 SSL请求错误 时间00:49:33 查询字符串
请求映射到
HTTP请求状态HTR_READING_CLIENT_REQUEST 本机请求状态NREQ_STATE_PROCESS

1 个答案:

答案 0 :(得分:0)

很难说,但我首先从live.sysinternals.com投掷ProcessMonitor / RegMon / FileMon / TcpViewer。 Fiddler也不是一个坏主意。

然后,如果你仍然没有得到任何线索,我会突破WinDBG,这总是我的核选择,因为学习曲线非常庞大。但是,假设您学习了这些命令,您可以在崩溃时中断,然后向后移动堆栈,并可能找出错误的来源。

当然,您可以重新安装所有内容,这可能会解决您的所有问题。