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

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

时间2025-09-19 16:57:02分类IT科技浏览5946
导读: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
python3.7.0怎么保存(Python使用平面文件进行存储)