第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

我可以在GDB中的'內(nèi)存訪問'上設(shè)置斷點嗎?

我可以在GDB中的'內(nèi)存訪問'上設(shè)置斷點嗎?

小唯快跑啊 2019-07-23 16:51:09
我可以在GDB中的'內(nèi)存訪問'上設(shè)置斷點嗎?我正在通過gdb運行應用程序,我想在訪問/更改特定變量的任何時候設(shè)置斷點。有這么好的方法嗎?我也有興趣用其他方法來監(jiān)視C / C ++中的變量,以查看它是否/何時發(fā)生變化。
查看完整描述

3 回答

?
ABOUTYOU

TA貢獻1812條經(jīng)驗 獲得超5個贊

手表上只寫符,rwatch讓你讀破發(fā),并awatch讓你打破的讀/寫。

您可以在內(nèi)存位置設(shè)置讀取觀察點:

gdb$ rwatch *0xfeedfaceHardware read watchpoint 2: *0xfeedface

但是一個限制適用于rwatch和awatch命令; 你不能在表達式中使用gdb變量:

gdb$ rwatch $ebx+0xec1a04fExpression cannot be implemented with read/access watchpoint.

所以你必須自己擴展它們:

gdb$ print $ebx $13 = 0x135700gdb$ rwatch *0x135700+0xec1a04fHardware read watchpoint 3: *0x135700 + 0xec1a04fgdb$ cHardware read watchpoint 3: *0x135700 + 0xec1a04fValue = 0xec34daf0x9527d6e7 in objc_msgSend ()

編輯:哦,順便說一下。您需要硬件或軟件支持。軟件顯然要慢得多。要了解您的操作系統(tǒng)是否支持硬件觀察點,您可以查看can-use-hw-watchpoints環(huán)境設(shè)置。

gdb$ show can-use-hw-watchpointsDebugger's willingness to use watchpoint hardware is 1.


查看完整回答
反對 回復 2019-07-23
?
Cats萌萌

TA貢獻1805條經(jīng)驗 獲得超9個贊

您正在尋找的是一個觀察點

用法

(gdb) watch foo:觀察變量的值 foo

(gdb) watch *(int*)0x12345678:觀察地址指向的值,按照您想要的任何類型

(gdb) watch a*b + c/d:觀看一個任意復雜的表達式,在程序的母語中有效

觀察點有三種:

  • watch寫入時gdb會中斷

  • rwatch:gdb會破壞讀取的發(fā)生

  • awatch:gdb在兩種情況下都會中斷

您可以選擇更適合您需求的產(chǎn)品。

有關(guān)更多信息,請查看信息。


查看完整回答
反對 回復 2019-07-23
?
慕后森

TA貢獻1802條經(jīng)驗 獲得超5個贊

我只是嘗試了以下內(nèi)容:

 $ cat gdbtest.c
 int abc = 43;
 int main()
 {
   abc = 10;
 }
 $ gcc -g -o gdbtest gdbtest.c
 $ gdb gdbtest
 ...
 (gdb) watch abc
 Hardware watchpoint 1: abc
 (gdb) r
 Starting program: /home/mweerden/gdbtest 
 ...
 Old value = 43
 New value = 10
 main () at gdbtest.c:6
 6       }
 (gdb) quit

所以看起來可能,但你確實需要一些硬件支持。


查看完整回答
反對 回復 2019-07-23
  • 3 回答
  • 0 關(guān)注
  • 1701 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號