在 gdb 中运行 floor() 或 ceil()
run floor() or ceil() in gdb
编辑: 我在Linux Mint 18.3 (Ubuntu 16.04( X64
我已经读到许多其他问题,在 gdb 中执行任意函数的最佳方法是确保正确转换输入/输出变量。
表达式p ((double(*)())floor)(2.12)
产生$1 = 2.1200000000000001
表达式也是如此p ((double(*)())ceil)(2.12)
但是数学库中的其他函数似乎可以工作,例如p ((double(*)())fmod)(12.,5.)
给出 2;p ((double(*)())sqrt)(64.)
给出 8。p ((double(*)())pow)(2.,2.)
如预期的那样给出 4
。所以我的问题是没有给出正确值的双精度/ceil 函数有什么区别。由于某种原因,三角函数似乎也没有返回正确的值。它们似乎都有相同或相似的函数签名,所以我对出了什么问题感到困惑。
math.h c 库是包含的标头,但代码也链接到 c++ 库 - 不确定这是否会有所作为。
这个:
p ((double(*)())floor)(2.12)
要求 GDB 调用一个不带参数的函数floor
。
由于在许多平台上(包括Linux/x86_64
(参数传递取决于参数的类型(整数参数以RDI
传递,RSI
等双精度参数在XMM0
、XMM1
等中传递(,您必须告诉GDB函数需要什么类型的参数(除非存在libm
调试信息,在这种情况下不需要强制转换(。尝试
p ((double(*)(double))floor)(2.12)
相关文章:
- C++:floor unix时间戳到UTC月份
- 在 gdb 中运行 floor() 或 ceil()
- C++使用 CEIL 和长度输出不正确的值
- ceil、floor 和 round 在转换为整数时会遇到精度损失问题吗?
- C++ ceil() 在傀儡排序中不起作用
- 什么时候会static_casting结果 ceil 妥协结果
- 舍入比LLVM中的floor/ceil/int慢得多
- 在C++GMP中使用ceil
- C++ floor() 将值减少 1
- CEIL对于确切的整数部门来说太高了
- 如何将sqrt和ceil与Boost::multiprecision一起使用
- 用于正浮点值的 floor 和 ceil
- Ceil函数在寻找中值中的作用
- 删除c++中小数点后的数字(不带floor()函数)
- Visual Studio不允许我使用sqrt或floor,对重载函数的模糊调用
- ceil() 和 floor() 在 C++ 中用于size_t类型的函数
- 在C++中使用ceil函数时出现计算错误
- 在c++中,使用ceil除法是行不通的
- c++ Builder调用未定义函数hypot/ceil/floor/fab
- OpenACC and floor/ceil functions