软件开发环境CH2-1.ppt

软件开发环境CH2-1.ppt

ID:48090371

大小:754.00 KB

页数:62页

时间:2020-01-14

软件开发环境CH2-1.ppt_第1页
软件开发环境CH2-1.ppt_第2页
软件开发环境CH2-1.ppt_第3页
软件开发环境CH2-1.ppt_第4页
软件开发环境CH2-1.ppt_第5页
资源描述:

《软件开发环境CH2-1.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、软件开发环境上次课-复习上课的过程复习知识点实战练习分享建议大家带本本主要内容概述良好的软件开发习惯面向对象编程UML设计模式开发软件所涉及到的各个方面:操作系统编程语言软件设计软件测试实证的风格:设问猜测实证VC++6.0——目前软件开发环境VC++6.0之前,MS一直落后于BolandVS6,2003,2005,2008,2010VC++6.0环境的简单演示问题1:include“”编译出现错误断点、单步、Watch、Rebuildintvar=5;inta[var];DevC++5万丈高楼的基础高级语言到汇编的映射调试器的使用汇编高级技巧的学习全局变量赋值引发的故事调试功能:反汇编、

2、监视、内存观察从最简单的全局变量赋值开始intgi;voidmain(){gi=12;}要观察这段语句的实现,就要从反汇编开始打断点,并运行程序首先,将光标放到要中断执行的语句,按f9,然后按f5以调试方式运行如下图打开反汇编如下图选择反汇编gi=12;004117CEmovdwordptr[gi(417164h)],0Ch}下面的汇编语句对应gi=12这句高级语言。为了看到它的机器码,我们如下选择,在编辑界面中鼠标右键单击,选择如下菜单gi=12;004117CEC705647141000C000000movdwordptr[gi(417164h)],0Ch}请注意,对应赋值语句的这一排

3、可以分成三个部分。红色的部分是赋值语句的起始地址004117ce。黑色的部分是mov语句的机器码。而蓝色的部分是mov指令的汇编表示。这条语句是将12(就是十六进制0ch)赋值给内存地址为417164h的内存。设问、猜测、实证,构建我们不相信结论,我们要实证!!!”面对上页谈到的东西,大家想想有什么可以发问和存疑的东西呢?gi=12;004117CEC705647141000C000000movdwordptr[gi(417164h)],0Ch..dwordptr[gi(417164h)],…gi的地址真的是417164h吗?C705647141000C000000真的是mov指令的机器码

4、吗?能看出两者的联系吗?004117CEC705647141000C000000其中004117ce真的是mov语句的起始地址吗?…问题..dwordptr[gi(417164h)],…gi的地址真的是417164h吗?解题思路(1)我们可以用printf(“giaddress=%x”,&gi);来看看结果。这是我们最简单的想法。但需要修改代码。(2)运用调试器,在不修改代码的前提下观看程序的五脏六腑。注意,设问后的猜测非重要,而这时基本知识的运用就非常关键,这里,调试器成为我们第一个重要的基本知识查看高级语言的变量或表达式如下图点击菜单在名称中输入&gi查看gi的地址值 从图可见gi

5、的地址确实和语句中的一样dwordptr[gi(417164h)],都是0x417164除了用高级观察查看,我们能直接看到内存的变化吗?实证可以有不同的办法,对于刚才的问题,我们想直接看内存的变化来看看是否真的mov语句将12这个值赋值给了0x417164这个地址用调试器的内存查看能力内存查看点击如下图菜单,调出内存查看界面在地址栏中输入0x417164,回车,可见第一排最左边的一列的值就是0x417164,右边就是内存中的值,一个个字节排开显示的,我们要观察这里的变化单步执行,我们点击f10,程序将单步执行一条语句(stepover)。如果当前语句是调用一条函数,又想跟踪进函数中,那么f

6、11(stepinto)。注意看截图中的变化,第一个字节编程了红色的0c,对0c就是十进制的12.我们确实将12设定给gi也就是地址为0x417164的地址了。红色代表这个字节的内容和单步执行前不同。问题:针对这个赋值变化,我们有问题,猜测和实证吗?问题我们想通过高级查看,证明一下gi确实变成了12赋值语句到底修改了几个字节?通过高级查看观察小技巧,我们想看看gi的16进制表示。在名称中输入(void*)gi回车。这时,就是0c了。赋值语句到底修改了几个字节?猜测:字节变红色可能代表单步执行和和之前的值不同,并非代表修改。实证:如何来证明能?这里有个基本知识,内存观察是可以修改内容的。赋值

7、语句到底修改了几个字节?(思路1)在断点停下后,我们可以先将0c相连的字节修改成一些其他的值,比如11,这样如果赋值语句修改了,则字节颜色比如变化。如下,然后,单步执行,我们就可以看哪些字节红色的了。修改了四个字节,问题,我们如何证明只修改了4个字节?可以在断点时,将修改为11的字节数加到5个字节,然后单步执行,就会看到0c00000011这样的结果,说明赋值了4个字节赋值语句到底修改了几个字节?(思路2)我们不妨用大点

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。