- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 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没有成对出现徐越
您可能关注的文档
最近下载
- 教学能力大赛常见答辩问题汇总2.docx VIP
- 2025年河南省焦作市解放区小升初必考题数学检测卷含解析.doc VIP
- 小学人工智能校本课程《会听的人工智能——语音识别》教学设计.pdf VIP
- EVE各族战舰介绍及装配.doc VIP
- 2024-2025学年河南省焦作市解放区小升初总复习数学精选精练含解析.doc VIP
- 报刊客户的营销方案(3篇).docx VIP
- 2025广西公需科目培训考试答案(90分)——“一区两地一园一通道”建设;人工智能时代的机遇与挑战(1).pdf VIP
- 纺织企业(印染厂)全套组织架构、部门岗位职能设计及全套企业管理制度汇编(拿来即用).docx
- 电网物资质量检测能力评价导则(试行).docx
- 贵州省教科院贵州省教育学会教学设计论文评选结果.docx VIP
文档评论(0)