Linux GCC/G++编译器与调试器

25 篇文章 0 订阅

安装:

yum install gcc gcc-c++

 

Linux GCC/G++编译器与调试器

GCC/G++编译选项

在 Linux 系统中,用户创建进程时会先在系统的进程表中为进程创建独一无二的编码,即 PID。 PID 是一个正整数,其取值范围是 2~32768。进程创建时会顺序挑选下一个未使用的编号数字作为自己的 PID。如果它们已经经过一圈的循环,新的编码将重新从 2 开始。数字 1 一般是为特殊进程 init 保留的,它负责管理其他的进程。例如,执行下列命令会显示系统内的所有进程。

ps -e

ANSI C 标准

C 语言设计的程序是由函数所组成的,在函数被详细定义前,可先在头文件定义函数原型,这样函数间可更容易地相互调用。头文件<unistd.h>包含了许多 Linux 系统服务的函数原型,例如 read()、 write()和 getpid()函数,它们的原型如下:

函数原型由函数的返回类型、函数名和参数 3 部分组成。

类属指针
类属指针是一种能够同时支持所有数据类型的指针。函数原型中常用的“ void *”类型即是类属指针。 ANSI C 标准常用类属指针代替函数参数中的其他指针,使同一个函数能支持多种数据类型。

原始系统数据类型
在函数原型中以“ _t”结尾的类型被称为原始系统数据类型。原始系统数据类型定义在头文件 sys/types.h 中,以 typedef 操作符加以定义。


标准c程序结构

#include <stdio.h>      注意和C++的区别

int main(){

     return 0;

}

 

 


GDB 调试器

GDB 常用调试命令

gcc -g -o helloworld helloworld.c //编译并连接程序,使之包含可被调试信息
gdb helloworld //使用 GDB 调试器打开 helloworld 可执行文件

常用GDB命令及解释

可在为变量赋值前加入断点,并运行程序

break 5

run

检查数据:

在程序中加入断点后,程序运行时会在断点处暂时停止,以便检查程序中的数据。通过检查数据可判断出许多种错误的所在。 helloworld 程序在第 5 行加入了断点,这时第 5行的代码并未执行。检查变量 c 的值可输入如下命令:
(gdb) print c //显示变量 c 的值
命令执行后可见输出结果为:
$1 = 0x4e54eff4 "|\355TNv~;N"
该结果表明变量 c 所指向的地址为 0x4e54eff4。继续执行程序,使用单步执行方式,再检查变量 c 的值,输入下列命令:
(gdb) next //单步执行程序
(gdb) print c //显示变量 c 的值
执行后可见输出结果为:
$2 = 0x80484c4 "hello world!"
表明变量 c 指向了地址 0x80484c4,该地址的内容转换为 ASCII 码的结果为 helloworld!。如果还要继续运行程序,输入 continue 命令将运行到下一个断点或者程序结束。

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值