如何在gdb中使用数学函数

4

我是一名学生,遇到一个问题:当我在Linux程序中使用powasin,并尝试用GDB进行调试时,会出现错误:undefined reference to ‘pow’。

我知道为了解决这个问题,在GCC编译器中需要添加-lm参数。那么在GDB中是否有类似-lm的参数呢?


听起来有点奇怪。在gdb中运行不需要做任何特殊的事情。您能否提供完整的编译和gdb运行日志? - kaylum
你为什么认为应该使用带有 -lm 这样的关键字来调试 GDB? - ks1322
2个回答

2
要使用数学函数,您需要使用-lm选项编译源代码(这将消除数学函数的未定义引用错误),并且为了使gdb中的调试符号可用,您需要使用-g选项编译源代码。 gcc -g -o myprog main.c -lm 要调试程序,请使用以下命令: gdb ./myprog 在gdb中打印或使用任何函数时,请使用gdb的call函数。 call (double)pow(3.0, 2.0) 请确保使用正确的函数语法,否则gdb会返回错误的答案。 call (double) pow (double , double)

也许你知道如何在 VS Code 中使它工作? - Taras Novosiadlyi

0

gdb使用编译文件进行调试。因此,在使用-lm和-g之后,您可以使用gdb正常运行结果文件。换句话说,您应该运行以下内容,这对我很有效:

gcc -g test.c -lm
gdb ./a.out

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接