【发布时间】:2016-10-26 14:40:10
【问题描述】:
测试场景是 ping 来 IP 和 ctr+C 交替从脚本调用。
似乎在调用信号处理程序时,ping 在 malloc 内。信号处理程序也称为 malloc 并且 malloc 返回以下警告。 在 malloc() 中:警告:递归调用
但我仍然找不到它是如何导致崩溃的,请有人解释一下
【问题讨论】:
-
如果
triptime是一个常量并且代码中没有其他 FP(即triptime*1000.0在编译时完成),则某些编译会优化 FP 例程,而printf()会使用 FP 说明符失败 - 但这只是一个猜测,因为这里的上下文很少。 -
当您说“崩溃”时,您是指 ping 二进制文件、操作系统还是其他东西?这当然看起来像是 3.1 ping 的一条线(在最近的 NetBSD 中,由于 64 位时序而有所不同)。另外,您正在运行什么命令行以及在什么架构上运行?这可能是与特定硬件相关的奇怪硬件/操作系统问题。
-
我更新了问题,请您现在检查一下
标签: c linux network-programming reentrancy netbsd