LLDB 調(diào)試工具Chisel兼容Xcode11

2020年9月更新:
由于Chisel官方已更新,可以使用官方的更新來(lái)解決問(wèn)題了:

brew upgrade chisel

以下是2019原文:
Chisel是Facebook出品的(一個(gè)灰常強(qiáng)大的)LLDB命令的集合牛欢,用于幫助調(diào)試iOS應(yīng)用程序

在Xcode11上脚曾,Chisel初始化時(shí)會(huì)報(bào)錯(cuò):

error: module importing failed: Missing parentheses in call to 'print'. Did you mean print('Whoops! You are missing the <' + arg.argName + '> argument.')? (fblldb.py, line 98)
  File "temp.py", line 1, in <module>
  File "/Applications/Xcode.app/Contents/Developer/Library/Frameworks/Python3.framework/Versions/3.7/lib/python3.7/importlib/__init__.py", line 169, in reload
    _bootstrap._exec(spec, module)
  File "<frozen importlib._bootstrap>", line 630, in _exec
  File "<frozen importlib._bootstrap_external>", line 724, in exec_module
  File "<frozen importlib._bootstrap_external>", line 860, in get_code
  File "<frozen importlib._bootstrap_external>", line 791, in source_to_code
  File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed

這是由于最新的lldb基于Python3倦卖,從錯(cuò)誤日志可以看到加載的是Xcode.app內(nèi)置的python3.7

根據(jù)Xcode 11 Beta發(fā)行說(shuō)明

LLDB的Python腳本現(xiàn)在基于Python3杉适。如果您使用的是與Python 3不兼容的Python擴(kuò)展帖烘,它們將會(huì)中斷。為了幫助過(guò)渡茅糜,您可以通過(guò)設(shè)置默認(rèn)值以Python 2模式運(yùn)行:

默認(rèn)設(shè)置為com.apple.dt.lldb DefaultPythonVersion 2
將來(lái)將刪除對(duì)Python 2的支持七芭。(47806994)

解決辦法1:
讓lldb使用python2(不推薦,畢竟用新不用舊):
打開(kāi)終端蔑赘,輸入:

defaults write com.apple.dt.lldb DefaultPythonVersion 2

解決辦法2:
修改源碼使其兼容Python3狸驳,這里有個(gè)小哥已經(jīng)兼容了Python3,可以用腳本快速拷貝到

#注意缩赛,我是用brew安裝的(brew install chisel)耙箍,所以chisel所在的路徑是/usr/local/Cellar/chisel/1.8.1,如果你的此路徑下面沒(méi)文件峦筒,請(qǐng)改成你自己chisel所在的路徑
cd ~/Downloads && git clone https://github.com/chenjiangchuan/chisel.git && cd chisel &&cp -f -R -v libexec /usr/local/Cellar/chisel/1.8.1

安裝過(guò)程忽略究西,常見(jiàn)用法(更多請(qǐng)去官方GitHub查看)

