既然軟體斷點是要往某個位址寫入斷點指令的,那麼最起碼該位址應該是可寫的吧?大多數時候,我們的程式是會被載入到記憶體(ram)中執行的,ram是可讀可寫,這時候軟體斷電就是有效的[2]。
但是,對於某些比較重要的程式,可能會直接在flash中執行,並且flash對使用者可能是唯讀的,這時候軟體斷點就沒有用了,因為沒辦法寫進斷點指令,此時必須依賴於硬體斷點。這就是軟體斷點和硬體斷點使用上的不同。
[1][2]
[3]
硬體斷點和軟體斷點
硬體斷點和軟體斷點 在嵌入式開發 經常用到 jtag 器。jtag 器可以滿足嵌入式程式除錯的基本要求 斷點設定 單步除錯 記憶體編輯 變數 暫存器觀測等。而斷點設定是 jtag 器最基本的除錯功能。使用者需要系統在設定斷點處停下來後再進行除錯。斷點根據原理和用途不同又分為幾個不同的種類。斷點可分為...
記憶體斷點和硬體斷點
32位邏輯位址 16位段選擇器 偏移位址 16位段選擇器 13位全域性描述符表 區域性描述符表索引 1位gdt ldtflag 2位的訪問控制許可權 由16位得到段選擇器索引到全域性描述符表得到64位的段描述符,段描述符中包含了線性段基址 線性段基址 偏移位址 邏輯位址後半段 得到線性位址空間的乙個...
OD硬體斷點,OD記憶體斷點,API斷點
一.設定硬體寫入斷點 9 i0 b m a8 8 w8 u f q q r w0 s,k9 h s.2 l w1 d8 r8 j a 0 v4 o r q at r p a l y h 在指定位址進行反 彙編 g m d q e d b,a l x x 7 l h.r d t8 k1 4 follo...