0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

Keil調(diào)試時(shí)設(shè)置斷點(diǎn)的高級(jí)用法

Dp1040 ? 來源:嵌入式技術(shù)開發(fā) ? 作者:嵌入式技術(shù)開發(fā) ? 2023-08-04 09:34 ? 次閱讀

在線調(diào)試程序時(shí),打斷點(diǎn)是非常有效的一種方式,配合單步調(diào)試,可以快速定位問題。但有的時(shí)候,手動(dòng)打斷點(diǎn)用起來不是那么方便。

比如,想要在一個(gè)循環(huán)的第N次停下來,如果手動(dòng)打斷點(diǎn),那就要不停的點(diǎn)擊單步運(yùn)行,直到循環(huán)運(yùn)行到第N次。

再比如,程序運(yùn)行過程中變量不知何時(shí)被改變了,又不好定位,手動(dòng)打斷點(diǎn)就不知打在哪里。這時(shí)就要用到一些斷點(diǎn)的高級(jí)用法。

1、設(shè)置斷點(diǎn)的運(yùn)行次數(shù)

以下面程序?yàn)槔?,在循環(huán)的第十次將程序停止。首先在循環(huán)中手動(dòng)打一個(gè)斷點(diǎn):

a7b5cc5a-325e-11ee-9e74-dac502259ad0.png

點(diǎn)擊Debug菜單,選擇BreakPoints:

a7d847bc-325e-11ee-9e74-dac502259ad0.png

彈出下面菜單:

a80bef04-325e-11ee-9e74-dac502259ad0.png

最上面的斷點(diǎn)是手動(dòng)打的,雙擊該斷點(diǎn),會(huì)看到Expression會(huì)顯示該斷點(diǎn)的信息,修改Count的值為10,點(diǎn)擊Define,然后關(guān)閉該窗口。這里說明一下:

Expression為表達(dá)式,即斷點(diǎn)的條件,可以看到,手動(dòng)設(shè)置的斷點(diǎn)結(jié)尾為123,表示在main.c文件的123行。這里支持基本的>、<、==、!=等操作符。

Count為次數(shù),表示運(yùn)行多少次中斷一次,手動(dòng)設(shè)置的斷點(diǎn)Count都是1。

Command為命令,表示到達(dá)該斷點(diǎn)時(shí)執(zhí)行的命令,默認(rèn)為空。

按照上面的設(shè)置,運(yùn)行程序??梢钥吹剑绦蜻\(yùn)行到斷點(diǎn)時(shí)沒有馬上停下,而是在第10次才停下來:

a81286de-325e-11ee-9e74-dac502259ad0.png

2、變量匹配斷點(diǎn)

將變量添加到Watch窗口,右擊選擇Set Access BreakPoint at xxx。還是彈出剛才的菜單:

a8445dbc-325e-11ee-9e74-dac502259ad0.png

a85c7550-325e-11ee-9e74-dac502259ad0.png

勾選Access方式Read或Write,設(shè)置Count值,點(diǎn)擊Define。這里選擇Write,Count值為4,表示該變量第四次被寫入時(shí)程序會(huì)停止。

3、變量條件匹配斷點(diǎn)

跟上一步一樣,在Watch窗口,右擊變量選擇Set Access BreakPoint at xxx。勾選Access方式Read或Write,刪除Expression下原來的內(nèi)容,填寫表達(dá)式“AD== 10”。點(diǎn)擊Define。這樣當(dāng)AD==10時(shí)程序會(huì)停止。

a88270e8-325e-11ee-9e74-dac502259ad0.png

4、打印信息

選擇一個(gè)手動(dòng)打好的斷點(diǎn),然后在Command下填寫printf(),則在運(yùn)行到斷點(diǎn)處時(shí),程序不會(huì)停止,而是在Command窗口打印設(shè)置的信息。

a8bcf38a-325e-11ee-9e74-dac502259ad0.png

a8e15a04-325e-11ee-9e74-dac502259ad0.png

