实验报告
13281166 徐越
由于本实验报告涉及到的问题较多,我已将自己的内容添加到该文档中并用蓝色标出。由于不太会用word就没有重新排版,望见谅~
1.请认真学习与参考课件8-2,在如果程序中选择一题:(1)实验4第3题; (2)实验5第2题;(3)实验5第3题。
请完成如下全部实验环节,编写实验报告,说明你的程序调试过程,并说明每个程序调试环节的意义。
对环节的理解:
1) 设置断点(F9),取消断点,进入跟踪状态(go)F5
设置断点是调试的开始,程序会在断点处停下
2) 单步跟进函数(step into)F11
按条执行,遇到函数会进入函数内部(比如 scanf和printf等)
3) 跟出函数(step out)
在F11进入恶心的系统函数时可以用它解脱 出来
4) 单步执行(step over)F10
与F11不同的是可以跨过函数,感觉较实用
5) Run to cursor:
在程序某行点右键选它后可以直接执行到这
6) 增加观察变量,查看变量地址
直接在watch中查找
7) 查看内存空间(memory)
在工具栏点memory输入变量地址可以查看内存空间
8) 查看函数返回值,查看调用栈(call stack)
在debug工具条上,点开后会有对话框,上面显示了各种函数由下往上的调用关系,点函数名可以跳到函数中去
9) QuickWatch
小眼镜图标,打开的框里也可以进行查询和修改
10) 结束跟踪(stop debugging)。
2.在你的程序跟踪过程中,请尝试对包含scanf或printf函数的语句执行Step into操作,查看发生的现象并在实验报告中解释出现该现象的原因。
进入系统函数后会看见一堆恶心的指令,因为F11会进入函数内部,也包括常见系统函数如printf等。个人觉得此时F11不如F10好用。
3. 程序运行中最为常见的一类错误是非法内存访问。请在实验报告中回答如下问题:
(1)请说明为什么计算机有足够的内存空间时,却还要提醒我们的一些代码做了一些非法内存访问操作。
猜测可能是存储空间的格式问题,比如fat32的磁盘虽然有200G的空间但不允许放入单个超过4G的文件。而ntfs格式的磁盘可以。
(2) 请举例说明,程序被提醒做非法内存访问操作与现在世界哪些事情相类似。
越界访问:类似于生活中越俎代庖管理不是自己分内的事?
指针未分配空间:类似于无中生有?
(3) 经常有同学说函数 scanf没有语法错误,但是却会报出运行时的非法内存访问错误,请问最有可能的原因是什么,是由哪个参数引起的?
可能输入的字符串超出了定义字符串的长度
(4) 请在一个测试函数内定义一个数组和若干变量。并尝试做各种数组越界访问,直至产生非法内存访问错误。请问为什么有些越界访问不会产生非法内存访问错误,但是有些却会产生非法内存访问错误。未产生非法内存访问错误的越界操作真的就是安全的吗?并说明原因。
不越界的正常访问
第一次越界访问(不报错,能运行)
第二次越界(不报错,不能运行)
未产生非法内存访问错误的越界操作是不安全的,有时程序会继续运行,但数据已经出现错误,有时程序会崩溃。
(5) 对于一个指针变量,如果需要用该指针变量做间接运算,请说明该指针变量所保存的存储地址所应具有的特性。
该指针不能为空,其中的存储地址对于该进程有相应的操作权限(读/写/执行等)
4. Memory Leak是程序员极为头疼的一种错误,请查阅并在实验报告中说明这种错误的含义,以及产生的常见原因。
Memory Leak(内存泄露),当内存不再使用时没有释放内存,导致内存被不断侵蚀,会导致内存不足,
原因一般是动态内存分配,如malloc/free , new/delete没有成对出现
13281166 徐越
第二篇:徐越
上海人。出身文艺家庭,七岁即从事体操,技巧训练,曾获上海少年技巧运动冠军。十六岁改习杂技魔术,刻苦钻研,努力攻读,使这颗新星脱颖而出。她表演的《钻桶》,先后多次赴美、日、澳、西欧及香港、新加坡等地表演,以其姿容灵秀、形体健美和技艺高难大受欢迎。
徐越天资聪慧,19xx年从师傅腾龙研习魔术,不但技法娴熟、风度高雅,而且戏路开阔,艺术多面,比如她在首演的极具惊险的超大型节目《倒悬行走》,能头朝下,脚在上踩着横梁信步行走,她的《壁虎神功》,背靠着墙往上爬行,她的手法高超如《彩巾飞舞》、《民间戏法》、《烛光幻影》等,多姿多彩,而《似手似脚》、《清洁工之恋》等,则完全换了一副面孔,幽默风趣,尤其是19xx年与老师合作上演《心灵感应》,风糜了海内外观众,她强烈的感应和判断能力,被舆论视为超能,魔坛新秀。
徐越是国际魔术师协会会员,中国魔术艺术委员会委员,中国杂技艺术家协会会员,上海魔术师俱乐部成员。
/refer/2HEg50xi7z_9EAY5/v.swf