99久久全国免费观看_国产一区二区三区四区五区VM_久久www人成免费看片中文_国产高清在线a视频大全_深夜福利www_日韩一级成人av

Keil 實用的調(diào)試技巧 - 1:隱晦定位

直接進(jìn)入正題。請問下面這段代碼,會修改 arry2 的內(nèi)容碼?(或則這么說,寫程序的人本意是想修改 arry1 的內(nèi)容,他能達(dá)到自己的目的嗎?)

很明顯,當(dāng)我們仿真程序的時候發(fā)現(xiàn),

以上這段代碼意外的修改了 arry2 中的內(nèi)容。這在編碼一些大型程序的時候就會導(dǎo)致很多意想不到的結(jié)果,比較好的情況下只是程序運(yùn)行邏輯不正常。但是一旦修改到其他重要的內(nèi)存空間,比如函數(shù)指針之類的地方,可能就會導(dǎo)致程序死機(jī)。
這種簡單的程序一旦出現(xiàn)問題,我們很容易分析,哦,是指針使用越界導(dǎo)致了內(nèi)存的意外篡改。但是,一旦等到程序的體量比較大,光想靠分析程序邏輯來確認(rèn)到底是哪里意外篡改內(nèi)存這幾乎是不太可能的情況。今天我就準(zhǔn)備分享一個比較實用的小技巧。請在調(diào)試界面按下:Ctrl + B。至于這是什么東西,可以自行百度 keil 的 breakpoint 功能。它就能我們今天的主角。暫且命名為:變量定位器。它能在變量被修改或則讀取的時候停下來。我們就使用這種簡單的功能就可以了。

  1. 想要觀察的變量
  2. 是否監(jiān)測被讀位置?
  3. 是否監(jiān)測被寫位置?也就是我們意外篡改的地方
  4. 這里一般選擇 Object 就可以了。
其他地方暫時就不需要知道了。好了,有了這樣的工具,我們?nèi)绾未_定上面例子中 arry2 的內(nèi)容是在何處被意外修改的?當(dāng)你知道 arry2 的內(nèi)容肯定不是你自己修改的時候,我們在 breakpoint 中填入一下信息:

然后點(diǎn)擊 define 然后就得到了如下的內(nèi)容。

這就相當(dāng)于我們告訴 keil 調(diào)試器,我們需要在 arry2 被 write 的時候自己停下來。關(guān)閉 breakpoint 窗口點(diǎn)擊運(yùn)行。

你會發(fā)現(xiàn),就算你沒有打斷點(diǎn),但是程序也會莫名其妙的停在了第九行。這是為什么呢?因為第8行修改了 arry2 的內(nèi)容。這也就符合我之前的預(yù)期。無論哪里修改 arry2 的內(nèi)容,程序都會停下來。是不是很實用?對于內(nèi)存的意外篡改調(diào)試有很大的幫助。
聲明:本內(nèi)容為作者獨(dú)立觀點(diǎn),不代表電子星球立場。未經(jīng)允許不得轉(zhuǎn)載。授權(quán)事宜與稿件投訴,請聯(lián)系:editor@netbroad.com
覺得內(nèi)容不錯的朋友,別忘了一鍵三連哦!
贊 5
收藏 5
關(guān)注 54
成為作者 賺取收益
全部留言
0/200
成為第一個和作者交流的人吧
主站蜘蛛池模板: 国产女教师高潮叫床视频网站 | 亚洲第一成网 | 俄罗斯ZOOM与人性ZOOM | 黄色网站免费观看视频 | 天天爽狠狠噜天天噜日日噜 | 日本在线看片免费人成视频 | 特级毛片爽WWW免费版 | 四虎av无码专区亚洲av | 久久久999国产视频 成人综合久久综合 | 日本伊人精品一区二区三区观看方式 | 内射白浆一区二区在线观看 | 特级做a爰片免费看一区 | 免费视频啪啪 | 极品束缚调教一区二区网站 | 久久精品国产免费观看 | 亚洲不卡系列 | 国内A级毛片免费观看 | 国产伦精品一区二区三区四区视频 | 色综合视频二区偷拍在线 | 三级毛毛片| 日本久久久 | 69堂免费视频| 国产一区二区高清在线观看 | 午夜视频在线看 | 国产熟妇乱子伦hd | 免费一级片网站 | 亚洲区色情区激情区小说色情书 | 欧美阿v视频 | 女人和男人视频网站 | 9l国产精品久久久久麻豆 | 久久精品欧美一区二区三区不卡 | 99午夜| 草草网站 | 国产精品一区二区三区99 | 亚洲三级黄色片 | 男女一边摸一边做爽爽的免费软件 | 国内视频精品 | 日本真人添下面视频免费 | 国产精品国产三级国产午 | 全黄a免费一级毛片人人爱 久久久久偷看国产亚洲87 | 啪一啪日一日 |