日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

iOS LLDB console debug总结

發(fā)布時間:2025/3/15 编程问答 19 豆豆
生活随笔 收集整理的這篇文章主要介紹了 iOS LLDB console debug总结 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

2019獨角獸企業(yè)重金招聘Python工程師標(biāo)準(zhǔn)>>>

Xcode's debugging console window is a full-featured LLDB debugging console. When your app is paused(at a breakpoint), the debugging console shows the LLDB command prompt. You can type any LLDB debugger common into the console to help you with debugging, including loading external python script.

The most frequently used command is po, which stands for print object. When your application is paused in debugger, you can print any variable that is in the current scope. This includes any stack variables, class variables, properties, ivars, and global variables. In short, any variable that is accessible by your application at the breakpoint can be accessed via the debugging console.

Printing scalar variables

when you're dealing with scalars like integers or structs(CGRect, CGPoint, etc..), instead of using po, you use p, followed by the type of struct.

p (int) self.myAge

p (CGPoint) self.view.center

Printing Registers

Registers in your CPU are used for storing variables that have to be accessed frequently. Compilers optimize frequently used variables like the loop variable, method arguments, and return variables in the registers. When your app crashes for no apparent reason, probing the register for the method name or the selector name that crashed your app will be very useful.

(lldb) register read

General Purpose Registers:

? ? ? ? r0 = 0x37c9cb21? libobjc.A.dylib`objc_msgSend + 1

? ? ? ? r1 = 0x37c9cb21? libobjc.A.dylib`objc_msgSend + 1

? ? ? ? r2 = 0x01b5c214? "idKey"

? ? ? ? r3 = 0x01b5eb28? "checkCurrentContactBean"

? ? ? ? r4 = 0x00000000

? ? ? ? r5 = 0x37c9cb21? libobjc.A.dylib`objc_msgSend + 1

? ? ? ? r6 = 0x27d09bd0

? ? ? ? r7 = 0x27d09bc8

? ? ? ? r8 = 0x01b5bbc4? "view"

? ? ? ? r9 = 0x00000000

?? ? ? r10 = 0x01b5e3f8? "masterViewController"

?? ? ? r11 = 0x00000000

?? ? ? r12 = 0x3a11c1d0? (void *)0x382c3959: _os_lock_handoff_unlock$VARIANT$mp + 1

? ? ? ? sp = 0x27d09358

? ? ? ? lr = 0x37cacabb? libobjc.A.dylib`objc_object::sidetable_release(bool) + 95

? ? ? ? pc = 0x002cce40? iPoS_IOS`-[PersonMainForm viewWillAppear:] + 232 at PersonMainForm.m:59

? ? ? cpsr = 0x60000030


Your output may vary, butt pay close attention to the?wax,?dcx, and esi on the simulator or r0-r4 registers when running on a device. These registers store some of the values that you're interested in. In the Simulator, the?dcx register holds the name of the selector that is called when your app crashed. You print an individual register to console by specifying the register name as shown below

register read ecx.

You can also specify multiple registers like

register ?read eax ecx.

The?dcx register on Intel architecture and the r15 register on ARM architecture hold the program counter. Printing the address of the program counter will show the last executed instruction. Similarly,?wax(r0 on ARM) holds the receiver address,?ecx (r4 on ARM) and holds the selector that was called last. The arguments to the methods are stored in registers r1-r3. If your selector has more than three arguments, they are stored on stack, accessible via the stack pointer(r13). sp, lr, and pc are actually aliases to the r13,r14 and r15 register, respectively. Hence, register read r13 is equivalent to register read sp.


轉(zhuǎn)載于:https://my.oschina.net/u/566401/blog/174337

總結(jié)

以上是生活随笔為你收集整理的iOS LLDB console debug总结的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 欧美日韩精品三区 | 911亚洲精品 | 日韩成人av免费在线观看 | www.97超碰| 日韩欧美成 | 成人在线短视频 | missav|免费高清av在线看 | 屁屁影院一区二区三区 | 亚洲成人激情小说 | 久久久久青草 | 久久黄色精品视频 | 激情欧美在线 | 黄色1级视频 | 欧美三级电影在线观看 | 亚洲AV成人无码一二三区在线 | 国产视频精选 | 波多野结衣啪啪 | 色香蕉在线 | av电影在线观看网址 | 欧美一区二区在线视频 | 成年人视频在线播放 | 久久精品观看 | 黄色免费一级视频 | 在线视频日韩精品 | 亚洲午夜无码久久 | 九一国产在线 | 蜜桃网站 | 91精品国产乱码在线观看 | 九色视频国产 | 免费人成视频在线播放 | 91精品婷婷国产综合久久竹菊 | 香蕉久久夜色 | 久久阁| 久久亚洲成人av | 佐山爱av在线| 影音先锋男人天堂 | 免费成人av在线播放 | 国产精品久久久久久免费观看 | 日本色悠悠 | 国产欧美日韩在线播放 | 射网站 | 久久av不卡 | 激情五月在线 | 国产精品久久在线 | 青青草久久久 | 成人片在线看 | 久久久三级视频 | 亚洲精品在线观看视频 | 91高清在线免费观看 | 蛇女欲潮性三级 | 欧美在线视频第一页 | 久久金品 | 无码人妻精品一区二区50 | 国产精品jizz在线观看老狼 | 国产精品影音先锋 | 一级免费片 | 4438x亚洲最大 | 免费观看一区 | 亚洲爱色 | 人妻在线一区 | 国产毛片自拍 | 久久亚洲一区 | 亚洲porn| 在线视频一二区 | 人妻少妇精品一区二区 | 日本一级黄色 | 影音先锋中文字幕在线视频 | wwwxx在线| 欧美一级片在线 | 日本公妇乱偷中文字幕 | 青青草免费在线观看视频 | 亚洲午夜在线 | 狠色综合 | 国产精品一区二区免费在线观看 | 一区二区三区三区在线 | 天堂8在线视频 | 黄色小说视频 | 国产精品成人国产乱 | 97成人精品视频在线观看 | 无码一区二区波多野结衣播放搜索 | 国产美女av在线 | 亚洲在线综合 | 免费在线看污片 | 欧美性猛烈 | 91亚洲专区| 三级黄色免费网站 | 一区二区三区欧美在线 | 就要操就要日 | 玖玖久久 | 久久久精品动漫 | 青青草在线播放 | 久久亚洲精品国产 | 大乳丰满人妻中文字幕日本 | 爱爱中文字幕 | 人妖av在线 | 婷婷在线观看视频 | 99国产精品一区二区三区 | 欧洲毛片 | 91免费网站 |