- 博客(14)
- 收藏
- 关注
原创 善用GDB 调试一些函数栈被毁坏的问题
最近差一些问题,这些问题的现象一开始难以解释,函数的参数地址在函数内部被传递给另外的函数,然后发现地址发生了改变,这样的情况称之为函数的栈被毁坏,导致无法重入。然后被调用的函数里面,访问了非法的地址导致了segment fault,产生core dump文件。问题比较棘手查了一些文件,准备从gdb的栈保护设置开始着手。1) 编译的时候添加编译选项-fstack-pr
2013-11-26 16:30:33 21260
原创 关于一些core dump的问题,makefile以及gdb的使用问题
<br />相信在linux下写程序可以认为是一种享受,但是经验的积累是如此的重要,现在工作的时候很少有时间去积累自己的知识,这正是我从学校走出来之后得到的切身体会。最近一段时间仍然再忙关于ipv6的开发任务,马上就要面临又一次大的integration test,做好自己的代码测试看来是尤为重要,特别是在别人的代码没有完成的情况下,就必须想尽一切办法把自己的代码完善,然后去模拟输出,输入的来测试好自己的代码,这才是真正意义上的Team Work。<br /> <br />在linux上编程有时也是很大的乐
2010-10-10 23:46:00 3163
原创 Linux 网络程序编程初步 Socket
<br />最近在公司做关于linux的ipv6的项目,压力很大,由于我对linux的不熟悉,加上以前对于网络通信,协议这些东西都不了解,做起来很费劲,代码写完了,Debug太难了。完全没有Windows上的成就感。公司的牛人说这才是价值所在,渐渐我发现我喜欢上linux上搞开发的事情。随意而且自由,我不是就是要追求的技术的自由进阶。<br /> <br />总结真是必要的,我发现我记了很多东西,最后都忘了。<br /> <br /> <br />首先我写了一个简单的socket程序,<br /> <br
2010-09-29 15:46:00 635
原创 如何在linux下面配置Vim+c.vim+Ctags+taglist
最近由于公司编程的需要,我发现键盘流的很多好处,因为由于没有过于繁琐的GUI 的限制,速度也就可以提升,更何况在linux下工作,把自己打造成一个键盘流还是有很多好处的。1、 准备工作,首先可以查看一下在linux机器上的vim的版本,建议大家用新的Vim 7.2版本,据说这个版本还是比较稳定的。如果没有安装vim7.2可以到vim 的官方网站上下载一个版本。http://www.vim.org/ 这个网站很实用,所以的和Vim相关的plugin都可以通过这个网站搜索到。这篇文章没有专门介绍如何在linux
2010-09-12 22:45:00 3758
原创 Linux 设备驱动程序进阶 (1)
<br />拖了这么久才开始设备驱动程序进阶的第二篇文章,有点汗颜,最近忙于毕业和工作的事情,使得自己无法专心于技术的进阶,现在学校的事情总算是忙完了,所以文章的写作也要开始了。 <br /> <br />这篇文章主要是结合Scull设备的代码谈谈如何构建一个简单的字符设备。然后编写一些测试代码讲讲如何测试Scull设备。 <br /> <br />我们设计字符设备最基本的操作就是打开一个字符设备(open),和向这个字符设备读取数据(read),以及向这个字符设备写数据(write)。所以要设计一个数据结
2010-07-06 06:58:00 476
原创 Linux 设备驱动程序进阶(0)
很久没有写技术博文了,从这里开始我的研究生生涯,转眼就要在职场上养家糊口,生活真的不容易,幸好还有技术相伴为伍。 由于工作的关系,终于接触到linux网络和kernel的编程,总体来说总是一个好的契机。让我能够深入操作系统内核。做过一段时间的用户程序的开发,总是在Windows平台上,终于有机会在linux上做点东西,还是很兴奋的。 首先是一个Hello World的内核程序,然后
2010-03-18 09:16:00 587
原创 调试《深入浅出MFC》中的例程的心得——从Console到Windows的转换
没有接触MFC以前我总是再考虑Console和Windows程序到底区别在那里,只不过是前者是个16位的程序,后者是个32位的程序,同时具备图形设备的功能,作出图形化的界面,可是读了侯杰的书后,感觉其实二者是相通的,同时借助与强大的vcIDE这里完全可以从一个Console跳转到Windows程序。《深入浅出MFC》第六章中 MFC程序的生死因果里有一个小的hello例程,别看他及其的不起眼,
2007-10-12 22:09:00 1691
转载 读研为了什么,为将来指明方向的一篇文章
就我自己的理解,谈谈我对读研和软件学院的看法,不妥之处一笑了之即可。为避免吵架,郑重声明,本人不是高手,只是有感而发的一点个人陋见,欢迎指正,事先感谢。 如果你有实际开发工作经验,感觉自己的水平和实力进入了一个高原期,迫切需要从理论上提高,那么计算机学院是唯一选择。因为计算机学院才能让你在理论上更上一层楼。软件学院从教学计划上就没有把你往这方面带。当然能不能更上一层楼最终还是完全取决于你自己
2007-10-10 13:49:00 1605 1
原创 windows 核心编程 线程的优先级
每个线程都会被赋予一个从0(最低)到31(最高)的优先级号码.当系统确定将哪个线程分配给CPU的时候,它首先观察优先级为31的线程,并以循环的方式对它们进行系统调用.如果优先级为31的线程可以调度,那么就赋予该线程一个CPU时间片.在该线程的时间片结束的时候,系统要查看是否还有另一个优先级为31的线程可以运行,如果有,它将允许该线程被赋予CPU时间片.只有优先级为31的线程是可以调度的,系统就
2007-09-20 14:48:00 5675
原创 windows 核心编程 线程
每个线程都有自己的一组CPU寄存器,称为线程的上下文。线程的这组CPU寄存器保存在一个CONTEXT结构中。CONTEXT结构本身则包含在线程的内核对象中。指令指针和堆栈指针寄存器是线程的上下文中两个最重要的寄存器。记住,线程总是在进程的上下文中运行的。因此这些地址都是用于标识拥有线程的进程地址空间的内存。当线程的内核对象被初始化时,CONTEXT结构的堆栈指针寄存器被设置为线程堆栈上用来放置
2007-09-19 15:11:00 694
原创 windows核心编程 十年磨剑
今天刚开始调试windows核心编程中的例程就感觉十分难懂,原因是自己的c++基本功力实在太弱了 首先在windows编程的过程中大量的使用宏的问题。#pragma 的用法在所有的预处理指令中,#Pragma 指令可能是最复杂的了,它的作用是设定编译器的状态或者是指示编译器完成一些特定的动作。#pragma指令对每个编译器给出了一个方法,在保持与C和C ++语言完全兼容的情况下,给出主
2007-09-15 20:29:00 1006 1
原创 与追求技术的人共勉
哈佛图书馆自习室墙上的训言1.此刻打盹,你将做梦;而此刻学习,你将圆梦。2.我荒废的今日,正是昨日殒身之人祈求的明日。3.觉得为时已晚的时候,恰恰是最早的时候。4.勿将今日之事拖到明日。5.学习时的苦痛是暂时的,未学到的痛苦是终生的。6.学习这件事,不是缺乏时间,而是缺乏努力。7.幸福或许不排名次,但成功必排名次。8.学习并不是人生的全部。但,既然连人生的一部分——学习也无法征服,还能做什么呢?9
2007-09-10 14:54:00 583
原创 Virtual C++ 学习历程:文档/视图的创建
文档、视图、框架的创建是由文档模板创建的。文档模板负责管理文档、视图和框架。当用户创建一个文档/视图结构的应用程序时,在应用程序的Instance方法中会发现如下代码CSingleDocTemplate* pDocTemplate; pDocTemplate = new CSingleDocTemplate( IDR_MAINFRAME, RUNTIME_CLASS(CCMyviewDoc
2007-09-08 16:37:00 836
原创 涅槃重生
开学在即,我想我的研究生的生涯也算正式开始了。人若没有了思考就如同行尸走肉,我一直在回忆我以前的生活,试图把那些曾经破碎的碎片拾起,人在不停的旅行当中,当我们停下来回首的时候我们发觉我们经历了人生的蜕变,异或是升华异或是堕落。也许我们总是一个人在苦旅,也许真会有人陪我们同行。记得05年寒冬的一天我和雷去复旦上辅导班的时候,那天寒风中夹着细雨,我们俩憋屈在两节火车车厢的结合处坐在报纸上,听着列车
2007-09-05 21:05:00 2049 1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人