免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 720 | 回复: 0
打印 上一主题 下一主题

另外的 C 编程工具 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2008-03-30 23:52 |只看该作者 |倒序浏览

     Slackware Linux 的发行版中还包括一些我们尚未提到的 C 开发工具. 本节
将介绍这些工具和它们的典型用法.
xxgdb
     xxgdb 是 gdb 的一个基于 X Window 系统的图形界面.   xxgdb 包括了命令行
版的 gdb 上的所有特性.   xxgdb 使你能通过按按钮来执行常用的命令. 设置了断
点的地方也用图形来显示.
   
     你能在一个 Xterm 窗口里键入下面的命令来运行它:
xxgdb
     你能用 gdb 里任何有效的命令行选项来初始化 xxgdb . 此外 xxgdb 也有一
些特有的命令行选项, 表 27.2 列出了这些选项.
   
表 27.2.   xxgdb 命令行选项.
   
   
选   项 描   述
db_name 指定所用调试器的名字, 缺省是 gdb.
db_prompt 指定调试器提示符, 缺省为 gdb.
gdbinit 指定初始化 gdb 的命令文件的文件名, 缺省为 .gdbinit.
nx 告诉 xxgdb 不执行 .gdbinit 文件.
bigicon 使用大图标.  
   
      
calls
      你可以在 sunsite.unc.edu FTP 站点用下面的路径:
/pub/Linux/devel/lang/c/calls.tar.Z
   
     来取得 calls , 一些旧版本的 Linux CD-ROM 发行版里也附带有. 因为它是
一个有用的工具, 我们在这里也介绍一下. 如果你觉得有用的话, 从 BBS, FTP,
或另一张CD-ROM 上弄一个拷贝.   calls 调用 GCC 的预处理器来处理给出的源程
序文件, 然后输出这些文件的里的函数调用树图.  
   
注意: 在你的系统上安装 calls , 以超级用户身份登录后执行下面的步骤: 1. 解
压和 untar 文件. 2. cd 进入 calls untar 后建立的子目录. 3. 把名叫
calls 的文件移动到 /usr/bin 目录. 4. 把名叫 calls.1 的文件移动到目录
/usr/man/man1 . 5. 删除 /tmp/calls 目录. 这些步骤将把 calls 程序和它的指
南页安装载你的系统上.  
     当 calls 打印出调用跟踪结果时, 它在函数后面用中括号给出了函数所在文
件的文件名:
main [test.c]
     如果函数并不是向 calls 给出的文件里的,   calls 不知道所调用的函数来自
哪里, 则只显示函数的名字:
printf
     calls 不对递归和静态函数输出. 递归函数显示成下面的样子:
fact >>
     静态函数象这样显示:
total [static in calculate.c]
     作为一个例子, 假设用 calls 处理下面的程序:
   
#include  
   
   
   
main ()
   
{
   
char my_string[] = "hello there";
   
my_print (my_string);
   
my_print2(my_string);
   
}
   
   
   
my_print (char *string)
   
{
   
printf ("The string is %s\n", string);
   
}
   
   
   
my_print2 (char *string)
   
{
   
   char *string2;
   
   int size, size2, i;
   
   
   
   size = strlen (string);
   
   size2 = size -1;
   
   string2 = (char *) malloc (size + 1);
   
   for (i = 0; i  
   
   
   
main ()
   
{
   
   char my_string[] = "hello there";
   
   my_print (my_string);
   
   my_print2(my_string);
   
}
   
   
   
my_print (char *string)
   
{
   
   printf ("The string is %s\n", *string);
   
}
   
   
   
my_print2 (char *string)
   
{
   
   char *string2;
   
   int size, size2, i;
   
   
   
   size = strlen (string);
   
   size2 = size -1;
   
   string2 = (char *) malloc (size + 1);
   
   for (i = 0; i  
   
   
   
main () {
   
       char my_string[] = "hello there";
   
   my_print (my_string);
   
      my_print2(my_string); }
   
   
   
my_print (char *string)
   
{
   
   printf     ("The string is %s\n", *string);
   
}
   
   
   
my_print2            (char *string) {
   
     char *string2;
   
       int size, size2, i;
   
   
   
       size = strlen (string);
   
       size2 = size -1;
   
       string2 = (char *) malloc (size + 1);
   
   for (i = 0; i  
   
   
   
main ()
   
{
   
   char my_string[] = "hello there";
   
   my_print (my_string);
   
   my_print2 (my_string);
   
}
   
   
   
my_print (char *string)
   
{
   
   printf ("The string is %s\n", *string);
   
}
   
   
   
my_print2 (char *string)
   
{
   
   char *string2;
   
   int size, size2, i;
   
   
   
   size = strlen (string);
   
   size2 = size -1;
   
   string2 = (char *) malloc (size + 1);
   
   for (i = 0; i  
     参数 program_name 是产生 gmon.out 文件的程序的名字.  
技巧: gprof 产生的剖析数据很大, 如果你想检查这些数据的话最好把输出重定向
到一个文件里.
f2c 和 p2c
     f2c 和 p2c 是两个源代码转换程序. f2c 把 FORTRAN 代码转换为 C 代码,
p2c 把 Pascal 代码转换为 C 代码. 当你安装 GCC 时这两个程序都会被安装上去
.
     如果你有一些用 FORTRAN 或 Pascal 写的代码要用 C 重写的话, f2c 和 p2c
对你非常有用. 这两个程序产生的 C 代码一般不用修改就直接能被 GCC 编译.     
   
     如果要转换的 FORTRAN 或 Pascal 程序比较小的话可以直接使用 f2c 或 p2c
不用加任何选项. 如果要转换的程序比较庞大, 包含很多文件的话你可能要用到
一些命令行选项.
   
     在一个 FORTRAN 程序上使用 f2c , 输入下面的命令:
   
f2c my_fortranprog.f  
   
注意: f2c 要求被转换的程序的扩展名为 .f 或 a .F .  
   
     要把一个Pascal 程序装换为 C 程序, 输入下面的命令:
p2c my_pascalprogram.pas
     这两个程序产生的 C 源代码的文件名都和原来的文件名相同, 但扩展名由 .f
或 .pas 变为 .c.      

本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u2/63379/showart_512240.html
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP