gpt4 book ai didi

c - 使用 valgrind 的 C 程序浮点陷阱

转载 作者:太空宇宙 更新时间:2023-11-03 23:32:49 25 4
gpt4 key购买 nike

我正在尝试找出如何找到用 C 编写的模拟代码生成 NaN 的确切位置。我在 Debian squeeze 上使用纯 C89(但我可以转移到 C99/C11)和 gcc 4.4.5。

显然有一个 patch对于应该能够执行此检查的 valgrind。不幸的是,它不包含在 Debian 分发的二进制文件中。事实上,尝试编译 vanilla valgrind 加上 exp-floattrap 也不起作用(它似乎不包含在最终的可执行文件中)。

您是否继续在 C 源代码中查找此类错误的来源?

感谢您的帮助。

最佳答案

我承认我根本不使用 valgrind,只是因为我不需要它,但是如果您要查找的只是单个变量设置为 NaN 的情况,您是否可以不使用GDB(或类似的),并为变量设置一个观察点,如:

watch var==NaN

这让您知道一个变量在什么时候变为 NaN,如果这不是有罪操作本身,而是一个返回值,您可以将自己的一个函数移到有罪链上,并在该函数中设置一个观察点,依此类推,直到您看到错误。

希望对您有所帮助:)

关于c - 使用 valgrind 的 C 程序浮点陷阱,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11674985/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com