欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

iOS中怎么實現(xiàn)動態(tài)調(diào)試-創(chuàng)新互聯(lián)

本篇文章給大家分享的是有關(guān)iOS中怎么實現(xiàn)動態(tài)調(diào)試,小編覺得挺實用的,因此分享給大家學(xué)習(xí),希望大家閱讀完這篇文章后可以有所收獲,話不多說,跟著小編一起來看看吧。

創(chuàng)新互聯(lián)公司主營廣信網(wǎng)站建設(shè)的網(wǎng)絡(luò)公司,主營網(wǎng)站建設(shè)方案,App定制開發(fā),廣信h5成都小程序開發(fā)搭建,廣信網(wǎng)站營銷推廣歡迎廣信等地區(qū)企業(yè)咨詢

Xcode的動態(tài)調(diào)試原理

首先了解一下 Xcode 編譯和調(diào)試器的發(fā)展。Xcode 中的編譯器發(fā)展歷程:GCC -> LLVM,調(diào)試器的發(fā)展歷程:GDB -> LLDB 。

Xcode 調(diào)試安裝到手機上的應(yīng)用的原理:Xcode 通過 LLDB 調(diào)試器把調(diào)試指令發(fā)送到手機上的 debugserver, debugserver 再與相應(yīng)的 APP 進行交互,達(dá)到調(diào)試的效果。

debugserver 一開始是存放在Mac的Xcode里面,路徑:

/Applications/Xcode.app/Contents/Developer/Platforms
/iPhoneOS.platform/DeviceSupport
/9.1/DeveloperDiskImage.dmg
/usr/bin/debugserver

當(dāng) Xcode 識別到手機設(shè)備時,Xcode 會自動將 debugserver 安裝到手機上。

Xcode 調(diào)試的局限性:一般情況下,只能調(diào)試通過 Xcode 安裝的APP,無法調(diào)試其它APP。

給debugserver賦予權(quán)限

默認(rèn)情況下 /Developer/usr/bin/debugserver 缺少一定的權(quán)限,只能調(diào)試通過Xcode安裝的App,如果希望調(diào)試其它App,需要對 debugserver 重新簽名,簽上可以調(diào)試其它App的權(quán)限。

需要的兩個權(quán)限為:get-task-allow 和 task_for_pid-allow

iPhone上的 /Developer 目錄是只讀的,無法直接對 /Developer/usr/bin/debugserver 文件簽名,需要先把 debugserver 復(fù)制到Mac。

通過 ldid 命令導(dǎo)出文件以前的簽名權(quán)限:

$ ldid -e debugserver > debugserver.entitlements

debugserver.entitlements 這個文件其實是個 plist 文件,在這個文件中加上上面提到的兩個權(quán)限后,再通過 ldid 命令對文件重新簽名。

$ ldid -Sdebugserver.entitlements debugserver

然后將已經(jīng)簽好權(quán)限的 debugserver 放到 /usr/bin 目錄,便于找到 debugserver 指令。

debugserver附加到某個APP進程

$ debugserver *:端口號 -a 進程
  • *:端口號:使用iPhone的某個端口啟動debugserver服務(wù)(不是保留端口)

  • -a進程:輸入APP的進程信息(進程ID或者進程名稱)

Mac遠(yuǎn)程連接iPhone上的debugserver服務(wù)

啟動LLDB:

// 在終端輸入
$ lldb

連接debugserver服務(wù)

(lldb) process connect connect://手機IP地址:debugserver服務(wù)端口號

使用LLDB的c命令讓程序先繼續(xù)運行

(lldb) c

到此,就可以遠(yuǎn)程調(diào)試別人的App了。

常用的LLDB指令

給ViewController的test方法設(shè)置斷點

breakpoint set -n "-[ViewController test]"

查看指令用戶使用 help 指令: help breakpoint 等。

打印線程的堆棧信息: thread backtrace

很多命令不在這里贅述,請參考:http://lldb.llvm.org/lldb-gdb.html

ASLR

獲取 ASLR 的偏移量:

image list -o -f

打印結(jié)果的第二列前面的地址就是我們需要的 ASLR 的偏移量offset。

假如我們想給某個類中的test方法添加斷點,那么通過 Hooper 工具找到該方法的第一個內(nèi)存地址,假如為0x010101,然后地址加上我們得到的 ASLR 的偏移量就是該方法的實際地址。然后通過該地址給方法下斷點。

breakpoint set -o 0x010101+offset

以上就是iOS中怎么實現(xiàn)動態(tài)調(diào)試,小編相信有部分知識點可能是我們?nèi)粘9ぷ鲿姷交蛴玫降摹OM隳芡ㄟ^這篇文章學(xué)到更多知識。更多詳情敬請關(guān)注創(chuàng)新互聯(lián)網(wǎng)站建設(shè)公司行業(yè)資訊頻道。

另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)建站chinadenli.net,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機、免備案服務(wù)器”等云主機租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。

新聞名稱:iOS中怎么實現(xiàn)動態(tài)調(diào)試-創(chuàng)新互聯(lián)
分享網(wǎng)址:http://chinadenli.net/article38/cdoopp.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供自適應(yīng)網(wǎng)站軟件開發(fā)用戶體驗ChatGPT網(wǎng)站改版微信公眾號

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

成都定制網(wǎng)站網(wǎng)頁設(shè)計