Chisel介紹

安裝

在終端輸入命令

brew update
brew install chisel

如果沒(méi)有安裝brew的話肝匆,會(huì)報(bào)出-bash: brew: command not found錯(cuò)誤匹中,需要先安裝brew

/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

然后參照終端上輸出的

Add the following line to ~/.lldbinit to load chisel when Xcode launches: 
command script import /usr/local/opt/chisel/libexec/fblldb.py

command script import /usr/local/opt/chisel/libexec/fblldb.py添加到~/.lldbinit中(如果沒(méi)有使用命令touch ~/.lldbinit創(chuàng)建)恰画,然后重啟Xcode才能使用chisel傀顾。

重啟Xcode后靡羡,通過(guò)help命令可以看到多出了很多新的命令犀盟,就是chisel中的

Current user-defined commands:

  alamborder   -- For more information run 'help alamborder'
  alamunborder -- For more information run 'help alamunborder'
  binside      -- For more information run 'help binside'
  bmessage     -- For more information run 'help bmessage'
  border       -- For more information run 'help border'
  caflush      -- For more information run 'help caflush'
  dcomponents  -- For more information run 'help dcomponents'
  eobjc        -- For more information run 'help eobjc'
  eswift       -- For more information run 'help eswift'
  fa11y        -- For more information run 'help fa11y'
  flicker      -- For more information run 'help flicker'
  fv           -- For more information run 'help fv'
  fvc          -- For more information run 'help fvc'
  hide         -- For more information run 'help hide'
  mask         -- For more information run 'help mask'
  mwarning     -- For more information run 'help mwarning'
  pa11y        -- For more information run 'help pa11y'
  pactions     -- For more information run 'help pactions'
  paltrace     -- For more information run 'help paltrace'
  panim        -- For more information run 'help panim'
  pca          -- For more information run 'help pca'
  pcells       -- For more information run 'help pcells'
  pclass       -- For more information run 'help pclass'
  pcomponents  -- For more information run 'help pcomponents'
  pcurl        -- For more information run 'help pcurl'
  pdata        -- For more information run 'help pdata'
  pdocspath    -- For more information run 'help pdocspath'
  pinternals   -- For more information run 'help pinternals'
  pinvocation  -- For more information run 'help pinvocation'
  pivar        -- For more information run 'help pivar'
  pjson        -- For more information run 'help pjson'
  pkp          -- For more information run 'help pkp'
  pmethods     -- For more information run 'help pmethods'
  pobjc        -- For more information run 'help pobjc'
  poobjc       -- For more information run 'help poobjc'
  poswift      -- For more information run 'help poswift'
  presponder   -- For more information run 'help presponder'
  pswift       -- For more information run 'help pswift'
  ptv          -- For more information run 'help ptv'
  pvc          -- For more information run 'help pvc'
  pviews       -- For more information run 'help pviews'
  rcomponents  -- For more information run 'help rcomponents'
  show         -- For more information run 'help show'
  slowanim     -- For more information run 'help slowanim'
  taplog       -- For more information run 'help taplog'
  unborder     -- For more information run 'help unborder'
  unmask       -- For more information run 'help unmask'
  unslowanim   -- For more information run 'help unslowanim'
  visualize    -- For more information run 'help visualize'
  vs           -- For more information run 'help vs'
  wivar        -- For more information run 'help wivar'

For more information on any command, type 'help <command-name>'.

常用命令介紹

alamborder&alamunborder

如果給一個(gè)view添加了約束拣度,但是該約束不足以確定它的位置碎绎,使用alamborder命令可以給其添加邊框,常使用autolayout的話抗果,該命令會(huì)很實(shí)用筋帖。通過(guò)help alamborder 可以看到它的語(yǔ)法是Syntax: alamborder [--color=color] [--width=width]顏色默認(rèn)是紅色,寬度2冤馏,我試了幾次alamborder [--color=green][--width=2]發(fā)現(xiàn)顏色和寬度都是默認(rèn)的日麸,也沒(méi)研究出來(lái)是哪里出錯(cuò)了。

例子逮光,我給一個(gè)button添加了約束

    UIButton *btn = [UIButton buttonWithType:UIButtonTypeCustom];
    btn.backgroundColor = [UIColor grayColor];
    [btn setTitle:@"按鈕" forState:UIControlStateNormal];
    [btn addTarget:self action:@selector(btnClicked:) forControlEvents:UIControlEventTouchUpInside];
    [self.view addSubview:btn];
    
    [btn mas_makeConstraints:^(MASConstraintMaker *make) {
        make.top.offset(10);
        make.height.equalTo(@(50));
    }];

