我有一个我正在使用的库(这对我的工作至关重要),我怀疑它可能有错误。不幸的是,图书馆的所有者对尝试我的示例代码反应迟钝。我将尝试自己调试它。
老实说,它不仅仅是一个库,它是一个库加上一组内核模块,并且崩溃发生在内核级别(非常讨厌),而且对于代码的所有者来说确实也很难发现。
有时我很幸运,我得到一个内核 oops,如果我可以使用 -g 选项构建他的代码,我可以找到发生错误的行(这很有帮助,因为我刚刚开始面对他的大量代码几乎没有线索)。
现在项目的 GNUmakefiles 是用 automake 构建的(我相信)。我的问题是如何告诉我make
要添加-g
到CFLAGS
整个构建中?
我记得读过一些关于如何编写 Makefile 以便可以添加“外部”选项等的内容,但我不知道这些 makefile 是否会以这种能力生成(应该是因为它是 automake),或者这些外部选项是如何生成的反正给了!
我猜是这样的:
make CFLAGS=-g
应该这样做,但老实说不知道。
编辑:请注意,我实际上对-g
构建内核模块时要包含的标志感兴趣。我不能使用尝试和错误(例如使用上面的命令)来查看是否有效,因为内核构建只是打印[CC] ...
而不显示任何选项!
编辑:实际上我确实尝试过,但gdb ./module.ko
仍然声称没有调试符号。