我已经下载了 GMP 库 5.02 的源代码,并且 - 按照此处的建议以获得最大的可调试性 - 我运行了:
./configure --disable-shared --enable-assert --enable-alloca=debug --host=none CFLAGS=-g
并用make编译它,然后用make install安装库。然后我像这样编译我的程序:gcc -lgmp -std=c99 -g -c program.c
然后我运行:ltrace ./a.out
但是我意识到 ltrace 根本没有调用我可以在源代码中找到的 TRACE() 函数。我想跟踪 TRACE() 中的内容。
我该怎么做?或者在 GMP 库中是否有其他直接的调试方法?(我不知道如何用 gdb 来做,它从来不想进入 gmp_printf)
谢谢。
编辑:我试图进一步调查,并意识到我无法修改 GMP 库,尽管我有资源。printf("hello\n");
我在程序开头调用的函数的开头插入了 a mpz_init2
,我重新编译了所有 GMP(甚至在 a 之后make clean
)重新安装了库make install
,然后我编译并启动了我的程序,但它从未打印过“你好”。我还确定,我没有使用另一个已安装的 GMP 库(当我这样做时,make uninstall
我的程序无法编译,因为它找不到该库)。尽管如此,我还是坚持 gcc 使用 -L 选项在 GMP 源文件夹中查找库。
我不知道我做错了什么:(