亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 系統 > iOS > 正文

iOS Xcode匯編模式切換的方法介紹

2019-10-21 18:41:00
字體:
來源:轉載
供稿:網友

一、概念

 1.匯編指令 : 模擬器上運行的是Intel指令,而真機上運行的是arm指令,

 2.每條匯編指令的格式總是由: 操作碼, 操作數1,操作數2,操作數3組成。 操作數要么就是常數,要么就是寄存儲器,要么就是內存地址。你所看到的操作數中的RAX,RSI,RDI,R0,R1... 這些都是CPU中的寄存器(關于寄存器部分我將在下一篇文章中具體介紹)。而且在XCODE的左下角部分我們可以查看當前CPU中的所有寄存器的值,你可以打印并修改他們。

  每個函數方法的第一個地址,就是這個函數的入口地址,也就是說我們進行函數調用時,實際上是讓CPU跳轉到這個地址并執行,更加具體的就是將ip/pc寄存器的值設置為這個函數的入口地址。 對于OC類中的方法來說方法入口地址其實就是這個方法的IMP。

 3.斷點 :也稱中斷

  一般情況下CPU總是按照順序依次執行指令并完成任務,當正在執行某個任務時如果遇到了特殊事件或者更高優先級的任務時就需要打斷現有執行的代碼并去執行優先級更高的代碼,這種機制就是中斷。

 3.1 中斷:分硬中斷和軟中斷

       中斷有因為外部硬件設備事件而產生的硬中斷, 同時CPU也提供一個軟中斷指令。當在代碼里面執行一條軟終端指令時,程序就會暫停運行,同時CPU把操作權限提交給操作系統來執行中斷處理程序。

 4.斷點的實現原理

   當我們在程序某處設置了斷點或者某個指令處設置斷點時,系統會將斷點處的指令保存到一個臨時的斷點列表中,同時將斷點處的指令替換為軟中斷指令,這樣當程序運行到斷點處時因為執行的其實是軟中斷指令,而導致系統調用的發生,并執行軟中斷處理程序,軟中斷處理程序等待用戶處理斷點處的操作,比如當用戶按下的是鍵盤上的Ctrl + F7時,軟中斷處理程序就會把保存在臨時斷點列表中真實斷點處的指令恢復到指定的內存,同時把下次要執行的指令改為真實的指令,然后再次執行真實的指令,這樣就完成了斷點處指令的繼續執行。

 5.斷點的理論

  調試寄存器(DRx)的用處:

  1.設置發生斷點的地址(線性地址)

  2.設置斷點的長度(1,2,4個字節,但是執行斷點只能是1)

  3.設置在調試異常產生的地址執行的操作

  4.設置斷點是否可用

  5.在調試異常產生時,調試條件是否是可用

Intel80386以上的CPU提供了調試寄存器以用于軟件調試。386和486包括6個調試寄存器:Dr0,Dr1,Dr2,Dr3,Dr6和Dr7。這些寄存器全是32位,

 如下圖所示:

iOS,Xcode,匯編模式

 只要能使用Drx的斷點功能就可以配合SEH、調試API進行一些反跟蹤等,具體怎么用,取決于你自己了。

M_LE                         EQU01SHL08局部斷點精確相符M_GE

EQU M_LE     SHL01全局斷點精確相符;DRX accessM_GD

EQU M_BD              drx保護位置一即使在ring0也產生int1

如圖:

iOS,Xcode,匯編模式

總結: 調試斷點是通過調試寄存器實現的。

二、匯編模式下命令

 1.你只需要在XCODE的菜單:Debug -> Breakpoints -> Create Symbolic Breakpoint 或者快捷鍵:option + command + / 來建立符號斷點:

圖1:

iOS,Xcode,匯編模式

圖2:

iOS,Xcode,匯編模式

 2.* 匯編模式下

  fn + control + F7 :  指令單步執行,當遇到函數調用時會跳入函數內部。

  fn + control + F6:   指令單獨執行,當遇到函數調用時不會跳入函數內部。

 3.* 多線程之間的切換:

  control + shift + F7:  切換到當前線程,并執行單步指令。

  control  + shift + F6:  切換到當前線程,并跳轉到函數調用的者的下一條指令。 

 4.* lldb命令行

expr   變量|表達式//顯示變量或者表達式的值。

expr -f h --  變量|表達式 //以16進制格式顯示變量或表達式的內容

expr -f b --  變量|表達式//以二進制格式顯示變量或者表達式的內容。

expr -o --  oc對象 //等價于po  oc對象

   expr -P  3 -- oc對象//上面命令的加強版本,他還會顯示出對象內數據成員的結構,具體的P后面的數字就是你要想顯示的層次。

expr my_struct->a = my_array[3]//給my_struct的a成員賦值。

expr (char*)_cmd//顯示某個oc方法的方法名。

expr (IMP)[self methodForSelector:_cmd]//執行某個方法調用.

圖3:

iOS,Xcode,匯編模式

三、查看內存地址

 1.Debug -> Debug Workflow -> View Memory 或者通過快捷鍵:shift+command + m 來調用內存查看界面:

圖4:

iOS,Xcode,匯編模式

圖5:

iOS,Xcode,匯編模式

注意一點的是: 因為內存地址是從低位按字節依次排列而來,所以對于比如int類型的值的讀取我們就要從高位到低位開始讀取。

總結

以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,如果有疑問大家可以留言交流,謝謝大家對VEVB武林網的支持。


