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

经典asp(vb6)应用程序崩溃,CPU使用率为100%,vb6,asp-classic,crash-dumps,Vb6,Asp Classic,Crash Dumps,我遇到了一个旧的遗留应用程序的问题,该应用程序最近开始崩溃。我试图调查DebugDiag分析,但运气不太好。或者有一个sql查询可以锁定,并且调用线程不会消失?然后调用堆栈再次指向oledb32!CImpIErrorInfo::GetHelpFile+a1 以下是来自DebugDiag的信息,我认为与此问题相关: w3wp.exe_MyApp_PID_7572_Date_10_21_2010_时间_08_43_22AM_720_Manual Dump.dmp中的以下线程正在使用ADO进行数据库操

我遇到了一个旧的遗留应用程序的问题,该应用程序最近开始崩溃。我试图调查DebugDiag分析,但运气不太好。或者有一个sql查询可以锁定,并且调用线程不会消失?然后调用堆栈再次指向oledb32!CImpIErrorInfo::GetHelpFile+a1

以下是来自DebugDiag的信息,我认为与此问题相关:

w3wp.exe_MyApp_PID_7572_Date_10_21_2010_时间_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_+186
ntdll!LdrFindResource_+18
内核32!FindResourceExW+65
用户32!加载字符串错误+31
用户32!LoadStringW+18
msado15!FetchInfo+ba
msado15!CErrorLookup::GetHelpInfo+1e
oledb32!CImpIErrorInfo::GetHelpFile+a1
msvbvm60!ExecProj::SetModuleCount+a
msvbvm60!CEcProjTypeComp::发布+4
msvbvm60!RcmConstructModuleInstance+8f
奥列奥特32!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
我的应用程序!DLLCUnloadNow+212e
奥列奥特32!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!cscriptentypoint::Call+51
vbscript!会话::执行+c8
vbscript!COleScript::executependingscript+144
vbscript!COleScript::SetScriptState+14d
asp!CActiveScriptEngine::TryCall+19
asp!CActiveScriptEngine::Call+31
asp!CallScriptOfEngine+5b的功能
asp!ExecuteRequest+17e
asp!执行+24c
asp!CHitObj::ViperAsyncCallback+3f0
asp!CVIPerasynccrequest::OnCall+92
通信!CSTAActivityWork::StatActivityWorkHelper+32
ole32!EnterForCallback+c4
ole32!用于回调的开关+1a3
ole32!PerformCallback+54
ole32!CObjectContext::InternalContextCallback+159
ole32!CObjectContext::DoCallback+1c
通信!CSTAActivityWork::DoWork+12d
通信!CSTAThread::DoWork+18
通信!CSTAThread::ProcessQueueWork+37
通信!CSTAThread::WorkerLoop+190
msvcrt_endthreadex+a3
内核32!BaseThreadStart+34

…剪辑…剪辑

从194.241.111.228:26238到81.175.250.2:80的客户端连接
主机标题81.175.250.2:80 获取对/MyApp/netk.asp的请求 HTTP版本HTTP/1.1 SSL请求错误 活时间00:49:33 查询字符串
请求映射到
HTTP请求状态HTR\u读取\u客户端\u请求
本机请求状态NREQ_State_进程

很难说,但我会从抛出ProcessMonitor/RegMon/FileMon/TcpViewer开始。这也不是个坏主意

然后,如果你仍然没有得到任何线索,我会跳出来,这一直是我的核心选择,因为学习曲线是如此巨大。但是,假设您学习了这些命令,您可以在崩溃时中断,然后向后遍历堆栈,并可能找出错误的来源


当然,你可以重新安装所有东西,这可能会解决你所有的问题。

是的,我知道如果我在别处找不到答案,windbg将是下一个使用的工具。我还知道,由于我对windbg没有经验,要想弄清楚这一点需要做很多工作。