当前位置:首页 » 服务器技术
开发技术指南» 文章正文
    引言: 毕业快一年,做了2个项目,都是在别人的代码上作开发,苦不堪言:b
 

 

    摘要:动态禁用/启用window 2000下的ctrl+alt+delete组合键(终结版) 作者: 湖北 李桂生 ligs2001@163.com 鸣谢: 1:jiangsheng 在windows2000中动态禁用/启用ctrl-alt-delete 2:robert kuster three ways to inject your code into another process 图片如下: 使用......
    摘要: 浅谈权限管理的对象模型和实现 beegee(原作) 关键字 权限管理 对象模型 acl 电子政务 浅谈权限管理的对象模型和实现 beegee (2003-7-16) 目录: 1.权限管理问题的分析 1.1权限管理简要分析 1.2电子政务系统的权限管理 1.3商业化应用系统的权限管理 1.4他山之石 2.权限管理子系统设计 2.1权限管理子系统的总体目标 2.2权限管理子系......


VC中的一些调试技巧
毕业快一年,做了2个项目,都是在别人的代码上作开发,苦不堪言:bug 实在是太多。这一年中有大半的时间是在改别人的bug, 也积累了一些经验,与大家分享。我的方法大多数都来自«windows程序调试»(英文名 debugging windows programs)。那本书里讲了很多方法,我只挑对我自己帮助最大的:

这种bug的表现就是不定时,不定地方的崩溃。这种bug我一共碰到2次,每一次都花了很长时间,尤其是第二次,花了大家三天时间。其原因是堆(heap)被破坏掉了。 【相关文章:软件的涅磐(一)—— 软件之死

1.    调试内存破坏。 【扩展阅读:DirectShow中常见的RGB/YU

// get the current state of the flag// and store it in a temporary variableint tmpflag = _crtsetdbgflag( _crtdbg_report_flag );// turn on (or) - keep freed memory blocks in the// heap’s linked list and mark them as freedtmpflag |= __crtdbg_check_always_df;// set the new state for the flag_crtsetdbgflag( tmpflag );int *nn =new int;delete nn;// turn off (and) - prevent _crtcheckmemory from// being called at every allocation request,it will cause much timetmpflag &= ~_crtdbg_check_always_df;// set the new state for the flag_crtsetdbgflag( tmpflag );如果之前堆已经坏掉了,那么程序(debug版)就会在分配内存的地方中断,在这儿是int *nn =new int; 第一次破坏堆的代码是这样:typedef struct aa{    int a;} aa;aa s[n];int i = 0;for(i=0;i<n;i++){    …   …    for(i=0;i<n;i++){…}    …    …    s[i].a = 0;}内外都使用i做循环变量,就这样把堆破坏了。第二次的代码比较隐蔽,我先是使用map文件找到了崩溃的地方,但是一看是一个window的api,就放过了,后来还是再用上面的方法,又定位到那个api:getfileattributesex(szfile, getfileexinfostandard, &attributes);  发现szfile这个参数有问题,是一个不合法的文件名,然后再调用这个api之前作文件名的合法检查,就没事了。呵呵,真是这个api干的,看来我们还是不能让microsoft什么都做。

2. 查找memory leak 【扩展信息:masterEjb 2读书笔记——Tra

我的方法是这样的:在可能出现问题的地方加上对堆的检查,用如下代码:


...   下一页
    摘要:第 4 周高速的导出/导入:oracle data pump 利用 oracle database 10g 实用工具数据移动得到了很大的提高。 迄今为止,导出/导入工具集仍是跨多个平台转移数据所需劳动强度最小的首选实用工具,尽管人们常常抱怨它速度太慢。导入只是将每条记录从导出转储文件中读出来,然后使用常见的 insert into 命令将其插入到目标表中,因此导入可能是个很慢的过程,这一点并不让人感到吃惊。 进入 oracle data pum......
» 本期热门文章:

©2000-2007 All Rights Reserved. 最佳浏览:1024X768 MSIE