1 / 31
文档名称:

gdb进阶之路_new.ppt

格式:ppt   大小:328KB   页数:31页
下载后只包含 1 个 PPT 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

gdb进阶之路_new.ppt

上传人:rovend 2016/8/31 文件大小:328 KB

下载得到文件列表

gdb进阶之路_new.ppt

相关文档

文档介绍

文档介绍:GDB 进阶之路 Consumer 公共部件开发部潘剑目录?基础篇?进阶篇?高级篇基础篇: GDB 之必备?可执行程序生成过程基础篇: GDB 之必备? UNIX 下用到的一些库类型使用方式优点缺点静态链接库(* .a)在程序链接时,把第三方的库文件链接进可执行文件。不依赖于具体执行环境。编译速度慢,可执行文件占用空间大, 运行时耗内存。动态链接库(* .so) 程序链接时,只把依赖的动态链接库的库名放入可执行文件中。编译速度快,编译后的执行文件占用空间小,省内存。依赖于具体执行环境是否有程序使用的第三方库。基础篇: GDB 之必备? GDB 常用命令命令描述 list (l) 列出产生执行文件的源代码的一部分 run (r) 执行当前被调试的程序 continue (c) 从断点挂起处继续执行 next (n) 执行一行源代码但不进入函数内部 step (s) 执行一行源代码而且进入函数内部 print (p) 打印变量值 quit (q) 终止 gdb watch (w) 使你能监视一个变量的值而不管它何时被改变 break (b) 在代码里设置断点, 这将使程序执行到这里时被挂起。基础篇: GDB 调试举例#gcc -g -o ?编译时-g 打开调试选项; #gdb ?注意 gdb 后面跟的是可执行程序; GNU gdb Copyright (C) 2006 Free Software Foundation, Inc. GDB is free software, covered by the GNU General Public License, and you are e to change it and/or distribute copies of it under certain conditions. Type "show copying" to see the conditions. There is absolutely no warranty for GDB. Type "show warranty" for details. This GDB was configured as "x86_64-suse-linux". (gdb)l ?l是 list 的缩写,是查看源程序内容的命令; 1 #include<> 2 #include<> 3 int main(int argc,char * argv[]) 4 { 5 unsigned short s; (gdb)<enter> ?直接回车时重复执行上次的命令; 基础篇: GDB 调试举例(gdb)b 15 ?“ b+ 数字”是在某一行设置一个断点,可以同时设置多个断点; Breakpoint 1 at 0x80483c4: file , line 15. (gdb)r 5 hello ?运行程序,在设置的断点处停止。注意程序的运行规则,如加参数等; Starting program: /root/test/day7/ 5 hello Breakpoint 1, main (argc=3, argv=0xbfffdea4) at :15 ?停止在断点处; 15 i=atoi(argv[1]); (gdb)p i ?查看一下此时变量 i的值; $1 = -1073747112 ?由于 i此时还未有值,出现一个随机的值; (gdb)n ?单步执行程序后半部分; 16 s=i; ?显示执行的是哪一行; (gdb)p i ?查看执行上一步语句之后变量 i的值; $2 = 5 (gdb)info break ?查看整个程序断点信息,如断点的个数及其位置; Num Type Disp Enb Address What 1 breakpoint keep y 0x080483c4 in main at :15 breakpoint already hit 1