
gcc
石头翔子
Fighting
展开
-
单元测试与main前运行函数__attribute__((constructor))关键字
为了便于单元测试,做了一个utl_cmd的小模块,它会负责插入命令,解析命令并执行。利用这些命令,可以方便的在程序运行过程中对模块进行测试。而这里有个比较麻烦的问题是,必须要调用utl_cmd_insert先把测试命令插入到命令序列中。否则utl_cmd模块,也不知道都有哪些命令可以支持。 为解决此问题,忽然想起来之前看DirectFB代码时,遇到过main函数运行前自动运行的原创 2012-08-16 15:46:07 · 1590 阅读 · 0 评论 -
面试备用
1.gets()函数问:请找出下面代码里的问题:#include int main(void) { char buff[10]; memset(buff,0,sizeof(buff)); gets(buff); printf("\n The buffer entered is [%s]\n",buff); return 0; } 答:上面代原创 2012-09-10 08:49:13 · 634 阅读 · 0 评论 -
gcc去除未用到的函数
嵌入式系统中,对程序尺寸要求高时,可以使用本方法代码中,经常会有一种情况,库中并非所有函数都会用到。然而,无用的函数也最终被编译进可执行文件中了。为避免这一情况,可以在编译时,添加选项:-ffunction-sections -fdata-sections 。该选项让每个函数和数据独自一段在链接时,添加选项:-Wl,-gc-sections。该选项将去除无用的段。需要注意的原创 2014-01-08 09:03:37 · 7065 阅读 · 0 评论 -
嵌入式系统中的gdb自动调试技巧
本文介绍了一种方法,让gdb随嵌入式设备开机自动运行。出问题后再连接上设备查看原因在嵌入式系统中,有时会遇到较低概率的死机情况。这时,因为不太容易复现,会导致调试中的一些麻烦。在这种情况下,就可以将gdb做到嵌入式文件系统中,随系统的启动自动运行。从而可以一次性升级多台机器(比如10台),同时测试。只要出问题时,利用gdb查看结果即可下面介绍实施方案:1,原创 2014-01-17 17:14:48 · 1254 阅读 · 0 评论