動(dòng)態(tài)調(diào)試

Xcode動(dòng)態(tài)調(diào)試原理

動(dòng)態(tài)調(diào)試就是將程序運(yùn)行起來(lái),通過(guò)下斷點(diǎn)、打印等方式查看參數(shù)十性、返回值、函數(shù)調(diào)用流程等塑悼。

Xcode的調(diào)試器發(fā)展歷程:GDB -> LLDB ,LLDB 是基于GDB開(kāi)發(fā)的劲适。

動(dòng)態(tài)調(diào)試原理

debugserver 是配合LLDB做動(dòng)態(tài)調(diào)試必不可少的程序,必須將debugserver放入到手機(jī)中才能起作用厢蒜。當(dāng)Xcode識(shí)別到手機(jī)設(shè)備時(shí)霞势,Xcode會(huì)自動(dòng)將debugserver安裝到iphone上 /Developer/usr/bin/debugserver ,該bin目錄下的文件是只讀的,不能修改斑鸦。

debugserver在iPhone的路徑

Xcode真機(jī)調(diào)試流程:

1.Xcode打開(kāi)項(xiàng)目愕贡;

2.通過(guò)數(shù)據(jù)線鏈接手機(jī);

3.在需要的地方添加斷點(diǎn)巷屿;

4.點(diǎn)擊run,將程序跑到手機(jī)上固以;

Xcode會(huì)自動(dòng)將LLDB連接到手機(jī)上的debugserver上,debugserver也會(huì)與當(dāng)前運(yùn)行程序建立鏈接嘱巾。
LLDB下發(fā)指令傳輸?shù)绞謾C(jī)上的debugserver憨琳,debugserver通過(guò)監(jiān)聽(tīng)APP運(yùn)行進(jìn)程下發(fā)指令,APP執(zhí)行了命令后將結(jié)果返回debugserver浓冒,debugserver再傳輸給LLDB栽渴,最總有LLDB將結(jié)果打印在控制臺(tái)上尖坤。

Xcode動(dòng)態(tài)調(diào)試的局限性:只能調(diào)試通過(guò)Xcode安裝的APP稳懒。

動(dòng)態(tài)調(diào)試任意APP

動(dòng)態(tài)調(diào)試任意APP原理

1.制作調(diào)試任意APP的debugserver,Xcode幫我們自動(dòng)生成的只能調(diào)試Xcode運(yùn)行的APP,不能調(diào)試其他的APP场梆。將手機(jī)/Developer/usr/bin/中的debugserver拷貝到桌面墅冷。

2.對(duì)debugserver進(jìn)行權(quán)限簽名,需要添加能夠調(diào)試任意APP的權(quán)限或油。

3.使用ldid 導(dǎo)出debugserver的權(quán)限文件并添加權(quán)限寞忿。

ldid -e debugserver > debugserver.entitlements
//將下面2個(gè)權(quán)限添加到debugserver.entitlements中
get-task-allow   : YES
task_for_pid-allow    :   YES 

4.使用ldid 進(jìn)行對(duì)添加的權(quán)限簽名,然后將簽名后的debugserver拷貝到手機(jī)的/usr/bin目錄下

ldid -Sdebugserver.entitlements debugserver

5.debugserver 監(jiān)聽(tīng)微信APP 進(jìn)程
debugserver *:10011 -a WeChat

6.連接debugserver服務(wù)

