- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
linux的C编程学习笔记
Linux的C编程和windows下的C编程其实是差不多的,只不过linux下使用的是gcc编译器和调试器。
gdbGcc编译器:
新建目录:mkdir c
控制保存位置::w /root/c/a.c
C文件编译:gcc 源文件.c -o目标文件.out
C++:g++ 源文件.C -o 目标文件.out(C++的主函数要有返回值)。
如果源代码的文件扩展名不是默认的扩展名,gcc 就
无法编译这个程序。可以用-x 选择来设置程序的语言
Eg:cp a.c a.u
gcc -x c a.u
编译过程的控制:
gcc -E -o a.cxx a.c 完成程序的预处理工作而不进行其他的编译工作
gcc -S -o a.s a.c 生成相应的汇编程序文件,而不继续执行后面的
编译
gcc -c -o a.o a.c 只生成目录代码而不生成可执行程序
gcc a.o -o aa.out 链接生成可执行文件
修改文件权限:chmod +x a.out 把aa.out属性改为可执行
执行程序:./aa.out 执行可执行文件aa.out
Gdb 调试程序
调试时,主要使用gdb 进行下面5 个方面的操作:
启动程序、 设置断点、 查看信息、 分步运行、 改变环境
1.gcc -g -o a.debug a.c 在编译程序中加入供 gdb 使用的调试信息
(为了使用gdb 进行程序调试,需要在编译程序中加入供 gdb 使用的调试信息。方法是在编译程序时使用一个-g 参 数。这时,编译程序a.c,生成一个 a.bedug 的可执行程序。 这个可执行程序中加入了供调试
所用的信息)
使用gdb 调试一个程序之前,需要加载这个程序。加载程序的命令是 file 。在(gdb) 提示符后面输入下面的命令加载程序a.debug。
file a.debug
用gcc 命令编译程序加入了-g 命令以后,编译后的a.debug程序中加入了断点。可以 用list命令显示程序的源代码和断点。
list 1
这时,gdb 会显示第一个断点以前的代码。按“Enter”键,显示下一个断点以前的代 码
在程序中加入断点:(如果自动设置的断点不能满足调试要求,可以用 break命令增加 程序的断点。)
break 6 在程序的第6 行增加一个断点
info breakpoint 查看程序中设置的断点
运行程序:
输入“run”命令 run 命令可以使这个程序以调试的模式运行
输入“next ”命令 在下一行停下
输入“continue ”命令 在下一个断点的位置停下
注:step命令与next 命令的作用相似,对程序实现单步运行。不同之处是,在遇上 函数调用时,step 函数可以进行到函数内部。而next 函数只是一步完成函数的调用。
变量的查看:
print 命令可以在程序的运行中查看一个变量的值。(执行到断点后输入print 变量 名)
其他gdb 常用命令:
backtrace :显示程序中的当前位置和表示如何到达当前位置的栈跟踪 (同义词:where)。
breakpoint:在程序中设置一个断点。
cd :改变当前工作目录。
clear :删除刚才停止处的断点。
continue :从断点开始继续执行。
delete:删除一个断点或监测点,也可与其他命令一起使用。
display :程序停止时显示变量和表达式。
down:下移栈帧,使得另一个函数成为当前函数。
frame:选择下一条continue 命令的帧。
info :显示与该程序有关的各种信息。
info break:显示当前断点清单,包括到达断点处的次数等。
info files :显示被调试文件的详细信息。
info func :显示所有的函数名称。
info local :显示当函数中的局部变量信息。
info prog :显示被调试程序的执行状态。
info var:显示所有的全局和静态变量名称。
jump:在源程序中的另一点开始运行。
kill:异常终止在gdb 控制下运行的程序。
list:列出相应于正在执行的程序的源文件内容。
next :执行下一个源程序行,从而执行其整体中的一个函数。
print :显示变量或表达式的值。
pwd :显示当前工作目录。
pype :显示一个数据结构(如一个结构或C++ 类)的内容。
quit :退出gdb 。
reverse-search :在源文件中反向搜索正规表达式。
run :执行该程序。
search
您可能关注的文档
最近下载
- 学堂在线 人工智能原理 章节测试答案.docx VIP
- 三年级上册劳动人民版雏菊盆景迎重阳教学设计.docx VIP
- 39《更换造口袋评分标准》.pdf VIP
- 沪教牛津版英语2024七年级上册全册知识清单(记忆版).pdf
- 07SD101-8:电力电缆井设计与安装.docx VIP
- 《向阳成长》课件 主题6--10 提高情商--珍爱生命 .pptx
- ETF策略兵器谱系列之四:宏观量化方法下的ETF核心-卫星组合构建.docx VIP
- 公输讲解-课件.ppt VIP
- 2025至2030中国汽车检测行业发展趋势分析与未来投资战略咨询研究报告.docx
- DB36T 1730-2022 养老机构失智老年人照护服务规范.docx VIP
文档评论(0)