我的项目中有一个严重的错误。当我使用 gdb 打开 .core 时,它向我显示了类似的内容(为了便于阅读,我没有放置所有 gdb 输出):
这是非常非常可疑的,新编写的部分代码::
0x00000000004579fe in http_chunk_count_loop
(f=0x82e68dbf0, pl=0x817606e8a Address 0x817606e8a out of bounds)
这是代码中非常成熟的部分,可以正常工作很长时间::
0x000000000045c8a5 in packet_handler_http
(f=0x82e68dbf0, pl=0x817606e8a Address 0x817606e8a out of bounds)
好的,现在让我心烦意乱的是pl=0x817606e8a Address 0x817606e8a out of bounds
,gdb 显示它在到达新的书面代码之前已经超出了界限。这让我想到了调用函数引起的问题packet_handler_http
。
但是packet_handler_http
非常成熟,长时间工作没有问题。这让我误解了 gdb 输出。
问题出在packet_handler_http
我猜,但由于这已经是工作代码,我很困惑,我的猜测是对的还是我错过了什么?