可以看到約束不能確定button的x點(diǎn)和寬度代箭,使用alamborder命令,即可看到button被添加了紅色的邊框涕刚,同時(shí)UIWindow的也被加了邊框嗡综,好像是只要存在子view約束不完整,UIWindow也會(huì)被加上邊框杜漠。

效果如下圖:


Simulator Screen Shot 2016年5月30日 上午11.12.51.png

alamunborder和alamborder相反极景,該命令用于把a(bǔ)lamborder設(shè)置的邊框去掉

bmessage

給某個(gè)方法手動(dòng)添加一個(gè)斷點(diǎn),你可能會(huì)說(shuō)驾茴,加斷點(diǎn)不用這么麻煩盼樟,我們平時(shí)加斷點(diǎn)Xcode中左側(cè)點(diǎn)擊不就OK了嗎,但是如果這個(gè)方法我們并沒(méi)有實(shí)現(xiàn)呢锈至,如下面這個(gè)例子晨缴,SecondVC中的viewWillAppear:病沒(méi)有實(shí)現(xiàn),現(xiàn)在輸入bmessage [SecondVC viewWillAppear:]命令添加斷點(diǎn)裹赴,會(huì)給SecondVC父類的viewWillAppear:方法添加斷點(diǎn)喜庞,并且子類是SecondVC的時(shí)候才生效。

