自从在153文章的认识后,自己要好好熟悉下那个工具
调试篇
1、运行中,就直接调试改变(以前一直用的是悬浮时看值,都不敢改值)
2、黄色箭头的使用(首先可以上拉和下拉)
上拉:假如我有一句看漏了想在看一遍,直接上拉,拉回到某个地方,再继续F10,编译器又会继续走的;
下拉:假如我中间有一句不想执行,想直接跳过,下拉超过那一句便好!!!3、编辑后继续执行
这个的话,vs2008我试了下是会重新编译的;vs2013也分情况,但是这个功能依旧要自己使用。4、监听窗口伪变量;如:当前error的值。一般窗口运行错误的时候,我以前的做法是用getlasterror来赋值。然而监视窗口却有个值可以直接获取到的
最后提下:
$tid—–当前线程的线程ID
$pid——进程ID
$cmdline———-启动程序的命令行字符串
$user———-正在运行程序的账户信息
$registername—–显示寄存器registername 的内容
不管怎么样,关于最后一个错误的伪变量是非常有用的:
$err——–显示最后一个错误的错误码
$err,hr—显示最后一个错误的错误信息
5、多线程调试,这个暂时不说,我那点贫瘠的多线程调试也写不多,希望以后能补充上
http://blog.jobbole.com/45447/6、条件断点 我暂时也就只会一些简单的条件语法
7、使用命令窗口来测试函数有效性
比如,有个time_t的变量(它当然是个int),要看它的时间格式,就可以用这个来
8、自定义中断,这个我感觉还用不上,跳过了
9、远程调试
先去IDE的 Common7\IDE\Remote Debugger,找到合适的64位或32位工具。直接复制到远程机器上;远程机器运行后设置允许任何人连接。如此,本地通过附加进程的方式可以远程调试。10、调试时数据信息格式化
想要改变显示类型可在变量前加以下前缀:by –unsigned char (又称为unsigned byte)
wo – unsigned shot(又称为 unsigned word)
dw – unsigned long(又称为 unsigned double word)
要改变显示的进制数在变量前加下列前缀:d 或者 i– 有符号十进制数
u – 无符号十进制数
o - 无符号八进制数
x – 小写十六进制数
X – 大写十六进制数字符串的格式化
mb 或者 m – 十六进制显示的16字节数据,后跟16个ASCII 字符
mw – 8 words
md – 4 double words
mq - 2 quad-words
ma – 64个ASCII字符
mu – 2字节的UNICODE字符
有趣的快捷键
1、同名跳转
vs对双击的变量和函数等,会高亮当前文档的所有;以前我一般用 ctrl + f来一个一个跳转翻看。今天发现可以ctrl + shift + 上箭头/下箭头来跳转翻看。
2、自动生成类 当然,你写个clas +名 vs会自动给你生成类。我说的是没有声明的情况下。
当写到某句时,我想新建一个类,又不想跳过去一个一个新建说明;
直接 ctrl+shirft+c就新建好了
其它
1、有一段时间我的vs全是16进制的,解决方法:随便弄个调试窗口出来,右键调试窗口,把选中的16进制显示 取消掉
2、实时监控的时候,可以把某个变量某个值 的监控钉在编辑框上
3、查看某个函数被哪些函数调用过,选中,右键.查看调用层次结构(view call Hierarchy)
::OutputDebugString(_T(“debug information!”));