实验报告_13281166_徐越.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
实验报告徐越 由于本实验报告涉及到的问题较多,我已将自己的内容添加到该文档中并用蓝色标出。由于不太会用word就没有重新排版,望见谅~ 1.请认真学习与参考课件8-2,在如果程序中选择一题:(1)实验4第3题; (2)实验5第2题;(3)实验5第3题。 请完成如下全部实验环节,编写实验报告,说明你的程序调试过程,并说明每个程序调试环节的意义。 对环节的理解: 设置断点(F9),取消断点,进入跟踪状态(go)F5 设置断点是调试的开始,程序会在断点处停下 单步跟进函数(step into)F11 按条执行,遇到函数会进入函数内部(比如 scanf和printf等) 跟出函数(step out) 在F11进入恶心的系统函数时可以用它解脱 出来 单步执行(step over)F10 与F11不同的是可以跨过函数,感觉较实用 Run to cursor: 在程序某行点右键选它后可以直接执行到这 增加观察变量,查看变量地址 直接在watch中查找 查看内存空间(memory) 在工具栏点memory输入变量地址可以查看内存空间 查看函数返回值,查看调用栈(call stack) 在debug工具条上,点开后会有对话框,上面显示了各种函数由下往上的调用关系,点函数名可以跳到函数中去 QuickWatch 小眼镜图标,打开的框里也可以进行查询和修改 结束跟踪(stop debugging)。 2.在你的程序跟踪过程中,请尝试对包含scanf或printf函数的语句执行Step into操作,查看发生的现象并在实验报告中解释出现该现象的原因。 进入系统函数后会看见一堆恶心的指令,因为F11会进入函数内部,也包括常见系统函数如printf等。个人觉得此时F11不如F10好用。 3. 程序运行中最为常见的一类错误是非法内存访问。请在实验报告中回答如下问题: (1)请说明为什么计算机有足够的内存空间时,却还要提醒我们的一些代码做了一些非法内存访问操作。 猜测可能是存储空间的格式问题,比如fat32的磁盘虽然有200G的空间但不允许放入单个超过4G的文件。而ntfs格式的磁盘可以。 (2) 请举例说明,程序被提醒做非法内存访问操作与现在世界哪些事情相类似。 越界访问:类似于生活中越俎代庖管理不是自己分内的事? 指针未分配空间:类似于无中生有? 经常有同学说函数 scanf没有语法错误,但是却会报出运行时的非法内存访问错误,请问最有可能的原因是什么,是由哪个参数引起的? 可能输入的字符串超出了定义字符串的长度 请在一个测试函数内定义一个数组和若干变量。并尝试做各种数组越界访问,直至产生非法内存访问错误。请问为什么有些越界访问不会产生非法内存访问错误,但是有些却会产生非法内存访问错误。未产生非法内存访问错误的越界操作真的就是安全的吗?并说明原因。 不越界的正常访问 第一次越界访问(不报错,能运行) 第二次越界(不报错,不能运行) 未产生非法内存访问错误的越界操作是不安全的,有时程序会继续运行,但数据已经出现错误,有时程序会崩溃。 (5) 对于一个指针变量,如果需要用该指针变量做间接运算,请说明该指针变量所保存的存储地址所应具有的特性。 该指针不能为空,其中的存储地址对于该进程有相应的操作权限(读/写/执行等) 4. Memory Leak是程序员极为头疼的一种错误,请查阅并在实验报告中说明这种错误的含义,以及产生的常见原因。 Memory Leak(内存泄露),当内存不再使用时没有释放内存,导致内存被不断侵蚀,会导致内存不足, 原因一般是动态内存分配,如malloc/free , new/delete没有成对出现徐越

文档评论(0)

159****8201 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档