プロジェクトに重大なバグがあります。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
私が推測するところにありますが、これはすでに機能しているコードであるため、混乱しています。私の推測は正しいですか、それとも何か不足していますか?