HP-Socket icon indicating copy to clipboard operation
HP-Socket copied to clipboard

m_iPending断言触发

Open woowloop opened this issue 2 years ago • 6 comments

在EnHandleResult OnReceive(CONNID dwConnID, const BYTE* pData, int iLength)函数中返回HR_ERROR 偶尔会触发m_iPending>=0 image

woowloop avatar Jun 27 '23 08:06 woowloop

理论上 m_iPending 不可能小于0的,你再调试下看看工作线程堆栈和变量值。

ldcsaa avatar Jul 02 '23 16:07 ldcsaa

image image

woowloop avatar Jul 04 '23 06:07 woowloop

目前能想到的唯一一个小于0的可能就是int值超出最大值了,不过那要2g数据,不大可能。 要不修改m_iPending的地方的下一行代码打个条件断点,当m_iPending小于0时触发断点。

ldcsaa avatar Jul 06 '23 11:07 ldcsaa

直接修改了了TcpClinet.cpp文件在修改m_iPending的地方都加了断言 重新编译测试数据确实超过2g了
image 2147570277超过了2147483647

woowloop avatar Jul 31 '23 03:07 woowloop

这是来自樊  邮箱的自动回复邮件。 您好,您发的邮件我已收到,我会及时查看并予以回复。

FunlyDay avatar Jul 31 '23 03:07 FunlyDay

重新编译测试数据确实超过2g了

要么是发送太快,需要做下流控。要么是调用send时传入的length不正确。

ldcsaa avatar Aug 05 '23 09:08 ldcsaa