在VS中debug时,将未初始化变量都赋值为CC的顿悟
write by 九天雁翎(JTianLing) -- blog.csdn.net/vagrxie
讨论新闻组及文件
一直以来,我都不是太理解这种方式,在C++函数调用原理理解中,我仅仅是简单的认为,那么做,可能是因为CC平时用的少,而且好看:)所以初始化这样一个不怎么常用的变量,可以让人很快发现。。。。事实上,的确有这样的效果,当Debug时,我看一个变量为CC时的确第一时间就能反应过来,我又犯了一个不可饶恕的低级错误,又忘了初始化了,这点在变量为指针类型的时候更加严重。
但是,在学习过反汇编这么久后,今天在看《C缺陷与陷阱》时,突然顿悟了CC的意义。。。。。至于为什么是看这本和这件事完全没有关系的时候突然想到,我也不知道,反正就是那样发生了。
CC在汇编代码中表示为int 3,实际表示一个中断,在与硬件中断(CPU中加入的DR寄存器指示)做区别的时候也叫软中断。。。。几乎所有的调试工具在调试时,都是靠int 3来完成任务的。。。。。。这些我知道时间不短了。。。。但是今天才将其与VS在debug时的初始化联系起来。。。。。这样的话,假如有异常的跳转,程序运行到了不应该运行的地方。。。。那么,就会触发中断,让调试程序获得控制,这样可以更早的发现问题,而不是当运行了一堆莫名其妙的代码后才出现问题。。。。。。
至于VS在debug时的初始化,可以用debug方式编译任何程序,你都能看到
比如在C++函数调用原理理解例子中如下:
0041136C lea edi,[ebp-0C0h] ;读入[ebp-0C0h]有效地址,即原esp-0C0h,正好是为该函数留出的临时存储区的最低位
00411372 mov ecx,30h ;ecx = 30h(48),30h*4 = 0C0h
00411377 mov eax,0CCCCCCCCh ;eax = 0CCCCCCCCh;
0041137C rep stos dword ptr es:[edi] ;重复在es:[edi]存入30个;0CCCCCCCCh? Debug模式下把Stack上的变量初始化为0xcc,检查未初始化的问题
write by 九天雁翎(JTianLing) -- blog.csdn.net/vagrxie
分享到:
相关推荐
博文对应的文件。包含转储文件和调试符号及对应的程序。可以直接使用windbg分析对应的dump文件。注意设置好调试符号的路径。
用debug命令初始化硬盘!这是快速将硬盘初始到初厂状态的方法,效果很好!
CC1110/ CC2430/ CC2510Debug and Programming InterfaceSpecificationRev. 1.2
设置环境变量,使用idea 调试 JAVAWS_VM_ARGS -Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=5005
vs2005 debug crt 发布包
Debug时修改代码能即时生效的说明,帮助大家在debug时解决无法及时生效的问题
该文档介绍了如何将Debug与Release的输出路径为同一位置的方法以及如何获取vs工程当前路径的方法。
主要介绍了IDEA Debug模式下改变各类型变量值的方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
当我们调试Java程序时,我们无法查看JDK源代码中的变量的值,此文档解决了这个问题
使用调试接口对cc2430进行编程,描述了debug口的操作。
用IAR和仿真器给板子下载程序时出现“a target cannot be selected when used in another debug session or in other applications.”解决办法及驱动。
注意:若原来的JRE目录下已经存在了rt.jar包,则要将新编译的rt_debug.jar的位置在原来的jar包之前。 现在完成了所有的步骤了,赶快尝试debug一下,如果可以查看局部变量了,那么恭喜你成功了。
The CC Debugger is primarily used for debugging and programming the flash on CCxxxx 8051-based System-on-Chip (SoC) devices from Texas Instruments. The PC tools available for these purposes are the ...
扩展Unity Debug类,在Android和IOS ,Hololens等平台上进行Unity调试的时候看不到控制台输出,所以需要进行日志扩展将Log输出到屏幕上或者是保存文件,就需要对Debug进行扩展。方便直接调试。导直接导入Unity即可。...
主要介绍了Eclipse中Debug时鼠标悬停不能查看变量值解决办法,以及分享了一个简单补全代码的方法,还是比较不错的,需要的朋友可以参考下。
最新版的TI zigbee CCDEBUGER 驱动。
vc++ ide 不显示Debug,Release的原因及解决办法
vs 中release与debug的区别
很多时候在写代码过程中,发现 Debug 下运行正常,Release 下就会出现问题,百思不得其解,而Release 下又无法进行调试,于是只能采用printf方式逐步定位到问题所在处,才发现原来是给定的一个数组未初始化,导致...
解决java源码调试跟不到变量值,解压后,按照说明操作即可