(lldb) process connect connect://手機(jī)IP地址:debugserver服務(wù)端口號(hào)
# 使用Python 腳本去映射
# 這里用的是手機(jī)的10011端口映射電腦的10011端口, 這樣就可以直接使用電腦的10011端口了
process connect connect://localhost:10011
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末顶岸,一起剝皮案震驚了整個(gè)濱河市腔彰,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌辖佣,老刑警劉巖霹抛,帶你破解...
    沈念sama閱讀 212,718評(píng)論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異卷谈,居然都是意外死亡杯拐,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,683評(píng)論 3 385
  • 文/潘曉璐 我一進(jìn)店門世蔗,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)端逼,“玉大人,你說(shuō)我怎么就攤上這事污淋《ヌ玻” “怎么了?”我有些...
    開(kāi)封第一講書人閱讀 158,207評(píng)論 0 348
  • 文/不壞的土叔 我叫張陵寸爆,是天一觀的道長(zhǎng)诲祸。 經(jīng)常有香客問(wèn)我,道長(zhǎng)而昨,這世上最難降的妖魔是什么救氯? 我笑而不...
    開(kāi)封第一講書人閱讀 56,755評(píng)論 1 284
  • 正文 為了忘掉前任,我火速辦了婚禮歌憨,結(jié)果婚禮上着憨,老公的妹妹穿的比我還像新娘。我一直安慰自己务嫡,他們只是感情好甲抖,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,862評(píng)論 6 386
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著心铃,像睡著了一般准谚。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上去扣,一...
    開(kāi)封第一講書人閱讀 50,050評(píng)論 1 291
  • 那天柱衔,我揣著相機(jī)與錄音,去河邊找鬼。 笑死唆铐,一個(gè)胖子當(dāng)著我的面吹牛哲戚,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播艾岂,決...
    沈念sama閱讀 39,136評(píng)論 3 410
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼顺少,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了王浴?” 一聲冷哼從身側(cè)響起脆炎,我...
    開(kāi)封第一講書人閱讀 37,882評(píng)論 0 268
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎氓辣,沒(méi)想到半個(gè)月后腕窥,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,330評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡筛婉,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,651評(píng)論 2 327
  • 正文 我和宋清朗相戀三年簇爆,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片爽撒。...
    茶點(diǎn)故事閱讀 38,789評(píng)論 1 341
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡入蛆,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出硕勿,到底是詐尸還是另有隱情哨毁,我是刑警寧澤,帶...
    沈念sama閱讀 34,477評(píng)論 4 333
  • 正文 年R本政府宣布源武,位于F島的核電站扼褪,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏粱栖。R本人自食惡果不足惜话浇,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 40,135評(píng)論 3 317
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望闹究。 院中可真熱鬧幔崖,春花似錦、人聲如沸渣淤。這莊子的主人今日做“春日...
    開(kāi)封第一講書人閱讀 30,864評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)价认。三九已至嗅定,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間用踩,已是汗流浹背渠退。 一陣腳步聲響...
    開(kāi)封第一講書人閱讀 32,099評(píng)論 1 267
  • 我被黑心中介騙來(lái)泰國(guó)打工忙迁, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人智什。 一個(gè)月前我還...
    沈念sama閱讀 46,598評(píng)論 2 362
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像丁屎,于是被迫代替她去往敵國(guó)和親荠锭。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,697評(píng)論 2 351

推薦閱讀更多精彩內(nèi)容

  • 動(dòng)態(tài)調(diào)試 一晨川、什么是動(dòng)態(tài)調(diào)試 動(dòng)態(tài)調(diào)試就是將程序運(yùn)行起來(lái)证九,通過(guò)打斷點(diǎn)、打印等方式共虑,查看參數(shù)愧怜、返回值、函數(shù)調(diào)用流程等...
    冰風(fēng)v落葉閱讀 3,745評(píng)論 0 3
  • 了解一下xcode的調(diào)試app的原理: 我們xcode的調(diào)試原理是:首先mac電腦上會(huì)裝有l(wèi)ldb的這個(gè)調(diào)試器妈拌,他...
    目前運(yùn)行時(shí)閱讀 1,106評(píng)論 1 4
  • 一拥坛、前言 動(dòng)態(tài)調(diào)試就是在我們的程序運(yùn)行之時(shí),通過(guò)下斷點(diǎn)尘分、打印等一系列方式查看參數(shù)猜惋、返回值、函數(shù)調(diào)用流程等等培愁。不僅是...
    張聰_2048閱讀 5,198評(píng)論 1 1
  • 一著摔、什么是動(dòng)態(tài)調(diào)試? 答:將程序運(yùn)行起來(lái)定续,通過(guò)打斷點(diǎn)谍咆、打印等方式,查看參數(shù)私股,返回值摹察,函數(shù)調(diào)用流程等 二、Xcode...
    IIronMan閱讀 885評(píng)論 0 2
  • 將程序運(yùn)行起來(lái)倡鲸,通過(guò)打斷點(diǎn)港粱,打印等方式,查看參數(shù)旦签、返回值查坪、函數(shù)調(diào)用等流程等。 一宁炫、xcode的動(dòng)態(tài)調(diào)試原理 首先偿曙,...
    伶俐ll閱讀 243評(píng)論 0 0