
C语言开发+开发工具
MrZhangCC
简单、Web开发工程师
展开
-
解决Stack Overflow
转 解决Stack Overflow<br />前言<br />程序员最痛苦的事莫过于深陷于BUG的泥潭,我也没少在这上面摔跤。这里,我把自己的一些经验教训总结出来,涉及的内容包括死循环、死锁、内存泄漏以及内存访问错误等,如果能对朋友们有所帮助,那就再好不过了。不过,我不打算按照循序渐进的方式来撰写这些文章,而是想到哪写到哪,也许到最后才会形成一个完整的系列。<br />本节将以一个真实例子讲述如何在VC6环境下调试“Stack Overflow”错误。<br />问题浮现<br />我负责维护前任同事的开转载 2011-05-27 10:57:00 · 18412 阅读 · 1 评论 -
Bus Error解析
一,Bus Error究竟是指什么 Bus Error,即总线错误。 引发原因: CPU处于性能方面的考虑,要求对数据进行访问时都必须是地址对齐的。如果发现进行的不是地址对齐的访问,就会发送SIGBUS信号给进程,使进程产生 core dump。RISC包括SPARC(一种微处理器架构)都是这种类型的芯片。x86系列CPU都支持不对齐访问,也提供了开关禁用这个机转载 2013-10-07 10:44:36 · 1719 阅读 · 0 评论 -
解析LINUX core dump
1. 前言: 虽然有的程序可以通过编译, 但在运行时会出现Segment fault(段错误)、Bug Error(总线错误). 通常有很多原因造成这种现象出现(内存泄露,访问数据地址没有对齐).但它不会像编译错误一样会提示到代码中某一行, 而是没有任何信息, 因此使得我们的调试变得困难起来.2. gdb: Linux下编程,通常采用gdb调试工原创 2013-10-07 11:11:46 · 1045 阅读 · 0 评论 -
Linux系统调用和库函数调用的区别
Linux下对文件操作有两种方式:系统调用(system call)和库函数调用(Library functions)。可以参考《Linux程序设计》(英文原版为《Beginning Linux Programming》,作者是Neil Matthew和Richard Stones)第三章: Working with files。系统调用实际上就是指最底层的一个调用,在linux程序设计里面就是底转载 2013-10-09 19:20:17 · 685 阅读 · 0 评论