(lldb) bmessage [SecondVC viewWillAppear:]
Setting a breakpoint at -[UIViewController viewWillAppear:] with condition (void*)object_getClass((id)$rdi) == 0x000000010835eb80
Breakpoint 2: where = UIKit`-[UIViewController viewWillAppear:], address = 0x000000010934f899

現(xiàn)在進(jìn)入SecondVC棋返,斷點(diǎn)生效了

4F15E8E6-EED2-4AF4-88FF-800A50A90A49.png

border&unborder

先通過(guò)help border來(lái)看一下border的說(shuō)明和語(yǔ)法延都,功能是可以給view設(shè)置邊框顏色和寬度及其設(shè)置的層級(jí)深度,語(yǔ)法如下:

Syntax: border [--color=color] [--width=width] [--depth=depth] <viewOrLayer>

color:邊框顏色(只能是black gray red green blue cyan yellow magenta orange purple brown這幾種睛竣,否則會(huì)報(bào)錯(cuò))

width:邊框粗細(xì)

depth:層級(jí)深度(depth為0時(shí)晰房,只設(shè)置view本身,其他值則設(shè)置view及更深層級(jí)的子view)

如下例子射沟,我們給self.view及其1殊者、2層級(jí)下的子view設(shè)置紅色邊框

(lldb) border -c red -w 2 -d 2 self.view

效果是這樣的


Simulator Screen Shot 2016年5月30日 下午2.55.08.png

self.view的邊框是我們?cè)O(shè)置的紅色,但是層級(jí)下的邊框顏色都是隨機(jī)的验夯,應(yīng)該是為了防止view較多且有重合的時(shí)候無(wú)法分辨區(qū)域吧猖吴。另外我們也可以通過(guò)暫停程序,輸入pview命令拿到view的地址挥转,直接操作view的地址海蔽。

相反的,unborder就是取消設(shè)置邊框绑谣,命令后只需要加view和層級(jí)深度這兩個(gè)參數(shù)即可党窜,如:(lldb) unborder self.view -d 2參數(shù)的順序可以不分先后。

fv&fvc

fvfvc這兩個(gè)命令是用來(lái)通過(guò)類名搜索當(dāng)前內(nèi)存中所存在的view和VC實(shí)例的借宵,支持正則搜索幌衣,如果正則表達(dá)式語(yǔ)法掌握很好的話,會(huì)很方便壤玫。

(lldb) fv button
0x7f8d61515900 UIButton
0x7f8d6175b820 UIButtonLabel
(lldb) fvc second
0x7f8d617699e0 SecondVC

hide&show

hide和show命令用于隱藏和顯示一個(gè)view豁护,應(yīng)用場(chǎng)景還是很常見(jiàn)的,想隱藏一個(gè)view看一下效果垦细,使用hide命令择镇,然后可以再使用show命令顯示

(lldb) hide 0x7f8d6151bfc0
(lldb) show 0x7f8d6151bfc0

mask&unmask

mask命令是為一個(gè)view添加一個(gè)覆蓋層(經(jīng)試驗(yàn),覆蓋層的顏色是隨機(jī)的)括改,目的也是為了看到某個(gè)view的布局腻豌;unmask功能相反

下面的命令就是給正方形的view和導(dǎo)航欄添加一個(gè)覆蓋層

(lldb) mask 0x7f8d6151bfc0
(lldb) mask 0x7f8d61430340

效果圖:

390247E5-2350-4988-ADC1-314F428ADDB6.png

pcells

pcells命令可以打印層級(jí)最高的tableview當(dāng)前可見(jiàn)的所有cell,比如我在金融首頁(yè)打印嘱能,結(jié)果如下:

(lldb) pcells
<__NSArrayI 0x7fc682dc4740>(
<GMCJRMYBInfCell: 0x7fc683047a00; baseClass = UITableViewCell; frame = (0 263.094; 375 155); autoresize = W; layer = <CALayer: 0x7fc6856a67c0>>,
<GMCJXVipInfCell: 0x7fc683872a00; baseClass = UITableViewCell; frame = (0 478.094; 375 69); autoresize = W; layer = <CALayer: 0x7fc6857aaa10>>,
<GMCJXVipInfCell: 0x7fc68497aa00; baseClass = UITableViewCell; frame = (0 547.094; 375 69); autoresize = W; layer = <CALayer: 0x7fc685866680>>
)

pclass

pclass可以打印出一個(gè)對(duì)象的繼承關(guān)系吝梅,如下,打印出0x7f8d6142e0c0對(duì)象的繼承類的關(guān)系惹骂。

(lldb) pclass 0x7f8d6142e0c0
ViewController
   | UIViewController
   |    | UIResponder
   |    |    | NSObject

pcurl

以cur命令的形式打印NSURLRequest對(duì)象苏携,如下,初始化一個(gè)NSURLRequest對(duì)象对粪,并用pcurl打印

NSURL *url = [NSURL URLWithString:@"http://www.baidu.com"];
request_ = [[NSURLRequest alloc] initWithURL:url];
(lldb) pcurl request_
curl -X GET --connect-timeout 60 "http://www.baidu.com"

從結(jié)果中我們可以看出該請(qǐng)求的請(qǐng)求方式是GET右冻,超時(shí)時(shí)間是60s装蓬,urlhttp://www.baidu.com

pdata

解碼打印一個(gè)NSData對(duì)象,相當(dāng)于調(diào)用[NSString initWithData:encoding:]纱扭,語(yǔ)法Syntax: pdata [--encoding=encoding] <data>牍帚,命令后跟的是編碼方式,默認(rèn)是utf8乳蛾,實(shí)例如下:

_strDemo = @"今天是個(gè)好天氣";
dataDemo_ = [_strDemo dataUsingEncoding:NSUTF8StringEncoding];
(lldb) pdata dataDemo_
今天是個(gè)好天氣

pdocspath

打印應(yīng)用程序的Documents目錄路徑暗赶,語(yǔ)法是Syntax: pdocspath [--open],如果加了—open(-o)肃叶,相當(dāng)于open in Finder蹂随,會(huì)在文件目錄中打開(kāi),這點(diǎn)還是比較實(shí)用的因惭。

(lldb) pdocspath -o
/Users/zhangbeibei/Library/Developer/CoreSimulator/Devices/70D5098B-52A0-441C-997E-DFB49567A80A/data/Containers/Data/Application/759F42BD-F267-4B9C-8816-3D9397EAB31C/Documents
D0882BA1-B02E-429C-B7D7-D70421E87743.png

pinternals

pinternals用來(lái)打印對(duì)象的成員變量岳锁,可以看到自定義的成員變量被打印出來(lái)了,但是系統(tǒng)自帶的屬性如view等并未打印

(lldb) pinternals self
(ViewController) $14 = {
  UIViewController = {
    UIResponder = {
      NSObject = {
        isa = ViewController
      }
    }
  }
  dicDemo_ = 0x00007fd1c371dbd0 3 key/value pairs
}

pivar

打印對(duì)象的某個(gè)成員變量蹦魔,語(yǔ)法是Syntax: pivar <object> <ivarName> 浸锨,object是要打印的對(duì)象,ivarName變量名稱

如下版姑,打印出當(dāng)前VC的view屬性

(lldb) pivar self _view
<UIView: 0x7fd1c3418890; frame = (0 0; 375 667); autoresize = W+H; layer = <CALayer: 0x7fd1c3418a00>>

pjson

將一個(gè)字典或數(shù)組json化并打印出來(lái),語(yǔ)法是Syntax: pjson [--plain] <object>但是試驗(yàn)了多次都報(bào)錯(cuò)柱搜,不知道是不是有bug,后續(xù)再研究研究

visualize

這是個(gè)很有意思的功能剥险,它可以讓你使用Mac的預(yù)覽功能打開(kāi)一個(gè) UIImage, CGImageRef, UIView, 或 CALayer聪蘸。這個(gè)功能可以幫我們用來(lái)定位一個(gè)view的具體內(nèi)容,或者用來(lái)截圖表制。

我們使用該命令查看view上的按鈕健爬,如下:

(lldb) visualize 0x7fb23bf180c0

可以看到它打開(kāi)了預(yù)覽,并展示了按鈕所生成的圖片

6E19F442-8289-434E-B55F-825F2ACF8420.png

pobjc&&poobjc

pobjc等同于lldb自有的p命令

poobjc等同于lldb自有的po命令

presponder

打印一個(gè)繼承于presponder的控件的響應(yīng)鏈么介,非常詳細(xì)娜遵,我打印0x7fe8d9c29200的響應(yīng)鏈,如下:

(lldb) presponder 0x7fe8d9c29200
<UIButton: 0x7fe8d9c29200; frame = (100 220; 100 40); opaque = NO; layer = <CALayer: 0x7fe8d9c0ff50>>
   | <UIView: 0x7fe8d9f04da0; frame = (0 0; 375 667); autoresize = W+H; layer = <CALayer: 0x7fe8d9f06f70>>
   |    | <ViewController: 0x7fe8d9c2b1c0>
   |    |    | <UIViewControllerWrapperView: 0x7fe8d9c29c90; frame = (0 0; 375 667); autoresize = W+H; layer = <CALayer: 0x7fe8d9c19b40>>
   |    |    |    | <UINavigationTransitionView: 0x7fe8d9d0c2a0; frame = (0 0; 375 667); clipsToBounds = YES; autoresize = W+H; layer = <CALayer: 0x7fe8d9d11f50>>
   |    |    |    |    | <UILayoutContainerView: 0x7fe8d9c2d570; frame = (0 0; 375 667); autoresize = W+H; gestureRecognizers = <NSArray: 0x7fe8d9d1f830>; layer = <CALayer: 0x7fe8d9c2d990>>
   |    |    |    |    |    | <UINavigationController: 0x7fe8da02fa00>
   |    |    |    |    |    |    | <UIWindow: 0x7fe8d9c29f60; frame = (0 0; 375 667); gestureRecognizers = <NSArray: 0x7fe8d9c2ad60>; layer = <UIWindowLayer: 0x7fe8d9c298c0>>
   |    |    |    |    |    |    |    | <UIApplication: 0x7fe8d9d00ab0>
   |    |    |    |    |    |    |    |    | <AppDelegate: 0x7fe8d9d10aa0>

ptv&pvc

ptv打印層級(jí)中最上面的tableview壤短,如果沒(méi)有則打印找不到的提示語(yǔ)

(lldb) ptv
<GMBTableView: 0x7f90e309c800; baseClass = UITableView; frame = (0 64; 375 554); clipsToBounds = YES; gestureRecognizers = <NSArray: 0x7f90e5070e00>; layer = <CALayer: 0x7f90e505eee0>; contentOffset: {0, 180.5}; contentSize: {375, 1563.2064835693309}>
(lldb) ptv
Sorry, chump. I couldn't find a table-view. :'(

pvc打印當(dāng)前存在的VC的層級(jí)關(guān)系

(lldb) pvc
<UINavigationController 0x7f8d61841600>, state: appeared, view: <UILayoutContainerView 0x7f8d6142fcf0>
   | <ViewController 0x7f8d6142e0c0>, state: disappeared, view: <UIView 0x7f8d61751dc0> not in the window
   | <SecondVC 0x7f8d617699e0>, state: appeared, view: <UIView 0x7f8d61757340>

pviews

這個(gè)命令可以打印出當(dāng)前的view層級(jí)關(guān)系或某個(gè)指定view上的層級(jí)设拟,這個(gè)命令有助于幫助我們?cè)谡{(diào)試時(shí)定位問(wèn)題,如我們添加了一個(gè)view沒(méi)有展示久脯,可以通過(guò)這個(gè)層級(jí)關(guān)系及描述找到問(wèn)題所在纳胧。命令后不指定view默認(rèn)打印當(dāng)前存在的所有view層級(jí)關(guān)系,如下:

(lldb) pviews
<UIWindow: 0x7f81725141f0; frame = (0 0; 375 667); autoresize = W+H; gestureRecognizers = <NSArray: 0x7f8172515550>; layer = <UIWindowLayer: 0x7f8172510cf0>>
   | <UIView: 0x7f8172517620; frame = (0 0; 375 667); autoresize = W+H; layer = <CALayer: 0x7f8172513830>>
   |    | <_UILayoutGuide: 0x7f81725189b0; frame = (0 0; 0 20); hidden = YES; layer = <CALayer: 0x7f81725024d0>>
   |    | <_UILayoutGuide: 0x7f81725195f0; frame = (0 667; 0 0); hidden = YES; layer = <CALayer: 0x7f817250bee0>>
   |    | <UIView: 0x7f817261a580; frame = (100 100; 100 100); layer = <CALayer: 0x7f8172605ff0>>
   |    | <UIButton: 0x7f817261abe0; frame = (100 230; 100 50); opaque = NO; layer = <CALayer: 0x7f817260fc90>>
   |    |    | <UIButtonLabel: 0x7f81726233c0; frame = (32 14.5; 36 21.5); text = '按鈕'; opaque = NO; userInteractionEnabled = NO; layer = <_UILabelLayer: 0x7f817260cca0>>
   |    |    |    | <_UILabelContentLayer: 0x7f817241c770> (layer)

指定view則打印該view所包含的view層級(jí)帘撰,如指定當(dāng)前vc上的view:

(lldb) pviews self.view
<UIView: 0x7f8172517620; frame = (0 0; 375 667); autoresize = W+H; layer = <CALayer: 0x7f8172513830>>
   | <_UILayoutGuide: 0x7f81725189b0; frame = (0 0; 0 20); hidden = YES; layer = <CALayer: 0x7f81725024d0>>
   | <_UILayoutGuide: 0x7f81725195f0; frame = (0 667; 0 0); hidden = YES; layer = <CALayer: 0x7f817250bee0>>
   | <UIView: 0x7f817261a580; frame = (100 100; 100 100); layer = <CALayer: 0x7f8172605ff0>>
   | <UIButton: 0x7f817261abe0; frame = (100 230; 100 50); opaque = NO; layer = <CALayer: 0x7f817260fc90>>
   |    | <UIButtonLabel: 0x7f81726233c0; frame = (32 14.5; 36 21.5); text = '按鈕'; opaque = NO; userInteractionEnabled = NO; layer = <_UILabelLayer: 0x7f817260cca0>>
   |    |    | <_UILabelContentLayer: 0x7f817241c770> (layer)

taplog

打印所點(diǎn)擊的控件的描述信息跑慕。先暫停程序,然后輸入taplog命令摧找,點(diǎn)擊要打印的控件核行,然后控制臺(tái)會(huì)輸出所點(diǎn)擊控件的信息(前提是該控件的用戶交互打開(kāi)了且可以響應(yīng)點(diǎn)擊)牢硅。輸入命令后,暫停的程序會(huì)繼續(xù)運(yùn)行芝雪,這是我點(diǎn)擊一個(gè)button唤衫,輸出信息如下:

(lldb) taplog
Process 8448 resuming
<UIButton: 0x7f95d2724520; frame = (100 220; 100 40); opaque = NO; layer = <CALayer: 0x7f95d2713c40>>

注意:每輸入一次命令,只能打印一次點(diǎn)擊的信息

自定義命令

?我們也可以定義一些命令來(lái)滿足自己的需求绵脯,前提是要懂python,會(huì)的童鞋感興趣可以自己研究一下休里。

Chisel中的命令實(shí)現(xiàn)文件在/usr/local/Cellar/chisel/1.4.0/libexec/commands路徑下蛆挫,雖然不懂語(yǔ)法,看看大致的實(shí)現(xiàn)思路還是受益匪淺的妙黍。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末悴侵,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子拭嫁,更是在濱河造成了極大的恐慌可免,老刑警劉巖,帶你破解...
    沈念sama閱讀 206,126評(píng)論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件做粤,死亡現(xiàn)場(chǎng)離奇詭異浇借,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)怕品,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,254評(píng)論 2 382
  • 文/潘曉璐 我一進(jìn)店門(mén)妇垢,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人肉康,你說(shuō)我怎么就攤上這事闯估。” “怎么了吼和?”我有些...
    開(kāi)封第一講書(shū)人閱讀 152,445評(píng)論 0 341
  • 文/不壞的土叔 我叫張陵涨薪,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我炫乓,道長(zhǎng)刚夺,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 55,185評(píng)論 1 278
  • 正文 為了忘掉前任末捣,我火速辦了婚禮光督,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘塔粒。我一直安慰自己结借,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,178評(píng)論 5 371
  • 文/花漫 我一把揭開(kāi)白布卒茬。 她就那樣靜靜地躺著船老,像睡著了一般咖熟。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上柳畔,一...
    開(kāi)封第一講書(shū)人閱讀 48,970評(píng)論 1 284
  • 那天馍管,我揣著相機(jī)與錄音,去河邊找鬼薪韩。 笑死确沸,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的俘陷。 我是一名探鬼主播罗捎,決...
    沈念sama閱讀 38,276評(píng)論 3 399
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼拉盾!你這毒婦竟也來(lái)了桨菜?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 36,927評(píng)論 0 259
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤捉偏,失蹤者是張志新(化名)和其女友劉穎倒得,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體夭禽,經(jīng)...
    沈念sama閱讀 43,400評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡霞掺,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,883評(píng)論 2 323
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了讹躯。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片根悼。...
    茶點(diǎn)故事閱讀 37,997評(píng)論 1 333
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖蜀撑,靈堂內(nèi)的尸體忽然破棺而出挤巡,到底是詐尸還是另有隱情,我是刑警寧澤酷麦,帶...
    沈念sama閱讀 33,646評(píng)論 4 322
  • 正文 年R本政府宣布矿卑,位于F島的核電站,受9級(jí)特大地震影響沃饶,放射性物質(zhì)發(fā)生泄漏母廷。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,213評(píng)論 3 307
  • 文/蒙蒙 一糊肤、第九天 我趴在偏房一處隱蔽的房頂上張望琴昆。 院中可真熱鬧,春花似錦馆揉、人聲如沸业舍。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 30,204評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)舷暮。三九已至态罪,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間下面,已是汗流浹背复颈。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 31,423評(píng)論 1 260
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留沥割,地道東北人耗啦。 一個(gè)月前我還...
    沈念sama閱讀 45,423評(píng)論 2 352
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像机杜,于是被迫代替她去往敵國(guó)和親帜讲。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,722評(píng)論 2 345

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

  • 不玩LLDB叉庐,不知道chisel有多強(qiáng)大。chisel之于LLDB会喝,就像iPhone之于手機(jī)陡叠,前者幾乎給后者重新下...
    小笨狼閱讀 9,550評(píng)論 15 78
  • LLDB的Xcode默認(rèn)的調(diào)試器祷蝌,它與LLVM編譯器一起闰围,帶給我們更豐富的流程控制和數(shù)據(jù)檢測(cè)的調(diào)試功能。平時(shí)用Xc...
    CoderSC閱讀 1,346評(píng)論 0 2
  • iOS調(diào)試之chisel Chisel 是一個(gè) LLDB 指令集合技掏,用戶輔助 iOS 應(yīng)用差錯(cuò)预茄。 安裝 chise...
    comst閱讀 4,605評(píng)論 0 13
  • 發(fā)現(xiàn) 關(guān)注 消息 iOS 第三方庫(kù)兴溜、插件、知名博客總結(jié) 作者大灰狼的小綿羊哥哥關(guān)注 2017.06.26 09:4...
    肇東周閱讀 12,022評(píng)論 4 62
  • 一直絕的兩個(gè)人的溝通不在于距離而在于心靈是否想通耻陕,就是說(shuō)即使對(duì)方?jīng)]有及時(shí)回你短信你自己又瞎想拙徽,但一旦對(duì)方回你信息你...
    白菜喵閱讀 207評(píng)論 0 1