这个问题在这里已经有了答案:
Why does gdb evaluate sqrt(3) to 0?
(5 个回答)
gdb gives strange output when using math.h functions [duplicate]
(1 个回答)
12 个月前关闭。
我是一名学生,我遇到了一个问题:当我使用 pow
时或 asin
在我的 Linux 程序中并尝试使用 GDB 调试它时,我收到错误:未定义对“pow”的引用。
我知道要在 GCC 编译器中解决这个问题,我需要添加 -lm
key 。有没有像 -lm
这样的键为 GDB?
最佳答案
要使用数学函数,您必须使用 -lm
编译源代码。选项(这将删除数学函数的 undefined reference 错误),
为了使调试符号在 gdb 中可用,您必须使用 -g
编译源代码选项。gcc -g -o myprog main.c -lm
要调试程序运行它gdb ./myprog
要在 gdb 调试期间打印或使用任何函数,请使用 call
gdb的功能call (double)pow(3.0, 2.0)
确保使用正确的函数语法,否则 gdb 返回错误答案call (double) pow (double , double)
关于c - 如何在 gdb 中使用数学函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64906390/