一江春水向东流

做一个有思想的人,期待与每一位热爱思考的人交流,您的关注是对我最大的支持。

  BlogJava :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理 ::
  44 随笔 :: 139 文章 :: 81 评论 :: 0 Trackbacks
    在linux下进行C程序时,难免会出现这里那里的错误,对于像段错误的调试,对于生手可能比较麻烦,无从下手,我想这是一个C程序员的必经的经历。一旦出现这样的错误是相当棘手的。相信调试过几次样的错误后再次遇到就能很轻松的解决了。
    段错误的产生主要是由于内存操作有误,如访问的数组越界,向空地址赋值,取值等。调试段错误是要借助gdb调试工具。对于那些立即出现的错误很好调试,如果是很时间才出现的错误,就可以通过生成core文件。通过调试core文件定位错误产生的地方,而有些错误并非是一眼能看出来。像在多线程情况下,在没有保护的情况下操作数据库时也会产生段错误。一个不可重入函数在单线程下运行没有问题。可能到多线程情况下就会出现越界的情况。因而意识到多线程下的并发机制。
    对于死循环的调试,也可以借助gdb,当程序出现死循环时,将gdb attach到程序上,如果 是主进程序出现死循环,可以通过设断点方法跟踪,而对于多线程程序可以通过查看哪个线程在运行,基本上能定位错误出现的地方。
posted on 2008-01-30 00:45 allic 阅读(2684) 评论(0)  编辑  收藏 所属分类: C/C++

只有注册用户登录后才能发表评论。


网站导航: