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

发布于 2024-09-28 09:41:01 字数 3108 浏览 1 评论 0原文

我在使用最近开始崩溃的旧版应用程序时遇到问题。我正在尝试调查 DebugDiag 分析,但运气不佳。要么有一个 sql 查询被锁定,并且调用线程不会消失?然后调用堆栈再次指向 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

...clip...clip...

线程 17 - 系统 ID 4160 入口点 msvcrt!_endthreadex+2f 创建时间 2010年10月21日 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+a
msvbvm60!CEcProjTypeComp::Release+4
msvbvm60!Rc​​mConstructModuleInstance+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::Run+62
vbscript!CScriptEntryPoint::Call+51
vbscript!CSession::执行+c8
vbscript!COleScript::ExecutePendingScripts+144
vbscript!COleScript::SetScriptState+14d
asp!CActiveScriptEngine::TryCall+19
asp!CActiveScriptEngine::Call+31
asp!CallScriptFunctionOfEngine+5b
asp!ExecuteRequest+17e
asp!执行+24c
asp!CHitObj::ViperAsyncCallback+3f0
asp!CViperAsyncRequest::OnCall+92
comsvc​​s!CSTAActivityWork::STAActivityWorkHelper+32
ole32!EnterForCallback+c4
ole32!SwitchForCallback+1a3
ole32!PerformCallback+54
ole32!CObjectContext::InternalContextCallback+159
ole32!CObjectContext::DoCallback+1c
comsvc​​s!CSTAActivityWork::DoWork+12d
comsvc​​s!CSTAThread::DoWork+18
comsvc​​s!CSTAThread::ProcessQueueWork+37
comsvc​​s!CSTAThread::WorkerLoop+190
msvcrt!_endthreadex+a3
kernel32!BaseThreadStart+34

...clip...clip...

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

I'm having trouble with an old legacy app that recently started crashing. I'm trying to investigate the DebugDiag analysis, but don't have much luck. Either there is a sql query that locks and somehow the calling thread doesn't die away? Then again callstack points to oledb32!CImpIErrorInfo::GetHelpFile+a1.

Here's the info from DebugDiag which I think is relevant to this problem:

The following threads in w3wp.exe_MyApp_PID_7572_Date__10_21_2010__Time_08_43_22AM_720_Manual Dump.dmp are making a database operation using ADO.

The call to MSADO15!CERRORLOOKUP::GETHELPINFO originated from oledb32!CImpIErrorInfo::GetHelpFile+a1

...clip...clip...

Thread 17 - System ID 4160
Entry point msvcrt!_endthreadex+2f
Create time 21.10.2010 0:08:16
Time spent in user mode 0 Days 00:11:22.781
Time spent in kernel mode 0 Days 00:27:49.953

This thread is making a database operation using ADO.

The call to MSADO15!CERRORLOOKUP::GETHELPINFO originated from oledb32!CImpIErrorInfo::GetHelpFile+a1

Function Source
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+a
msvbvm60!CEcProjTypeComp::Release+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::Run+62
vbscript!CScriptEntryPoint::Call+51
vbscript!CSession::Execute+c8
vbscript!COleScript::ExecutePendingScripts+144
vbscript!COleScript::SetScriptState+14d
asp!CActiveScriptEngine::TryCall+19
asp!CActiveScriptEngine::Call+31
asp!CallScriptFunctionOfEngine+5b
asp!ExecuteRequest+17e
asp!Execute+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

...clip...clip...

Client connection from 194.241.111.228:26238 to 81.175.250.2:80
Host Header 81.175.250.2:80
GET request for /MyApp/netk.asp
HTTP Version HTTP/1.1
SSL Request False
Time alive 00:49:33
QueryString
Request mapped to
HTTP Request State HTR_READING_CLIENT_REQUEST
Native Request State NREQ_STATE_PROCESS

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

把人绕傻吧 2024-10-05 09:41:02

很难说,但我会从 live.sysinternals.com 抛出 ProcessMonitor/RegMon/FileMon/TcpViewer 开始。 Fiddler 也不是一个坏主意。

然后,如果您仍然没有任何线索,我会突破 WinDBG ,这始终是我的核心选择,因为学习曲线是如此巨大。但是,假设您学习了命令,您可以在崩溃时中断,然后向后遍历堆栈并可能找出错误来自何处。

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

Hard to say, but I'd start with throwing ProcessMonitor/RegMon/FileMon/TcpViewer from live.sysinternals.com. Fiddler wouldn't be a bad idea either.

Then, if you still get no clues, I'd break out WinDBG, which is always my nuclear option, because the learning curve is so massive. But, assuming, you learn the commands, you could break on the crash, then walk the stack backwards and potentially figure out where the error is coming from.

And of course, you could just reinstall everything and that will probably solve all your problems.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文