如何快速查找C语言代码中的宏的值

发布时间:2016-12-10 9:37:19 编辑:www.fx114.net 分享查询网我要评论
本篇文章主要介绍了"如何快速查找C语言代码中的宏的值",主要涉及到如何快速查找C语言代码中的宏的值方面的内容,对于如何快速查找C语言代码中的宏的值感兴趣的同学可以参考一下。

http://blog.csdn.net/learnrose/article/details/6223269   很多的系统,代码量超大,在我们阅读其代码的时候,往往macro能决定代码执行的具体分支。利用find grep查找起来会特别慢,而且不一定能找到正确的值。如果系统是可编译的,可以利用编译器的预处理功能很快知道宏的具体值。   方法如下:   在CFLAGS里面添加 -E 选项。   举例说明: 在Android 系统里面,     1. 在Andriod.mk里面添加-E 参数。 LOCAL_CFLAGS += -E  2.重新编译,显示其过程 mm showcommands 3.编译过程会打印出类似下面的结果。 prebuilt/linux-x86/toolchain/arm-eabi-4.4.0/bin/arm-eabi-gcc  -I hardware/ttd/marvell/generic/bmm-lib/lib   -I out/target/product/OMS_TTD/obj/SHARED_LIBRARIES/libbmm_intermediates   -I system/core/include   -I hardware/libhardware/include   -I hardware/libhardware_legacy/include   -I hardware/ril/include   -I dalvik/libnativehelper/include   -I frameworks/base/include   -I frameworks/base/opengl/include   -I external/skia/include   -I out/target/product/OMS_TTD/obj/include   -I bionic/libc/arch-arm/include   -I bionic/libc/include   -I bionic/libstdc++/include   -I bionic/libc/kernel/common   -I bionic/libc/kernel/arch-arm   -I bionic/libm/include   -I bionic/libm/include/arch/arm   -I bionic/libthread_db/include  -c  -fno-exceptions -Wno-multichar -msoft-float -fpic -ffunction-sections -funwind-tables -fstack-protector -fno-short-enums -march=armv5te -mtune=xscale -D__ARM_ARCH_5__ -D__ARM_ARCH_5T__ -D__ARM_ARCH_5E__ -D__ARM_ARCH_5TE__ -include system/core/include/arch/linux-arm/AndroidConfig.h -I system/core/include/arch/linux-arm/ -mthumb-interwork -DANDROID -fmessage-length=0 -W -Wall -Wno-unused -Winit-self -Wpointer-arith -Werror=return-type -Werror=non-virtual-dtor -Werror=address -Werror=sequence-point -DNDEBUG -g -Wstrict-aliasing=2 -finline-functions -fno-inline-functions-called-once -fgcse-after-reload -frerun-cse-after-loop -frename-registers -DNDEBUG -UDEBUG -DLOG_DISABLEDEBUG=1 -mthumb -Os -fomit-frame-pointer -fno-strict-aliasing -finline-limit=64   -E      -MD -o out/target/product/OMS_TTD/obj/SHARED_LIBRARIES/libbmm_intermediates/bmm_lib.o hardware/ttd/marvell/generic/bmm-lib/lib/bmm_lib.c 其中-o 是生成的文件。 打开这个文件,就是我们预编译的结果,可以很清晰地看到各个宏的具体值。

上一篇:安卓学习的好例子... 呵呵呵
下一篇:DisplayMetrics和Display浅析

相关文章

相关评论