当前位置: 首页 > GNU/Linux程序
  • Linux下coredump调试3:补录

    Linux下coredump调试3:补录

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

    作者:李迟 | 发布:2016-05-31 22:49 | 分类:GNU/Linux程序 | 阅读:324 次 | 标签:, | 评论:无评论
  • Linux下coredump调试2:实例

    Linux下coredump调试2:实例

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

    作者:李迟 | 发布:2016-05-31 22:00 | 分类:GNU/Linux程序 | 阅读:251 次 | 标签:, | 评论:无评论
  • Linux下coredump调试1:使用

    Linux下coredump调试1:使用

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

    作者:李迟 | 发布:2016-05-31 21:30 | 分类:GNU/Linux程序 | 阅读:448 次 | 标签:, | 评论:无评论
  • GCC编译警告选项的学习

    GCC编译警告选项的学习

    GCC有很多的编译选项,警告选项;指定头文件、库路径;优化选项。本文针整理一下GCC的警告选项,主要依据http://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html文档,并加上自己的一点小小经验。

    作者:李迟 | 发布:2015-12-11 21:40 | 分类:GNU/Linux程序 | 阅读:1,455 次 | 标签:, | 评论:无评论
  • 继续收集gcc一些编译警告

    继续收集gcc一些编译警告

    大约半年前,写了篇关于gcc编译警告的文章,因为忍受不了当时做的项目的刷屏式的编译警告。没想到,现在又要进行此事。因为当前的代码分支实在太多,而且又各自为政,没法通用——与当初重构的初衷已背离,当然,这是架构师要做的事,即使公司现在正在推行“匠心精神”,我还是没权力和能力想去推架构。所以,注定是一个修正几年前代码遗留warning的小弟。在修正过程中,真正认为到代码编写的重要性。这份庞大的代码我只贡献不到2%吧,但还是好好总结一下,以免自己日后再犯。

    作者:李迟 | 发布:2015-10-20 22:36 | 分类:GNU/Linux程序 | 阅读:1,122 次 | 标签: | 评论:无评论
  • 让Linux使用malloc申请更多的内存

    让Linux使用malloc申请更多的内存

    项目遇到一个问题,程序跑着跑着就会挂掉,从多方信息分析来看,发现在设备的linux系统中,一个进程申请的内存最大只能达到1GB,而设备所用的物理内存是2GB的。我们的程序有多个进程,但主进程只有一个,里面包括几十个线程,有的线程使用了如opencv的模块,占用内存有几百兆。而之前在文章提到的H.264转AVI,也必须将转码后的AVI格式内容放在内存,由于某些原因,系统中的内存使用峰值会达到1GB。但由于我正在搞其它的bug,这个实际是同事研究出来的,我也只是再次多方面地验证了一下。还是在这里记录一下吧。

    作者:李迟 | 发布:2015-08-04 23:36 | 分类:GNU/Linux程序, 我的研究 | 阅读:1,995 次 | 标签: | 评论:无评论
  • 遇到一个因socket未关闭引发的文件句柄用完问题

    遇到一个因socket未关闭引发的文件句柄用完问题

    “爱提踢斯”项目最近遇到一个问题,当FTP服务器磁盘没有空间时,设备会不断复位——这是测试人员反馈的。我们拿到log后,看到一个通信所用的文件打开失败。不断打印Too many open file,然后超时设备复位。同时我们看到数据库文件打开失败,无法写入数据。一个现象,看到好几处问题。还是从最初的表现来入手。虽然把bug指派给别人,但从时间、进度上考虑,周末还是去加班。而最后,解决了问题。根据老夫目测,是FTP的socket未关闭引起的。

    作者:李迟 | 发布:2015-08-01 14:33 | 分类:GNU/Linux程序, 我的研究 | 阅读:2,334 次 | 标签:, , | 评论:无评论