我的进程在WinHttpRecieveResponse()处的下面的调用堆栈中挂起。此行为有时在相同的数据和相同的用例下都有效。但大多数情况下它像下面那样挂起。
我已使用WireShark检查是否在计算机上收到了响应。我可以在Wireshark中找到响应。但是WinHttpRecieveResponse()无法接收该数据。
请帮助我找到问题。
ntdll.dll!ZwWaitForSingleObject() Unknown
KernelBase.dll!WaitForSingleObjectEx() Unknown
winhttp.dll!HTTP_USER_REQUEST::_HandleSyncPending(class PENDING_API_CALL *,unsigned long *) Unknown
winhttp.dll!HTTP_USER_REQUEST::RecvResponse(int,void (*)(void *,unsigned __int64,unsigned long,void *,unsigned long),unsigned long,unsigned __int64) Unknown
winhttp.dll!WinHttpReceiveResponse() Unknown
atimport.dll!winHTTPStream::DoWaitForResponse(btkTimeval waitTime) Line 525 C++
atimport.dll!btkHTTPStreamBase::IsResponse(btkTimeval Timeout) Line 301 C++
atimport.dll!btkHTTPStreamBase::CompleteOutput(bool Blocking) Line 608 C++
atimport.dll!UwgmServerCache_i::executeHttpRequest(btkHTTPStreamBase * connection, xstring & responseStr, xstring reqBody) Line 11207 C++
atimport.dll!UwgmUploadAction_i::getChapteredUploadDescriptorsFromServer() Line 4480 C++
atimport.dll!UwgmUploadAction_i::prepareForUpload() Line 4557 C++
atimport.dll!UwgmUploadAction_i::onWorkspaceActionStart() Line 6401 C++
atimport.dll!UwgmWorkspaceModificationAction_i::onWorkspaceModificationActionStart() Line 6965 C++
atimport.dll!UwgmWorkspaceAction_i::onStart() Line 3689 C++
atimport.dll!UwgmAction_i::run() Line 636 C++
atimport.dll!UwgmAction_i::start(xstring msg) Line 580 C++
atimport.dll!UwgmAction_i::execute(xstring msg) Line 494 C++
atimport.dll!UwgmAction_i::execute() Line 489 C++
atimport.dll!atwncintBaseUtils_uwgmcc::executeAction(xrchandle<UwgmClientConnectorAction> ccAction, xstring logStr) Line 533 C++
atimport.dll!atwncintWorkspace_uwgmcc::upload(xrchandle<UwgmUploadAction> uploader) Line 1166 C++
atimport.dll!atwncintWorkspace_uwgmcc::upload(xrchandle<xstringsequence> docCadNames, atwncintGhostResolutionOption ghostResolutionOption) Line 1231 C++
atimport.dll!atwncintWorkspace_uwgmcc::checkin(xrchandle<xstringsequence> docCadNames, xrchandle<xstringsequence> targetFolderPaths, const char * comment, xrchandle<atwncintPostCheckinOptionDict> postCheckinOpts, xrchandle<atwncintBaselineInfo> baseline, xrchandle<xstringsequence> addToBaselineNames, atwncintGhostResolutionOption ghostResolutionOption) Line 1324 C++
atimport.dll!Java_com_ptc_prowt_Implementation_atwncint_1k03_00024Workspace_checkin(JNIEnv_ * _env, _jobject * _self, _jobject * docNames, _jobject * targetFolderPaths, _jstring * comment, _jobject * postCheckinOptions, _jobject * baseline, _jobject * addToBaselineNames, _jobject * ghostResolutionOption) Line 8657 C++
000000000a681df0() Unknown
000000000513d9f8() Unknown
0000000000533468() Unknown
000000002b64d490() Unknown
000000002b7fde38() Unknown
答案 0 :(得分:0)
找到了解决此问题的方法。 实际上,在此调用之前,有bufferoverflow破坏了我的堆。 修复bufferoverflow解决了我的问题。