完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
我编写了一个简单的SSL应用程序,用于向服务器发送HTTPS请求。在数千个请求之后,应用程序在握手期间崩溃:
客户端握手开始。 型号:M 1032 致命异常 29 (StoreProhibitedCause) : epc1=0x4000e1b2、epc2=0x00000000、epc3=0x00000000、excvaddr=0x00000004、depc=0x00000000 ets Jan 8 2013,rst cause:2, boot mode:(1,6) ets Jan 8 2013,rst cause:4, boot mode:(1,6) WDT 复位 此时,没有任何内容不再运行,应用程序未正确重新启动。 我尝试使用 objdump 反汇编我的程序,以查看哪个指令在 epc1=0x4000e1b2 时失败。但是这个地址似乎在BOOT ROM部分,根据http://esp8266-re.foogod.com/wiki/memory_map. 另一点是,在每次请求之后,我都会收到错误: 客户端数据无效协议 错误:SSL 错误 3 但它不会停止程序执行。我不知道这些错误意味着什么,因为它们是由 SDK 打印的,我没有找到任何关于它的文档。 |
|
相关推荐
1个回答
|
|
SSL握手失败可能有多种原因。以下是一些可能的原因和解决方案:
1. **证书问题**:确保服务器的SSL证书有效且未过期。如果证书是自签名的,请确保客户端信任该证书。 2. **协议不兼容**:检查客户端和服务器支持的SSL/TLS协议版本是否兼容。例如,如果服务器仅支持TLS 1.2,而客户端尝试使用TLS 1.0进行连接,则握手将失败。 3. **密码套件不匹配**:确保客户端和服务器支持相同的密码套件。如果密码套件不匹配,握手将失败。 4. **资源限制**:如果系统资源有限(如内存或CPU),SSL握手可能会失败。尝试优化代码或增加系统资源。 5. **网络问题**:检查网络连接是否稳定。不稳定的网络连接可能导致握手失败。 6. **代码错误**:检查您的SSL应用程序代码,确保正确实现了SSL握手过程。例如,确保正确初始化SSL上下文、配置证书和私钥等。 关于您提到的错误信息,`fatal exception 29 (StoreProhibitedCause)` 通常与内存访问违规有关。这可能是由于以下原因: 1. **内存越界**:检查您的代码,确保没有数组越界或错误的内存访问。 2. **堆栈溢出**:确保您的函数调用没有导致堆栈溢出。检查递归调用和其他可能导致堆栈溢出的代码。 3. **内存泄漏**:检查您的代码,确保没有内存泄漏。使用内存分析工具(如Valgrind)来检测内存泄漏。 4. **硬件问题**:如果问题持续存在,可能是硬件故障。尝试在不同的硬件上运行您的应用程序。 要进一步诊断问题,您可以使用调试器(如GDB)来分析程序的执行过程,并在崩溃点设置断点。这将帮助您找到导致错误的具体代码行。同时,您可以使用`objdump`反汇编您的程序,以便更深入地了解程序的执行过程。 |
|
|
|
只有小组成员才能发言,加入小组>>
429浏览 6评论
362浏览 5评论
有没有办法在不使用混杂模式的情况下实现Wifi驱动程序接收缓冲区访问中断呢?
343浏览 5评论
349浏览 4评论
327浏览 4评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-9-1 14:53 , Processed in 0.976279 second(s), Total 78, Slave 61 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191