| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 3110 人关注过本帖
标题:曾经遇到的最郁闷的一次程序调试
只看楼主 加入收藏
VxWorks
Rank: 3Rank: 3
来 自:WindRiver
等 级:论坛游民
威 望:6
帖 子:859
专家分:68
注 册:2007-11-24
收藏
得分:0 
软件集成开发环境(代码编辑、浏览、编译、调试)
Emacs                          http://www.
Source-Navigator 5.2b2         http://
Anjuta                         http://anjuta.(可用yum安装)
代码索引工具
Cscope                         http://cscope.
KScope                         http://www.
GLOBAL                         http://www.(可用yum安装)
调试器(GNU gdb的GUI前端)
DDD                            http://www.
Insight 6.4.0                  http://
KDbg                           http://www.
评测器(内存、性能、覆盖等的profiler,类似IBM Purify)
Valgrind                       http://www.,FC5自带3.1.0-2
ggcov(GNU gcov的GUI)           http://ggcov.
kprof(GNU gprof的GUI)          http://kprof.
KCachegrind                    http://kcachegrind.
BoundsChecking               http://www.doc.ic.ac.uk/~phjk/BoundsChecking.html
代码静态检查工具(类似Windows平台的PC-Lint)
Splint                       http://www.(可用yum安装)
flawfinder                   http://www.
代码静态测量工具
--暂缺,Windows上非开源的LineCount(http://liangs.)统计C/C++/Java代码还凑合。
PyMetrics(http://)测量Python代码复杂度。
http://www.罗列了好些C static metric tools。
软件构建系统(build system)
SCons            http://www.(用yum安装的版本太低)
CMake            http://www.
GNU Make        http://www.
交叉工具链
crosstool         http://www.
代码版本控制系统及相关工具
Subversion         http://subversion. (用yum安装)
WorkBench         http://pysvn.(pysvn的附带物)
StatSvn            http://svn.
mpy-svn-stats        http://mpy-svn-stats.berlios.de/
ViewVC            http://viewvc.
测试框架
CppUnit            http://
CUnit            http://cunit.
代码差异工具(比较/制作和应用补丁)
GNU diffutils        http://www.
kdiff3            http://kdiff3.或者http://www.(可用yum安装)
代码在线文档
doxygen            http://www.stack.nl/~dimitri/doxygen/
离线文档
DocBook            http://www.
XMLMind            http://www.
代码格式化
astyle(Artistic Style)    http://astyle.
indent            http://www.
UML建模
ArgoUML            http://argouml.


软件工程事务(BUG等)跟踪(类似IBM ClearQuest)
Trac            http://trac.(基于Pythyon,用yum安装)--感觉和BugFree一样小巧
BugFree            http://www.(基于PHP+MySQL)--中小规模软件适用
BugZilla        http://www.--配置复杂,使用麻烦
自动化持续构建与测试系统(类似IBM BuildForge)
BuildBot        http://buildbot.(基于Python)
Cabie            http://cabie.(基于Perl和MySQL)
系统级别测试框架
DejaGNU            http://www.(基于Expect,因而基于Tcl)
QMTest             http://www.(基于Python)

为了防止世界被破坏,为了守护世界的和平,贯彻爱与真实的邪恶,可爱又迷人的反派角色,VxWorks!
Don't ask me any question.I'm just here to buy soy sauce.
2008-06-15 10:35
warmsnake323
Rank: 1
等 级:新手上路
帖 子:23
专家分:0
注 册:2007-11-28
收藏
得分:0 
#include <stdio.h>
#define MY_PRINT(i) \
  do {\
    printf("%d\n", i);\
} while(0)
int main()
{
    int i=9;
    MY_PRINT(i);
    return 0;
}
在那里打个空格就可以了,为什么?
2008-06-15 12:57
独孤小梦
Rank: 1
等 级:新手上路
威 望:1
帖 子:338
专家分:0
注 册:2008-6-5
收藏
得分:0 
#include <stdio.h>
#define MY_PRINT(i) \    //*呀,这里怎么有个()还有个/啊?*//
do {\                    //*这里怎么也有个/啊?它起什么作用?*//
    printf("%d\n", i);\ //*这里也是,/是起什么作用?*//
} while(0)
int main()
{
    int i=9;
    MY_PRINT(i);
    return 0;
}
2008-06-15 13:05
himpo
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:192
专家分:123
注 册:2008-5-16
收藏
得分:0 
带参数的宏加分行
它相当于
#define MY_PRINT(i) do {printf("%d\n", i);} while(0)
那样写好看,思路清晰。
2008-06-15 13:15
独孤小梦
Rank: 1
等 级:新手上路
威 望:1
帖 子:338
专家分:0
注 册:2008-6-5
收藏
得分:0 
嘿嘿,就是说“/”其实就没什么作用了?
问下,宏加了参数,有什么用?怎么使用啊?谢谢回复!
2008-06-15 13:19
himpo
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:192
专家分:123
注 册:2008-5-16
收藏
得分:0 
晕,书没看透的家伙。。和函数差不多,但又不太一样。。
自己看书,给你个例子
#define ADD(x) (x)+(x)    /* 带参数的宏 ,注意括号,为什么自己看书.*/
int main()
{int a=1,b=2,c;
 c=3*(ADD(a+b));
 printf("%d\n",c);
 return 0;
}
随手写的,不知道有错没。。
2008-06-15 13:26
独孤小梦
Rank: 1
等 级:新手上路
威 望:1
帖 子:338
专家分:0
注 册:2008-6-5
收藏
得分:0 
呀,我看潭浩强的那本书,预处理命令和宏还没看到呢!
不过很谢谢你啊!呵呵!
你的程序是不是可以这样?
#define ADD(x) (x)+(x)     //*这里是不是有点错!如果是X+X的话,下面就是a+a了!*//
int main()
{int a=1,b=2,c;
c=3*(ADD(a));            //*是不是可以这样改?上面是x+x嘛!现在就是1+1了!你下面用a+b……*//
printf("%d\n",c);
return 0;
}
还有哦!
#include <stdio.h>
#define MY_PRINT(i) \         //这里宏有个参数
do {\
    printf("%d\n", i);\
} while(0)
int main()
{
    int i=9;
    MY_PRINT(i);    //调用的是MY_PRINT(9); 这个程序有什么用啊?怎么使用宏以后,什么都没有做,就返回0?
    return 0;
}
2008-06-15 13:37
himpo
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:192
专家分:123
注 册:2008-5-16
收藏
得分:0 
1、这里是别人的帖子。。。
2、我再说下去,宏那一章节你就不用看了,我也累死了
   看完书啥都明白了。
2008-06-15 13:49
独孤小梦
Rank: 1
等 级:新手上路
威 望:1
帖 子:338
专家分:0
注 册:2008-6-5
收藏
得分:0 
我收藏先,看完不懂的话,我在来问啊!LS的谢谢了啊!非常感谢!
2008-06-15 13:58
skykangta
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2008-6-15
收藏
得分:0 
#include <stdio.h>
#define MY_PRINT(i) do{printf("%d\n",i);}while(0)

int main()
{
    int i=9;
    MY_PRINT(i);
    return 0;
}
2008-06-15 14:50
快速回复:曾经遇到的最郁闷的一次程序调试
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.030274 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved