前面几点一般人知道的操作
1,变量添加到Watch
作用:可以在调试过程中随时看到变量值的变化
操作方法:选中变量,右键
成功添加:
这个是16进制显示,转为10进制显示:把勾选去掉:
而且还有一个操作是,我们可以点击数据去更改,比如1200改为34000
这样,在调试的时候我们可以设置一些测试变量作为调试语句进行判断性调试,还是比较方便
2,变量添加到memory
作用:可以在看到变量地址的情况下看到变量数据的变化。
添加成功后:
可以通过上面添加的Watch知道该变量的起始地址是没有问题的。后面的就是每字节的数据,最大为FF算出来还是跟Watch中看到数据一样。这个是按照低地址位放在地位,比如:04B0 = 1200.
3,打断点
作用:查看程序是否运行到该位置
正常操作,就是在想停止的位置的左边点一下,有红球就是大的断点
然后点击运行,程序运行到这个位置出现黄色的箭头,就表示程序运行到这里停住了。
现在是二般人知道的操作
1,让某句程序运行个100次,程序停止
先在那句程序旁打个断点,再Ctrl + B,就出现了这个:
然后双击那条语句:
最后在count里面设置100,点击define,在确定
最后close掉,再点击运行,,改程序会运行100次然后停止在该语句这里,最后再看这个语句就变回原来的样子:
2,但变量被改变数据时就停止
在Watch里面选着一个变量右键点击这个选择:
然后出现:记得勾选write,再点击define再同意。
后面再close掉,运行程序,当那个变量的值发生变化时,程序停止。
在这里发生了变化赋值,如果不想赋值一次就停止,那可以将count的数值改大一点,那样就会赋值多次,程序才会停止。
3,变量被调用的时候程序停止
也就是将上面操作中的write改为read。
其他的操作都是一样的。
4,变量加判断停止
加一个判断条件,当满足的时候程序停止,次数还是可以设置:
当条件满足时停止:
这可以支持多种运算符:&,&&,<,<=,>,>= ,==,!=
5,在Command里面打印,printf
首先设置一个断点,以后每次经过该断点时进行打印:程序不会停止
双击选择语句,再到下面command里面输入printf,必须加\n:
最后的效果:在command框里面:
当然可以打印文字,同时也可以打印数据:printf(\"%d\n\",RamPara.Key_Flag)
最后: