gcc +Linux+gdb调试

用户的默认主目录:/home/username。
useradd username :创建新用户。
passwd username:添加密码。
/etc/passwd :系统能识别的用户清单。
/etc/shadow :超级用户才能读,用于保护加密口令的安全。
/lib :系统所用库。
/user/lib/ :应用程序所用的库
mount -t  :文件类型 设备文件 挂在目录:光驱的装载。
umout :挂载目录。卸载

/usr.doc /usr/share/doc:帮助文档。
info:查看命令的帮助。

/usr下文件:{
include:c语言头文件。
lib:库文件和数据文件。
local :本地安装的软件。
share:共享文件。
}

www:apache文件。
log:日志文件。
spool:邮件。
tmp:临时文件。
mount:所挂载分区。
fdisk -l 【/dev/had】:硬盘分区。
df -h:硬盘分区使用情况。
du -sh:目录占用空间。
uname -a :所用Linux版本号
文件类型:-、d、l、
fsck:修复磁盘,适用于初学者。
!--------------------------------------
网络命令:{
ifconfig,ping,route -n,netstat}

掌握rpm包

终端:
{gcc -o 可执行程序 源程序
参数:-o:指定文件名。
-c:只编译不链接,生成目标文件.o
-S:只编译不汇编,生成汇编代码
-E:只进行预编译,而不进行其他处理。
-g:生成的可执行程序中包含标准调试信息。
-v:打印编译器内部编译各过程的命令行信息和编译器的版本号,。
-I dir:在头文件的搜索路径列表中添加dir目录。
-L dir:在库文件的搜索路径中添加dir目录。
-static:链接静态库。
-library: 链接名为library的库文件。
-w:禁止所有警告内容。
-O,-O2,-O3+:将优化状态打开,(不能和-g联合使用)。
}

1、. gcc -E hello.c -o hello.i
第一步进行的是预处理,在此阶段,gcc把预处理命令扫描处理完毕,输入c语言的源文件,这个阶段处理文件中的#·····的预处理命令,该阶段生成一个中间文件*.i
-----------------------------------------------------------------------------------
2、.汇编阶段:将***.i**文件生成汇编或目标模块*.S
gcc -S hello.i -o hello.s

3、生成 文件名.o,
gcc -c hello.s -o hello.o
hello.o 为机器代码文件

4、链接阶段
生成一个可执行的二进制代码文件
gcc hello.o -o hello
hello 为最终可执行文件。


5.警告信息
gcc -pedantic hello.c  -o hello
6、测量程序执行时间:time 可执行目标程序

另:gdb调试器:基于命令行,可设置断点、单步执行、查看变量、动态改变程序执行环境、分析崩溃程序的core文件
gdb常用命令
file:装入想要调试的可执行文件。
run:执行当前被调试的程序。
kill:终止正在执行的程序。
step:执行一行代码或进入函数内部。
next:执行一行代码不进入函数内部。
break:在代码行设置断点,这将使程序执行到这里被挂起。
print:打印某些····。
display:设置自动显示的表达式或变量,当程序停住或在单步跟踪时,这些变量会自动显示其值。
list:列出产生可执行程序代码的一部分。
quit:退出gdb。
watch:使你能监视一个变量的值二不管他何时被改变。
backtrace:回溯跟踪。
framen:定位到发生错误的代码段。
examine :查看内存地址中的值。
jump:使程序跳转执行。
signal:产生信号量。
return :强制函数返回。
call:强制调用函数。
make:使用户不退出gdb就可以重新产生可执行文件。实例调试如下:
gcc -ggdb3 文件名.c -o 文件名
./文件名:执行文件

发布了18 篇原创文章 · 获赞 3 · 访问量 1057

猜你喜欢

转载自blog.csdn.net/qq_45393395/article/details/102663359