5、條件匹配打印信息

還可以將3和4組合使用,如下:

a8ecf9b8-325e-11ee-9e74-dac502259ad0.png

則AD==10時(shí),程序不中斷,在Command窗口打印信息。 斷點(diǎn)的高級(jí)用法還有很多種,不同的表達(dá)式,不同的指令等,具體可查閱Keil的使用幫助文檔。

a9275d24-325e-11ee-9e74-dac502259ad0.png

審核編輯:湯梓紅

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 調(diào)試
    +關(guān)注

    關(guān)注

    7

    文章

    578

    瀏覽量

    33941
  • 程序
    +關(guān)注

    關(guān)注

    117

    文章

    3787

    瀏覽量

    81043
  • keil
    +關(guān)注

    關(guān)注

    68

    文章

    1213

    瀏覽量

    166876
  • 斷點(diǎn)
    +關(guān)注

    關(guān)注

    0

    文章

    12

    瀏覽量

    7709
  • Watch
    +關(guān)注

    關(guān)注

    0

    文章

    102

    瀏覽量

    15133

原文標(biāo)題:Keil調(diào)試時(shí),設(shè)置斷點(diǎn)的高級(jí)用法

文章出處:【微信號(hào):玩點(diǎn)嵌入式,微信公眾號(hào):玩點(diǎn)嵌入式】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    如何利用keil設(shè)置變量值改變時(shí)調(diào)試斷點(diǎn)?

    如何利用keil設(shè)置變量值改變時(shí)調(diào)試斷點(diǎn)?
    發(fā)表于 12-24 07:13

    KEIL斷點(diǎn)調(diào)試窗口的常規(guī)用法有哪些

    程序運(yùn)行過程中的數(shù)據(jù)是怎么修改的?在哪里修改的?KEIL斷點(diǎn)調(diào)試窗口的常規(guī)用法有哪些?
    發(fā)表于 02-17 06:32

    keil在線調(diào)試無法設(shè)置斷點(diǎn)怎么解決?

    使用的是Keil IDE及Jlink仿真器,但是keil啟動(dòng)在線仿真時(shí)無法設(shè)置斷點(diǎn),仿真前設(shè)置斷點(diǎn)
    發(fā)表于 11-03 06:11

    基于Keil的入門實(shí)例教程

    基于Keil的入門實(shí)例教程: 1 Keil工程文件的建立、設(shè)置與目標(biāo)文件的獲得3 Keil 程序調(diào)試窗口2
    發(fā)表于 08-10 08:36 ?355次下載

    Keil調(diào)試命令,在線匯編與斷點(diǎn)設(shè)置

    本章介紹常用的調(diào)試命令,利用在線匯編,各種設(shè)置斷點(diǎn)進(jìn)行程序調(diào)試的方法,并通過實(shí)例介紹這些方法的使用。
    發(fā)表于 01-09 11:29 ?62次下載

    Keil調(diào)試命令、在線匯編與斷點(diǎn)設(shè)置

    Keil調(diào)試命令、在線匯編與斷點(diǎn)設(shè)置上一講中我們學(xué)習(xí)了如何建立工程、匯編、連接工程,并獲得目標(biāo)代碼,但是做到這一步僅僅代表你的源
    發(fā)表于 01-18 09:38 ?1.1w次閱讀
    <b class='flag-5'>Keil</b>的<b class='flag-5'>調(diào)試</b>命令、在線匯編與<b class='flag-5'>斷點(diǎn)</b><b class='flag-5'>設(shè)置</b>

    VI調(diào)試(設(shè)置斷點(diǎn))

    【LabVIEW從入門到精通】2.4.2 VI調(diào)試(設(shè)置斷點(diǎn))
    發(fā)表于 01-08 15:44 ?0次下載

    python斷點(diǎn)調(diào)試方法

    本文主要介紹了python斷點(diǎn)調(diào)試方法,pdb 是 python 自帶的一個(gè)包,為 python 程序提供了一種交互的源代碼調(diào)試功能,主要特性包括設(shè)置
    發(fā)表于 01-14 10:44 ?7281次閱讀
    python<b class='flag-5'>斷點(diǎn)</b><b class='flag-5'>調(diào)試</b>方法

    python程序調(diào)試設(shè)置條件斷點(diǎn)

    本文主要介紹了python程序調(diào)試設(shè)置條件斷點(diǎn)。實(shí)際開發(fā)中,調(diào)試代碼通常要花費(fèi)比新編寫代碼更多的時(shí)間,選擇合理的調(diào)試方法和工具對(duì)于程序工作
    發(fā)表于 01-14 11:39 ?6321次閱讀
    python程序<b class='flag-5'>調(diào)試</b>中<b class='flag-5'>設(shè)置</b>條件<b class='flag-5'>斷點(diǎn)</b>

    Keil軟件實(shí)驗(yàn)教程之Keil調(diào)試命令和在線匯編與斷點(diǎn)設(shè)置

    ,絕大部份的程序都要通過反復(fù)調(diào)試才能得到正確的結(jié)果,因此,調(diào)試是軟件開發(fā)中重要的一個(gè)環(huán)節(jié),這一講將介紹常用的調(diào)試命令、利用在線匯編、各種設(shè)置斷點(diǎn)
    發(fā)表于 07-15 16:47 ?11次下載
    <b class='flag-5'>Keil</b>軟件實(shí)驗(yàn)教程之<b class='flag-5'>Keil</b>的<b class='flag-5'>調(diào)試</b>命令和在線匯編與<b class='flag-5'>斷點(diǎn)</b><b class='flag-5'>設(shè)置</b>

    Keil調(diào)試命令和在線匯編與斷點(diǎn)設(shè)置

    ,絕大部份的程序都要通過反復(fù)調(diào)試才能得到正確的結(jié)果,因此,調(diào)試是軟件開發(fā)中重要的一個(gè)環(huán)節(jié),這一講將介紹常用的調(diào)試命令、利用在線匯編、各種設(shè)置斷點(diǎn)
    發(fā)表于 03-26 09:21 ?34次下載

    Keil調(diào)試命令和在線匯編與斷點(diǎn)設(shè)置

    ,絕大部份的程序都要通過反復(fù)調(diào)試才能得到正確的結(jié)果,因此,調(diào)試是軟件開發(fā)中重要的一個(gè)環(huán)節(jié),這一講將介紹常用的調(diào)試命令、利用在線匯編、各種設(shè)置斷點(diǎn)
    發(fā)表于 03-26 09:21 ?75次下載

    Segger的無限Flash斷點(diǎn)調(diào)試功能

    J-Link支持一項(xiàng)名為“無限Flash斷點(diǎn)”(Unlimited Flash Breakpoints)的調(diào)試功能?!盁o限Flash斷點(diǎn)”允許用戶在Flash中調(diào)試時(shí)
    的頭像 發(fā)表于 05-07 09:54 ?2064次閱讀

    Keil設(shè)置斷點(diǎn)高級(jí)用法

    跟上一步一樣,在Watch窗口,右擊變量選擇Set Access BreakPoint at xxx。勾選Access方式Read或Write,刪除Expression下原來的內(nèi)容,填寫表達(dá)式“AD== 10”。點(diǎn)擊Define。這樣當(dāng)AD==10時(shí)程序會(huì)停止。
    的頭像 發(fā)表于 05-10 14:17 ?4509次閱讀

    GDB調(diào)試里怎么設(shè)置斷點(diǎn)

    本篇講解使用GDB調(diào)試Linux應(yīng)用程序,以下以 hellowld.c 為例介紹 GDB 的調(diào)試入門: 設(shè)置斷點(diǎn) ??disable?????????????????#?禁用所有
    的頭像 發(fā)表于 10-04 16:10 ?1216次閱讀