linux编程调试基础.ppt

linux编程调试基础.ppt

ID:51588275

大小:828.00 KB

页数:52页

时间:2020-03-24

linux编程调试基础.ppt_第1页
linux编程调试基础.ppt_第2页
linux编程调试基础.ppt_第3页
linux编程调试基础.ppt_第4页
linux编程调试基础.ppt_第5页
资源描述:

《linux编程调试基础.ppt》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、linux编程调试基础定制人员:胡小鹏审核人员:实施日期:培训目的通过本节课程的学习,您将能够了解:Linux环境C/C++编程Gdb调试工具适用对象:初级linux开发人员。有多少程序员会换灯泡?培训大纲Linux平台编写、编译C/C++程序并执行Linux平台编写、编译和调用动态库初学gdb用gdb调试多线程程序用gdb查程序崩溃和线程死锁的bugLinux平台编写、编译C/C++程序并执行巧匠因为他的工具而闻名agoodworkmanisknownbyhistoolsHelloworld!使用vi工具,编写源码。#vihelloworld.c

2、#includemain(){printf("helloworld.");}编译HelloWorld源码#gcchelloworld.c–ohelloworld.out查看gcc版本#gcc--version查看gcc版本帮助#gcc–help/*简单帮助*/#mangcc/*详细帮助*/程序员在linux平台请记住这个命令man。不知道命令man是做什么用的?没关系!#manman如果忘记函数printf的格式和使用方法,怎么办?manprintfWindows平台有msdnLinux平台有manman真汉子,纯爷们Linu

3、x平台编程真不能没有man.学习没有捷径,但一定有方法修改程序,再用gcc编译,请问可以编译过吗?#vihelloworld.c/*#include*/main(){printf("helloworld.");}不知道或忘了stdio.h是干什么东东的?没关系man他一下#manstdio.h没编译通过是因为没有声明printf函数没声明是没包含系统头文件。stdio.h放在哪个目录中#whereisstdio.hgcc是如何知道printf实现在哪里的?他是如何找到的?#gcc-print-search-dirs如果gcc在

4、搜索路径中找不到,就需要用户指定了Linux平台编写、编译和调用动态库helloworld.out有使用动态库吗?如果有,使用的是哪个动态库文件?动态库在哪里?LD_DEBUG=libs./helloworld.outLD_DEBUG是glibc中的loader为了方便调试而设置的一个环境变量。通过设置这个环境变量,可以方便的看到loader的加载过程。那如何指定装载库的位置呢。常用的办法如下:1)ldconfig2)LD_LIBRARY_PATH不推荐修改全局环境变量,可能会影响其它应用程序。它也会影响gcc编译时查找库的路径。实验创建动态库#v

5、ilibaddint.cintaddint(inta,intb){return(a+b);}编译#gcc-shared-fPIClibaddint.c-olibaddint.so创建测试程序#vitestaddint.c#include"stdio.h"intaddint(inta,intb);main(){printf("addint=%d",addint(1,2));}编译测试程序#gcc-L”库所在目录”-laddinttestaddint.c-otestaddint.out测试初学gdbTroubleshooter找出问题并加以处理的人

6、如何学习gdb?如何开始学习gdb?man他一下man介绍的重点先学So我们先学习“themostfrequentlyneededGDBcommands”设置断点break[file:]functionSetabreakpointatfunction(infile).执行程序run[arglist]Startyourprogram(witharglist,ifspecified).查看程序调用堆栈btBacktrace:displaytheprogramstack.查看表达式的值printexprDisplaythevalueofanexpress

7、ion断续运行程序cContinuerunningyourprogram(afterstopping,e.g.atabreakpoint).执行下一行程序nextExecutenextprogramline(afterstopping);stepoveranyfunctioncallsintheline.显示程序代码list[file:]functiontypethetextoftheprograminthevicinityofwhereitispresentlystopped.跟进执行下一个程序行stepExecutenextprogramlin

8、e(afterstopping);stepintoanyfunctioncallsintheline.在线帮助help[n

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。