首页IT科技怎么用gdb调试段错误(用gdb调试程序笔记: 以段错误(Segmental fault)为例_哎呀呀!_百度空间)

怎么用gdb调试段错误(用gdb调试程序笔记: 以段错误(Segmental fault)为例_哎呀呀!_百度空间)

时间2025-08-04 05:44:03分类IT科技浏览5412
导读:2011-06-05 12:52...

2011-06-05 12:52

这个笔记是我以前发表在电子科大的BBS上的              ,大家反应较好                      ,特贴到这里和童鞋分享!

笔记内容:

1.背景介绍

2.程序中常见的bug分类

3.程序调试器(如gdb)有什么用

4.段错误(Segmental fault)介绍

5.gdb调试入门

一              、背景介绍

这个笔记主要介绍开源的程序调试器(gdb)的入门知识        ,目的是使unix/linux环境的编程新手能够快速学会使用gdb调试程序的方法       ,同时也是对我使用gdb的一个经验总结               。

本文假设你能使用简单的unix/linux命令并能用gcc(GNU C Compiler                      , GNU C 语言编译器)编译程序               ,当然有编程经验更好                      。:)

为帮助你理解和操作       ,我将使用我遇到过的真实事例来演示使用gdb调试有缺陷(bug)的程序过程                      ,你看过这篇笔记后能自己动手练一下最好       。

二                      、程序中常见的缺陷(bug)分类

程序(编译型程序               ,perl        、python,php等脚本程序除外)中常见的bug通常分为两类: 语法错误和逻辑错误                      ,或者编译时错误和运行是错误               。

语 法错误(编译时错误)是我们在编写源代码时没有按照相关的语言规范(如ANSI C标准)导致编译时出错                       ,编译失败                      。这种错误的检查和调试一般是比较简单和直接的:因为编译器(如gcc)通常会明确告诉你错误的原因和大致的范围(注意 不一定是准确的错误行)       。例如下面的一个简单demo.c程序的第8行缺失了一个分号,gcc指示第10行前少了一个分号        。这就是一个典型的语法错误                      。

geekard@geekard:~/test$ cat -n demo.c

1#include

2

3int

4main(){

5

6int n;

7

8printf("the n is:%c", n)

9

10return 0;

11}

geekard@geekard:~/test$ gcc demo.c -o demo

demo.c: In function ‘main’:demo.c:10:

error: expected ‘;’ before ‘return’
声明:本站所有文章              ,如无特殊说明或标注                       ,均为本站原创发布              。任何个人或组织        ,在未征得本站同意时              ,禁止复制       、盗用                      、采集               、发布本站内容到任何网站       、书籍等各类媒体平台        。如若本站内容侵犯了原著者的合法权益                      ,可联系我们进行处理                       。

创心域SEO版权声明:以上内容作者已申请原创保护,未经允许不得转载,侵权必究!授权事宜、对本内容有异议或投诉,敬请联系网站管理员,我们将尽快回复您,谢谢合作!

展开全文READ MORE
如何优化排名(掌握关键技巧让你的网站登上榜首) uniapp自定义导航栏闪屏问题(uniapp小程序自定义顶部导航栏,输入框软键盘把顶部顶上去的解决方法)