注:相關教程知識閱讀請移步到IOS開發頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
97视频在线观看免费高清完整版在线观看| 国产精品美女www爽爽爽视频| 97国产真实伦对白精彩视频8| 欧美成人精品一区二区三区| 亚洲美女免费精品视频在线观看| 中文字幕久久久av一区| 高清日韩电视剧大全免费播放在线观看| 国产精欧美一区二区三区| 国产欧美日韩高清| 中文字幕欧美视频在线| 黑人欧美xxxx| 亚洲精品丝袜日韩| 亚洲精品久久久久久久久| 亚洲va久久久噜噜噜| 久久久国产精品视频| 久久久久久久亚洲精品| 狠狠色狠狠色综合日日五| 欧美激情亚洲精品| 久久99精品久久久久久噜噜| 日韩av免费在线播放| 狠狠躁夜夜躁人人爽天天天天97| 在线亚洲欧美视频| 夜夜嗨av色一区二区不卡| 久久噜噜噜精品国产亚洲综合| 91成人天堂久久成人| 亚洲人成绝费网站色www| 日本一区二区在线播放| 亚洲精品美女久久久| 久久人人爽国产| 亚洲高清久久网| 丝袜亚洲欧美日韩综合| 欧美做爰性生交视频| 九九热最新视频//这里只有精品| 在线视频国产日韩| 91免费精品视频| 色悠悠久久久久| 精品亚洲国产视频| 欧美性黄网官网| 成人福利在线视频| 欧美午夜影院在线视频| 久久视频中文字幕| 北条麻妃一区二区三区中文字幕| 国产精品尤物福利片在线观看| 精品国产精品三级精品av网址| 国产丝袜精品第一页| 亚洲v日韩v综合v精品v| www国产亚洲精品久久网站| 亚洲最新av在线网站| 97国产真实伦对白精彩视频8| 亚洲开心激情网| 久久久精品国产亚洲| 国产日韩在线精品av| 欧美乱人伦中文字幕在线| 91精品国产91| 欧美性猛交xxxx偷拍洗澡| 91久久精品久久国产性色也91| 亚洲精品少妇网址| 日韩欧美在线国产| 国产欧美久久一区二区| 91精品国产色综合久久不卡98| 亚洲码在线观看| 在线不卡国产精品| 亚洲欧美国产日韩中文字幕| 日韩精品免费观看| 91日本在线视频| 亚洲人成欧美中文字幕| 欧美性受xxx| 中文字幕在线日韩| 国产91网红主播在线观看| 亚洲成人精品久久久| 亚洲色图18p| 日韩电影中文 亚洲精品乱码| 欧美激情第1页| 国产成人综合一区二区三区| 亚洲精品一区在线观看香蕉| 一区二区三区国产视频| 欧美精品激情在线| 亚洲国产私拍精品国模在线观看| 日韩av免费在线观看| 亚洲欧美制服第一页| 国产成人jvid在线播放| 国产一区二区av| 亚洲久久久久久久久久久| 亚洲自拍偷拍福利| 成人激情视频在线播放| 在线免费观看羞羞视频一区二区| 亚洲欧美日韩精品久久亚洲区| 日本韩国在线不卡| 国产午夜一区二区| 欧美日韩色婷婷| 91精品视频观看| 精品国产一区二区三区四区在线观看| 日韩免费av片在线观看| 国色天香2019中文字幕在线观看| 91九色视频在线| 精品福利在线视频| 欧美激情一区二区三区久久久| 国产精品va在线播放我和闺蜜| 国产精品日韩在线| 国产裸体写真av一区二区| 亚洲欧洲中文天堂| 久久久中文字幕| 国产日韩精品一区二区| 亚洲日韩欧美视频一区| 555www成人网| 中文字幕一精品亚洲无线一区| 色综合久久中文字幕综合网小说| 亚洲一区二区中文字幕| 91精品视频在线播放| 欧美另类69精品久久久久9999| 欧美一级成年大片在线观看| 亚洲国产精品成人va在线观看| 亚洲精品国产精品国产自| 国产香蕉精品视频一区二区三区| 黄色一区二区三区| 国产亚洲精品久久久| 最近2019中文免费高清视频观看www99| 国产精品日韩欧美综合| 永久555www成人免费| 欧美日韩国产综合视频在线观看中文| 深夜精品寂寞黄网站在线观看| 久久男人的天堂| 成人免费高清完整版在线观看| 亚洲国产高清福利视频| 亚洲国产精品一区二区三区| 欧美成人免费全部观看天天性色| 国产精品999| 欧美亚洲一区在线| 91影视免费在线观看| 91国产精品视频在线| 9.1国产丝袜在线观看| 亚洲国产美女精品久久久久∴| 国产精品影片在线观看| 91美女片黄在线观看游戏| 欧美日韩成人黄色| 丝袜亚洲另类欧美重口| 国产在线不卡精品| 国产一区二区免费| 亚洲无线码在线一区观看| 久久久久久久久爱| 2019最新中文字幕| 亚洲欧美在线免费观看| 精品久久香蕉国产线看观看gif| 日本高清不卡在线| 黑人精品xxx一区| 精品视频久久久久久| 中文字幕综合一区| 疯狂做受xxxx欧美肥白少妇| 欧美区在线播放| 国产亚洲精品一区二555| 中文字幕在线精品| 中文字幕av一区二区三区谷原希美| 欧美大片在线看| 欧日韩在线观看| 在线看日韩av| 国产精品普通话| 欧洲美女7788成人免费视频| 亚洲欧美国产日韩中文字幕| 91av免费观看91av精品在线| 性色av一区二区三区免费| 中文字幕在线成人| 中文字幕亚洲欧美一区二区三区| 日韩精品高清在线观看| 亚洲国产精品国自产拍av秋霞|