- 浏览: 1169230 次
- 性别:
- 来自: 北京
最新评论
-
天空趋虚:
资源还没有匮乏到这种程度吧,我觉得代码通俗易懂,可维护性强,比 ...
java编程中'为了性能'一些尽量做到的地方 -
wen262856298:
文章写的好但是里面有错误 ...
java编程中'为了性能'一些尽量做到的地方 -
步青龙:
你的博客中,我看的第一篇文章,感悟很深,果断关注你,谢谢你把这 ...
工作是什么?我怎么理解 -
accp6_0:
...
程序人生:女程序员的求职奋斗史 -
Dragonmandance:
很不错,学习了
java编程中'为了性能'一些尽量做到的地方
文章列表
以程序的方式操纵NTFS的文件权限
陈皓
Windows NT/2K/XP版本的操作系统都支持NTFS格式的文件系统,这是一个有安全性质的文件系统,你可以通过Windows的资源管理器来设置对每个目录和文件的用户访问权限。这里我就不对NTFS的安全性进行讲述了,我默认你对NTFS的文件目录的安全设置有了一定的了解。在这里,我将向你介绍使用Windows的API函数来操纵NTFS的文件权限。
一、 理论和术语
在
- 2004-01-25 21:17
- 浏览 580
- 评论(0)
// // STEP 14: 把一个 access-allowed 的ACE 加入到新的DACL中 // 前面的循环拷贝了所有的非继承且SID为其它用户的ACE,退出循环的第一件事 // 就是加入我们指定的
- 2004-01-20 21:19
- 浏览 702
- 评论(0)
十、 设置WatchPoint
你可以在你的程序中,对你所想监控的程序设置一些WatchPoint,以方便于你对程序进行调试,或更容易找出问题的原因。就像我前面说,Purify可以找到你的内存泄露,但其不能找到内存泄露的原因,你可以通过设置WatchPoint来跟踪一块内存,以找到在程序执行过程中该内存的访问情况。
Purify的WatchPoint可以产生下例消息:
l WPR(被WatchPoint的内存读)
l WPW(被WatchPoint的内存写)
- 2003-12-16 13:01
- 浏览 703
- 评论(0)
七、 Purify的退出码
像UNIX下的软件,一般都会提供和别的应用程序的接口,像上面的生成文本文件,也是给别的应用程序提供接口的一种方式。这里,我们所要讲述的是Purify的退出码,我们知道程序都有退出码,以提供给别的程序或操作系统自己运行的信息。被Purify编译过的程序,你可以通过指定-exit-status参数来告诉Purify是否用Purify的退出码,如果这个参数值为yes,那么表示使用Purify的退出码,如果值为no则表示使用程序内的退出码。
如果我们这样设置:-exit-status=yes,那么Purify的退出码是这样定义的:
- 2003-12-16 12:58
- 浏览 608
- 评论(0)
五、 文件描述符问题
在上面的内存问题表中,对于大多数的内存问题来说,相信对于熟悉C/C++的程序员,并不陌生。有一些关于Watchpoint和文件描述符的内容,可能会让你看得比较模糊,对于Watchpoint,我会在后面讲述。这一节,我就一个示例说一说文件描述述问题是如何产生的,并由此介绍一下Purify的一些特性。
先查看下面这段程序:
#include <stdio.h>
- 2003-12-15 01:26
- 浏览 735
- 评论(0)
三、 示例
假设我们现在有这样一段程序:hello.c
#include <stdio.h>
#include <malloc.h>
static char *helloWorld = "Hello, World";
- 2003-12-11 11:37
- 浏览 678
- 评论(0)
C/C++内存问题检查利器——Purify
陈皓
一、 引言
我们都知道软件的测试(在以产品为主的软件公司中叫做QA—Quality Assessment)占了整个软件工程的30% -50%,但有这么一种说法,即使是最优秀测试专家设计出来的测试案例,也无法彻底地检测到内存上的问题。
使用C/C++开发的团队一定有被其内存问题折磨过的经历,内存问题一直是C/C++开发人员的心头之痛。特别当程序越来越多时,类的继承和关联越来越多时,
- 2003-12-11 11:34
- 浏览 630
- 评论(0)
四、维护停止点
上面说了如何设置程序的停止点,GDB中的停止点也就是上述的三类。在GDB中,如果你觉得已定义好的停止点没有用了,你可以使用delete、clear、disable、enable这几个命令来进行维护。
clear 清除所有的已定义的停 ...
- 2003-07-21 18:36
- 浏览 559
- 评论(0)
七、设置显示选项
GDB中关于显示的选项比较多,这里我只例举大多数常用的选项。
set print address set print address on 打开地址输出,当程序显示函数信息时,GDB会显出函数的参数地址。系统默认为打开的,如: (gdb) f #0 set_quotes (lq=0x34c78 "<<", rq=0x34c88 ">>") at input.c:530 530 if (lquote != def_lquote)
set print address off 关闭函数的参数地址显示 ...
- 2003-07-12 22:24
- 浏览 535
- 评论(0)
改变程序的执行———————
一旦使用GDB挂上被调试程序,当程序运行起来后,你可以根据自己的调试思路来动态地在GDB中更改当前被调试程序的运行线路或是其变量的值,这个强大的功能能够让你更好的调试你的程序,比如,你可以在程序的一次运行中走遍程序的所有分支。 一、修改变量值
修改被调试程序运行时的变量值,在GDB中很容易实现,使用GDB的print命令即可完成。如: (gdb) print x=4 x=4这个表达式是C/C++的语法,意为把变量x的值修改为4,如果你当前调试的语言是Pascal,那么你可以使用Pascal的语法:x:=4。 在某些时候,很有可能你的变量和GDB中的参数冲突, ...
- 2003-07-12 16:42
- 浏览 697
- 评论(0)
查看栈信息—————
当程序被停住了,你需要做的第一件事就是查看程序是在哪里停住的。当你的程序调用了一个函数,函数的地址,函数参数,函数内的局部变量都会被压入“栈”(Stack)中。你可以用GDB命令来查看当前的栈中的信息。
下面是一些查看函数调用栈信息的GDB命令:
backtrace bt 打印当前的函数调用栈的所有信息。如: (gdb) bt #0 func (n=250) at tst.c:6 #1 0x08048524 in main (argc=1, argv=0xbffff674) at tst.c:30 #2 0x400409ed in __libc_start_ma ...
- 2003-07-09 08:30
- 浏览 609
- 评论(0)
查看运行时数据——————— 在你调试程序时,当程序被停住时,你可以使用print命令(简写命令为p),或是同义命令inspect来查看当前程序的运行数据。print命令的格式是: print <expr> print /<f> <expr> <expr>是表达式,是你所调试的程序的语言的表达式(GDB可以调试多种编程语言),<f>是输出的格式,比如,如果要把表达式按16进制的格式输出,那么就是/x。一、表达式
print和许多GDB的命令一样,可以接受一个表达式,GDB会根据当前的程序运行的数据来计算这个表达式,既然是表达式, ...
- 2003-07-09 08:30
- 浏览 702
- 评论(0)
GDB的命令概貌———————
启动gdb后,就你被带入gdb的调试环境中,就可以使用gdb的命令开始调试程序了,gdb的命令可以使用help命令来查看,如下所示:
/home/hchen> gdb GNU gdb 5.1.1 Copyright 2002 Free Software Foundation, Inc. GDB is free software, covered by the GNU General Public License, and you are welcome to change it and/or distribute copies of it under ...
- 2003-07-03 00:20
- 浏览 585
- 评论(0)
用GDB调试程序
GDB概述————
GDB是GNU开源组织发布的一个强大的UNIX下的程序调试工具。或许,各位比较喜欢那种图形界面方式的,像VC、BCB等IDE的调试,但如果你是在UNIX平台下做软件,你会发现GDB这个调试工具有比VC、BCB的图形化调试器更强大的功能。所谓“寸有所长,尺有所短”就是这个道理。
一般来说,GDB主要帮忙你完成下面四个方面的功能:
1、启动你的程序,可以按照你的自定义的要求随心所欲的运行程序。 2、可让被调试的程序在你所指定的调置的断点处停住。(断点可以是条件表达式) 3、当程序被停住时,可以检查此时你的程序中所发生的事。 4、动态的改变你程序的执行环 ...
- 2003-07-02 23:13
- 浏览 692
- 评论(0)
< 序言 >————
几年前,当我确定我的发展方向是软件开发时,给自己订下的三步曲是:软件编程、软件设计、软件工程。随着对既定目标的越来越近的时候,我却出现了一种困扰我的忧虑。
记得两年前开始的一个正规 ...
- 2003-06-09 07:56
- 浏览 687
- 评论(0)