Linux下C语言的调式.doc

  1. 1、本文档共6页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Linux下C语言的调式

Linux下C. 如何提高程序, 更好更快地定位程序中的, 是大家共同面. 可能Windows用:用VC :-) , 它提供了, 单步跟踪等的图形界面, 使. 但Linux用 O:-) : 难道我们Linux程序, 在代printf信息?难道Linux下就没有好的C? 当然不是了. GNU早就C语言编译器(Gcc)和(Gdb). Gdb虽然没有图形化的友好界面, 但是它VC工具相媲美, Linux程序. 下面通, 演示一下Gdb的使用流程: 示例文件 demo.c 的源代: #include stdio.h int sum(int, int); ????int main() { ????int result; ????int a = 1, b = 2; ????result = sum(a, b); ????printf(%d + %d = %d\n, a, b, result); ????return 0; } ????int sum(int a, int b) { ????return a + b; } 编译源文件, 生成可 $ gcc -g -Wall -o demo demo.c 虽然这段程序没有错误, 但Gdb的使用流程. 接下来就启Gdb进行调试. 注意: Gdb, 而不是”.c”源文件, 因此, 需要先通Gcc编译生成可Gdb进行调试. 一定要加上”-g”, 这样编译出的可执行代码中才包含调试信息, 否Gdb无法. 不能使用 -O2, 因, 这样Gdb就无法找到使可, 也就不能. (1) 启Gdb $ gdb demo GNU gdb (GDB) 7.0-debian Copyright (C) 2009 Free Software Foundation, Inc. License GPLv3+: GNU GPL version 3 or later /licenses/gpl.html This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law.? Type show copying and show warranty for details. This GDB was configured as x86_64-linux-gnu. For bug reporting instructions, please see: /software/gdb/bugs/... Reading symbols from /home/wangsheng/tmp/demo/gdb/demo...done. 可以看出, 在Gdb的启动画面中指出了Gdb的版本号, 使用的, 接下来就”(gdb)”开头的命令行界面了. (2) 在Gdb中”l”(list的)可以, 如下所示: (gdb) l 1?????? #include 2 3?????? int sum(int, int); 4 5?????????? int 6?????? main() 7?????? { 8?????????? int result; 9?????????? int a = 1, b = 2; 10??????????result = sum(a, b); (gdb) l 11??????????printf(%d + %d = %d\n, a, b, result); 12??????????return 0; 13??????} 14 15??????????int 16??????sum(int a, int b) 17??????{ 18??????????return a + b; 19??????} (gdb) l Line number 20 out of range; demo.c has 19 lines. 可以看出, Gdb列出的源代码中明确地给出了对应的行号, 这样就可以大大地方便代码的定位. (3) 设置断点 设置断点是调试程序中一个非常重要的手段, 它可以使程序到一定位置. 因此,可以在, 堆, 从而找出代. 在Gdb中, 只需在”b”后加入(这是最常用的方式). 如下所示: (gdb) b 9 Breakpoint 2 at 0x4004f4: file demo.c, line 9. 注意: 9 行(第 8 行, 第 9 行未) (4) 查看断点信息 (gdb) info b Num???? Type?????????? Disp Enb Address????????????What 2?????? breakpoint???? keep

文档评论(0)

xcs88858 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

版权声明书
用户编号:8130065136000003

1亿VIP精品文档

相关文档