-1

我的进程在 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
4

1 回答 1

0

找到了这个问题的解决方案。实际上,在此调用之前,有 bufferoverflow 正在破坏我的堆。修复缓冲区溢出解决了我的问题。

于 2018-10-22T10:56:03.793 回答