成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

深入探討一下如何打斷點

開發(fā) 前端
今天我們聊聊如何高效率的斷點調(diào)試,由于工作中IAR為主力IDE,本篇文章主要以IAR為主。在新建斷點時,還有l(wèi)og,Datalog等等,這些我用得不多,上面主要介紹了我常用的打斷點的方式。

[[430406]]

對于程序員來說,debug的時間往往比寫程序的時間還要長。尤其對我這種專寫bug為主的程序員來說,正確使用斷點調(diào)試是提高效率的有效方法。今天我們聊聊如何高效率的斷點調(diào)試,由于工作中IAR為主力IDE,本篇文章主要以IAR為主。

一、普通斷點

打開IDE,如下圖,我們想在程序運行到第104行時停止運行,我們在下圖中104行號前單擊,這時該語句上將出現(xiàn)紅色的斷點標(biāo)記。如下圖:

或者點擊要設(shè)置斷點的語句,按鼠標(biāo)右鍵,選擇Toggle Breakpoint (Code)。

二、條件斷點

除了上述最普通的斷點外,有時候我們需要斷點在一定條件下觸發(fā),例如上面的代碼,希望在num等于100時程序暫停。這個時候有兩個最常用方法:

1、最笨的方法就是手動運行100次即可,如果是一次兩次的還可以,運行100次顯然不現(xiàn)實。

2、寫一個判斷語句,當(dāng)num等于100時執(zhí)行某個語句,把斷點打在這個語句上如下:

這種方法可行,也很缺陷:當(dāng)代碼開了優(yōu)化時,某些語句可能被優(yōu)化導(dǎo)致斷點無法運行。

這個時候,條件斷點就閃亮登場了。

在打好斷點之后,進入debug模式,然后在IAREWARM的選項欄選擇View-> Breakpoints 窗口查看所設(shè)置的斷點,右鍵已設(shè)置的斷點,選擇Edit進行配置斷點。

我們希望當(dāng)num等于100時暫停程序,那么我們下圖紅框內(nèi)填寫num==100。當(dāng)然也可以設(shè)置(num>= 10)和(num<= 10),類似C語言中使用的==、>=、<=。

程序全速運行時,當(dāng)程序運行到104行,且num等于100時就會暫停,如下圖:

注意我上面的用詞“且”,這時候斷點觸發(fā)的條件時運行到104行和num等于100同時滿足時,如果將斷點打到其他行也是一樣的效果,如下圖:

三、數(shù)據(jù)斷點

看完上面的描述,有些同學(xué)就要問了,如果我就想要num等于100時暫停,不要同時滿足其他條件,為什么有這樣的需求呢?在實際的開發(fā)過程中,會碰到很多數(shù)據(jù)“異常”的情況,比如在一個代碼量很大的工程中,有個變量突然變成1,卻無法很快定位到那句代碼修改的。

這時候數(shù)據(jù)斷點(非官方叫法,個人叫法)就閃亮登場了。值得注意的是,數(shù)據(jù)斷點只對全局變量有效。

進入debug模式,然后在IAREWARM的選項欄選擇View-> Breakpoints 窗口查看所設(shè)置的斷點,空白處右鍵選擇NewBreakpoint,然后選擇Data。

在1處填寫num,表示要監(jiān)控的變量,選擇2處Enable,在3處寫入0x00000064,表示當(dāng)num等于100時,暫停程序。

測試結(jié)果如下:

眼尖的同學(xué)可能已經(jīng)注意到,Accesstype選項,我們這個選擇的是Read/Write,表示無論是讀操作還是寫操作,當(dāng)num等于100時,都會暫停程序。

當(dāng)選擇Read時,只有讀num等于100時才會暫停程序,當(dāng)選擇Write時,只有寫num時num等于100,才會暫停程序

對比如下圖,一個停在了106行,一個停在了104行,具體原因這個是C語言的基本知識,這里不再贅述。

注意:

1、對于Cortex-M 設(shè)備,只能設(shè)置一個帶有匹配數(shù)據(jù)的斷點。而且這樣的斷點使用兩個硬件斷點。

2、調(diào)試設(shè)備僅限于I-jet,JTAGjet,J-Link/J-Trace 和ST-LINK,如果使用的自制的CMSIS-DAP是不支持的。

四、總結(jié)

在新建斷點時,還有l(wèi)og,Datalog等等,這些我用得不多,上面主要介紹了我常用的打斷點的方式,希望對大家有幫助,

本文轉(zhuǎn)載自微信公眾號「知曉編程」

 

責(zé)任編輯:姜華 來源: 知曉編程
相關(guān)推薦

2009-12-23 16:13:00

WPF Attache

2009-12-01 15:48:12

提高PHP運行效率

2009-11-20 17:17:08

Oracle函數(shù)索引

2021-05-17 05:36:02

CSS 文字動畫技巧

2010-11-22 14:18:32

MySQL鎖機制

2010-07-21 09:38:15

PHP緩存技術(shù)

2024-05-11 08:20:23

2009-11-12 13:56:54

2009-12-07 16:07:03

PHP類的繼承

2009-12-14 14:40:10

Ruby全局域變量

2012-02-28 14:43:43

2024-01-26 06:42:05

Redis數(shù)據(jù)結(jié)構(gòu)

2017-01-03 17:57:46

Android異步精髓Handler

2009-10-16 09:17:39

屏蔽布線系統(tǒng)

2009-12-07 13:55:58

PHP array_m

2013-07-11 09:45:48

扁平化扁平化設(shè)計

2009-12-11 11:08:31

靜態(tài)路由策略

2010-03-05 13:44:00

Python序列

2009-08-27 11:27:58

foreach語句C# foreach語

2023-01-12 17:18:06

數(shù)據(jù)庫多云
點贊
收藏

51CTO技術(shù)棧公眾號

主站蜘蛛池模板: 综合网中文字幕 | 欧美性高潮 | 日日骚网 | 男女羞羞免费网站 | 日韩一区二区三区视频在线观看 | 亚洲高清在线观看 | 一区二区精品在线 | 欧美性生交大片免费 | 国产欧美一区二区三区久久 | 亚洲天堂日韩精品 | 免费色网址| 成人免费视频网站在线看 | 在线超碰 | 免费电影av| 国产精品一区在线 | 亚洲欧美一区二区三区国产精品 | 国产一区二区在线免费播放 | 美女啪啪国产 | 四虎影视1304t | 一级一级毛片免费看 | 国产亚洲一区在线 | 亚洲区一区二区 | 99在线免费观看 | 亚洲在线一区 | 免费啪啪 | 中文字幕乱码一区二区三区 | 国产精品久久久久久一级毛片 | www.久久精品视频 | 黄色大片观看 | 毛片a级| 青草福利 | 国产精品高清在线 | 99久久精品免费看国产四区 | 免费h在线 | 亚洲一区三区在线观看 | 四虎影视免费观看 | 国产成人在线一区 | 成人网在线 | 一区二区三区视频在线免费观看 | 91视频网 | 日韩在线电影 |