Linux下coredump调试3:补录

Linux下coredump调试3:补录

本篇文章记录在coredump调试过程中记录的其它事项。
一般地,调试的方式多种多样,不可能将其一网打尽。就笔者而言,一般喜欢用print大法,分段注解法,版本回退法,等等。实在无招,则用coredump文件调试了。在笔者“众多”经验中,程序挂掉原因多种多样,像内存泄漏造成无内存可用,文件/socket打开未关闭被耗尽。所以编程的规范还是很关键的,这不单单是说编码命名风格,还有整体编程的设计和细心程度,比如指针的判断,数组范围不要越界,自己申请的内存要记得释放,等等。

Linux下coredump调试2:实例

Linux下coredump调试2:实例

前面文章只是给出简单演示,实际的程序运行中会遇到这样或那样的问题。所以,本文结合笔者实际编程经历,给出一些曾经遇到过的实际例子。
笔者遇到的大多数程序崩溃原因,基本上都是段错误:非法内存使用,越界。这就要在程序编码中注意代码的质量了。比如使用指针前必须先判断其合法性,释放指针后及时将指针置为NULL,使用数组注意不能超出其范围,等等。

Linux下coredump调试1:使用

Linux下coredump调试1:使用

李迟按:
调试是程序员的一项基本能力,经历过大大小小的实战,随着见识的增长,只要用心留意并做总结,相信调试的能力会越来越好。写程序不能没有bug,只是bug容易不容易被发现,bug的危害大不大。笔者使用coredump调试很多年了,也有部分的工作笔记,无奈事多人懒,一直没有好好总结。直到最近帮同学排查bug时,才真正下定决心写几篇文章。本文为开篇,主要描述coredump作用及配置的一些注意事项,并给出简单示例。

遇到一个Linux系统时间突变问题

遇到一个Linux系统时间突变问题

最近遇到一个Linux系统时间无法更改小于某个固定时间的问题。有关部门反馈,一旦将设备的时间设置小于2012年11月3号4点34分,复位设备后,系统时间就会变成2012年11月3号4点后的时间。此问题十分诡异。负责业务的同志无法排查,于是安排我——或许天生注定,我这里,所有和Linux有关,所有“底层问题”,都可以找到我。

Linux内核生成版本号的一些研究

Linux内核生成版本号的一些研究

真正在工作接触内核,其实仅仅是一年前的事情。在使用git管理代码时,发现编译出来的版本会自动带个加号“+”,或者带有“dirty”字样,当时查了些资料解决了。现在隔了那么久,觉得还是有必要写点笔记出来。

Linux平台静态库、动态库的一些笔记

Linux平台静态库、动态库的一些笔记

李迟按:本文约在去年年底在我的csdn博客上发表,重新发表于此,只字未改。那时候很想对库有深一层的认识。并且知道了《程序员的自我修养--链接、装载与库》这本书。这本书如今已经看过一次了,收获不少,但仍需要再次阅读。

关于Linux平台视频采集程序的修改

关于Linux平台视频采集程序的修改

在真正开始编写程序前,我作了大量工作,包括了解Linux支持的摄像头类型、Linux摄像头驱动程序、摄像头采集模型,等等,——当然,还包括去买个摄像头。网上流行的是gspca驱动以及一些老式摄像头的程序,这些摄像头目前市面上比较难找了。而且驱动、应用程序的安装也比较麻烦。此外,网上能搜索到的资料绝大部分均为转载而不注明出处,因此许多资料十分相似。而且许多资料都是介绍基本的流程,每当涉及到关键算法及代码时,均一句话带过。因此,只参考网上资料很难写出一个可能使用的程序。