活泼的 GDB,兼谈 automake 对待 CFLAGS 和 AM_CFLAGS 的方式
只知道运行gdb的时候加上“-g”的选项是让它生成调试符号,“-g3”能让内联函数也无处藏身。但是有很多次,在调试的时候,游标会上下跳动,同一个参数在不同的栈帧也会有不一样的值。这让我很困扰。
试试看把“-g”换成“-g3”是否有起色。当然,这次不能直接改 Makefile 了。在 Makefile.am 上动手。在 Makefile.am 里加入
AM_CFLAGS = -Wall -g3
不过在生成的 Makefile 里,我发现 gcc 会同时 honour $(AM_CFLAGS) 和 $(CFLAGS) 。CFLAGS 缺省值用的是“-g -O2”,而我设置的“-Wall -g3”。就不知道最后 gcc 一并服下后,它的“-g”的参数有没有“3”了。而且上层 Makefile.am 里定义的 AM_CFLAGS 的设置不会影响到 SUBDIRS 里定义的 Makefile 的 CFLAGS 设置,不知道是不是我的问题。后来索性在所有的 Makefile.am 里把 CFLAGS 和 AM_CFLAGS 设置成一样的了。不过在 google 大神的帮助下,发现好些项目在 configure.ac 里面设置了 CFLAGS:
CFLAGS=\"-g -O2 -Wall\"
这可能是更好的办法。另外,现在把 configure.ac 最后的 echo 改成用 AC_MSG_RESULT 了,彰显专业本色。嘻嘻。
