Chinaunix
标题:
另外的 C 编程工具
[打印本页]
作者:
jiuzhuaxiong
时间:
2008-03-30 23:52
标题:
另外的 C 编程工具
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
欢迎光临 Chinaunix (http://bbs.chinaunix.net/)
Powered by Discuz! X3.2