博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
用gdb调试程序笔记: 以段错误(Segmental fault)为例_哎呀呀!_百度空间
阅读量:6493 次
发布时间:2019-06-24

本文共 938 字,大约阅读时间需要 3 分钟。

用gdb调试程序笔记: 以段错误(Segmental fault)为例
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<stdio.h>
     2    
     3    int
     4    main(){
     5    
     6        int n;
     7    
     8        printf("the n is:%c", n)
     9        
    10        return 0;
    11    }
geekard@geekard:~/test$ gcc demo.c -o demo
demo.c: In function ‘main’:demo.c:10:
error: expected ‘;’ before ‘return’

转载地址:http://rnkyo.baihongyu.com/

你可能感兴趣的文章
curl工具的使用
查看>>
《从零开始学Swift》学习笔记(Day 40)——析构函数
查看>>
最近在MyEclipse中导入jquery出现的错误,与解决办法
查看>>
js实现模态弹窗
查看>>
Debugging information cannot be found or does not match
查看>>
我的友情链接
查看>>
apache负载均衡apache2.4.18+tomcat7(windows版)
查看>>
我的友情链接
查看>>
跨平台开发时代的 (再次) 到来?
查看>>
Linux Kernel Panic报错解决思路
查看>>
mysql大数据量且多存储引擎场景下的完整+增量自动异地备份的可靠方案
查看>>
Java程序性能分析工具Java VisualVM(Visual GC)—程序员必备利器
查看>>
关于用户的操作:添加用户,删除用户,更改用户属性
查看>>
定制rpm包及搭建yum仓库
查看>>
zabbix 报警小案例
查看>>
CentOS 6.5下利用Rsyslog+LogAnalyzer+MySQL部署日志服务器
查看>>
shell ping 网段 多进程(很简单,喜欢就拿去用)
查看>>
枚举类、单实例
查看>>
我的友情链接
查看>>
C/C++项目中的代码复用和管理
查看>>