我使用的是 TivaWare 2.1.4.178中的 LWIP 1.4.1。 我的固件一次允许五个连接。 我有一个客户端应用程序连接到 TM4C1294板并传输/接收少量数据。 在执行一些压力测试时、我会持续与固件进行多个连接、然后断开连接并重复执行、我注意到 LWIP 中的 ACTIVE_PCV_list 最终会使用自参考"下一个"指针损坏。 示例:
这会在 LWIP 的 tcp.c 代码中的函数中产生一个无限循环、在该循环中、函数尝试在其中显示活动 PCB 的列表。 为了确定活动 PCB 列表损坏的位置和时间、我修改了 LWIP 以便在列表修改后随时查找任何自参考"下一个"指针。 发生这种情况时、我设置一个断点。 在发生 tcp_REG_ACTIVE (npcb)后、我会在 tcp_in.c 的 tcp_listen_input 函数中持续看到它发生。 以下是调用堆栈以及第一次看到它已损坏时在 tcp_in.c 中的位置:
我花了很多时间来查看代码、并确保仅在 TM4C 的以太网中断期间调用 LWIP 函数。 我想知道其他人是否曾遇到过这个问题或类似问题、或对可能发生的情况有任何想法? 提前感谢。