Command 作用(描述) iOS OS X
pviews 打印key window的遞歸視圖描述 Yes Yes
pvc 打印key window的遞歸視圖控制器描述 Yes No
visualize 在Mac上的預(yù)覽App中打開(kāi)UIImage,CGImageRef等圖像
fv 在層次結(jié)構(gòu)中查找其類名與提供的正則表達(dá)式匹配的視圖
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末物喷,一起剝皮案震驚了整個(gè)濱河市卤材,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌峦失,老刑警劉巖扇丛,帶你破解...
    沈念sama閱讀 206,839評(píng)論 6 482
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異尉辑,居然都是意外死亡帆精,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,543評(píng)論 2 382
  • 文/潘曉璐 我一進(jìn)店門隧魄,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)卓练,“玉大人,你說(shuō)我怎么就攤上這事购啄〗笃螅” “怎么了?”我有些...
    開(kāi)封第一講書人閱讀 153,116評(píng)論 0 344
  • 文/不壞的土叔 我叫張陵狮含,是天一觀的道長(zhǎng)顽悼。 經(jīng)常有香客問(wèn)我,道長(zhǎng)几迄,這世上最難降的妖魔是什么蔚龙? 我笑而不...
    開(kāi)封第一講書人閱讀 55,371評(píng)論 1 279
  • 正文 為了忘掉前任,我火速辦了婚禮映胁,結(jié)果婚禮上木羹,老公的妹妹穿的比我還像新娘。我一直安慰自己屿愚,他們只是感情好汇跨,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,384評(píng)論 5 374
  • 文/花漫 我一把揭開(kāi)白布务荆。 她就那樣靜靜地躺著,像睡著了一般穷遂。 火紅的嫁衣襯著肌膚如雪函匕。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書人閱讀 49,111評(píng)論 1 285
  • 那天蚪黑,我揣著相機(jī)與錄音盅惜,去河邊找鬼。 笑死忌穿,一個(gè)胖子當(dāng)著我的面吹牛抒寂,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播掠剑,決...
    沈念sama閱讀 38,416評(píng)論 3 400
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼屈芜,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了朴译?” 一聲冷哼從身側(cè)響起井佑,我...
    開(kāi)封第一講書人閱讀 37,053評(píng)論 0 259
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎眠寿,沒(méi)想到半個(gè)月后躬翁,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 43,558評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡盯拱,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,007評(píng)論 2 325
  • 正文 我和宋清朗相戀三年盒发,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片狡逢。...
    茶點(diǎn)故事閱讀 38,117評(píng)論 1 334
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡宁舰,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出奢浑,到底是詐尸還是另有隱情明吩,我是刑警寧澤,帶...
    沈念sama閱讀 33,756評(píng)論 4 324
  • 正文 年R本政府宣布殷费,位于F島的核電站,受9級(jí)特大地震影響低葫,放射性物質(zhì)發(fā)生泄漏详羡。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,324評(píng)論 3 307
  • 文/蒙蒙 一嘿悬、第九天 我趴在偏房一處隱蔽的房頂上張望实柠。 院中可真熱鬧,春花似錦善涨、人聲如沸窒盐。這莊子的主人今日做“春日...
    開(kāi)封第一講書人閱讀 30,315評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)蟹漓。三九已至炕横,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間葡粒,已是汗流浹背份殿。 一陣腳步聲響...
    開(kāi)封第一講書人閱讀 31,539評(píng)論 1 262
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留嗽交,地道東北人卿嘲。 一個(gè)月前我還...
    沈念sama閱讀 45,578評(píng)論 2 355
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像夫壁,于是被迫代替她去往敵國(guó)和親拾枣。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,877評(píng)論 2 345

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

  • 你是否曾經(jīng)苦惱于理解你的代碼盒让,而去嘗試打印一個(gè)變量的值梅肤? NSLog(@"%@", whatIsInsideThi...
    paraneaeee閱讀 1,184評(píng)論 0 7
  • 你是否曾經(jīng)苦惱于理解你的代碼,而去嘗試打印一個(gè)變量的值糯彬? NSLog(@"%@", whatIsInsideThi...
    木易林1閱讀 954評(píng)論 0 4
  • 相信大家肯定都有過(guò)為了調(diào)試而添加打印變量凭语,或者使用直接常量代替函數(shù)調(diào)用結(jié)果,或者更改判斷條件以進(jìn)入某特定分支的調(diào)試...
    縱橫而樂(lè)閱讀 1,944評(píng)論 0 3
  • 你是否曾經(jīng)苦惱于理解你的代碼撩扒,而去嘗試打印一個(gè)變量的值似扔? NSLog(@"%@", whatIsInsideThi...
    我是啊梁閱讀 801評(píng)論 1 1
  • 與調(diào)試器共舞 - LLDB 的華爾茲 nangege 2014/12/19 你是否曾經(jīng)苦惱于理解你的代碼,而去嘗試...
    McDan閱讀 881評(píng)論 0 0