青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

羅朝輝(飄飄白云)

關(guān)注嵌入式操作系統(tǒng),移動(dòng)平臺(tái),圖形開發(fā)。-->加微博 ^_^

  C++博客 :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理 ::
  85 隨筆 :: 0 文章 :: 169 評(píng)論 :: 0 Trackbacks

XCode的一些調(diào)試技巧

羅朝輝 (http://www.shnenglu.com/kesalin/)

CC 許可,轉(zhuǎn)載請(qǐng)注明出處

XCode 內(nèi)置GDB,我們可以在命令行中使用 GDB 命令來調(diào)試我們的程序。下面將介紹一些常用的命令以及調(diào)試技巧。

po 命令:為 print object 的縮寫,顯示對(duì)象的文本描述(顯示從對(duì)象的 description 消息獲得的字符串信息)。

比如:

上圖中,我使用 po 命令顯示一個(gè) NSDictionary 的內(nèi)容。注意在左側(cè)我們可以看到 dict 的一些信息:3 key/value pairs,顯示該 dict 包含的數(shù)據(jù)量,而展開的信息顯示 isa 層次體系(即class 和 metaclass結(jié)構(gòu)關(guān)系)。我們可以右擊左側(cè)的 dict,選中“Print Description of "dict"”,則可以在控制臺(tái)輸出 dict 的詳細(xì)信息:

Printing description of dict:
<CFBasicHash 0x1001149e0 [0x7fff7e27ff40]>{type = immutable dict, count = 3,
entries =>
    0 : <CFString 0x100002458 [0x7fff7e27ff40]>{contents = "first"} = <CFString 0x100002438 [0x7fff7e27ff40]>{contents = "one"}
    1 : <CFString 0x100002498 [0x7fff7e27ff40]>{contents = "second"} = <CFString 0x100002478 [0x7fff7e27ff40]>{contents = "two"}
    2 : <CFString 0x1000024d8 [0x7fff7e27ff40]>{contents = "third"} = <CFString 0x1000024b8 [0x7fff7e27ff40]>{contents = "three"}
}
(gdb) 

print 命令
:有點(diǎn)類似于格式化輸出,可以輸出對(duì)象的不同信息:
如:
(gdb) print (char *)[[dict description] cStringUsingEncoding:4]
$1 = 0x100115620 "{\n    first = one;\n    second = two;\n    third = three;\n}"
(gdb) 

注:4是 NSUTF8StringEncoding 的值。

info 命令:我們可以查看內(nèi)存地址所在信息

比如 "info symbol 內(nèi)存地址" 可以獲取內(nèi)存地址所在的 symbol 相關(guān)信息:

(gdb) info symbol 0x00000001000017f7 main + 343 in section LC_SEGMENT.__TEXT.__text of /Users/LuoZhaohui/Library/Developer/Xcode/DerivedData/RunTimeSystem-anzdlhiwvlbizpfureuvenvmatnp/Build/Products/Debug/RunTimeSystem

比如 "info line *內(nèi)存地址" 可以獲取內(nèi)存地址所在的代碼行相關(guān)信息:
(gdb) info line *0x00000001000017f7 Line 62 of "/Users/LuoZhaohui/Documents/Study/RunTimeSystem/RunTimeSystem/main.m" starts at address 0x1000017f7 <main+343> and ends at 0x10000180a <main+362>.


show 命令
:顯示 GDB 相關(guān)的信息。如:show version 顯示GDB版本信息

(gdb) show version
GNU gdb 6.3.50-20050815 (Apple version gdb-1708) (Mon Aug  8 20:32:45 UTC 2011)
Copyright 2004 Free Software Foundation, Inc.
GDB is free software, covered by the GNU General Public License, and you are
welcome to change it and/or distribute copies of it under certain conditions.
Type "show copying" to see the conditions.
There is absolutely no warranty for GDB.  Type "show warranty" for details.
This GDB was configured as "x86_64-apple-darwin".
(gdb) 


help 命令
:如果忘記某條命令的語法了,可以使用 help 命令名 來獲取幫助信息。如:help info 顯示 info 命令的用法。
(gdb) help info
Generic command for showing things about the program being debugged.

List of info subcommands:

info address -- Describe where symbol SYM is stored
info all-registers -- List of all registers and their contents
info args -- Argument variables of current stack frame
info auxv -- Display the inferior's auxiliary vector
info breakpoints -- Status of user-settable breakpoints
info catch -- Exceptions that can be caught in the current stack frame
info checkpoints -- Help
info classes -- All Objective-C classes

info vector -- Print the status of the vector unit
info warranty -- Various kinds of warranty you do not have
info watchpoints -- Synonym for ``info breakpoints''

Type "help info" followed by info subcommand name for full documentation.
Command name abbreviations are allowed if unambiguous.
(gdb) 


在系統(tǒng)拋出異常處設(shè)置斷點(diǎn)

有時(shí)候我們的程序不知道跑到哪個(gè)地方就 crash 了,而 crash 又很難重現(xiàn)。保守的做法是在系統(tǒng)拋出異常之前設(shè)置斷點(diǎn),具體來說是在 objc_exception_throw處設(shè)置斷點(diǎn)。設(shè)置步驟為:首先在 XCode 按 CMD + 6,進(jìn)入斷點(diǎn)管理窗口;然后點(diǎn)擊右下方的 +,增加新的 Symbolic Breakpoint,在 Symbol 一欄輸入:objc_exception_throw,然后點(diǎn)擊 done,完成。 這樣在 Debug 模式下,如果程序即將拋出異常,就能在拋出異常處中斷了。比如在前面的代碼中,我讓 [firstObjctcrashTest]; 拋出異常。在 objc_exception_throw 處設(shè)置斷點(diǎn)之后,程序就能在該代碼處中斷了,我們從而知道代碼在什么地方出問題了。


posted on 2012-01-31 16:19 羅朝輝 閱讀(3296) 評(píng)論(0)  編輯 收藏 引用 所屬分類: Cocoa 開發(fā)
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            蜜臀av在线播放一区二区三区| 久久精品99| 黄色精品一区| 一区二区三区免费网站| 亚洲高清不卡| 欧美一区二区高清在线观看| 一本一道久久综合狠狠老精东影业 | 欧美亚洲视频一区二区| 欧美激情按摩在线| 欧美激情精品久久久久| 黄色成人av网站| 性欧美8khd高清极品| 午夜在线成人av| 欧美午夜www高清视频| 亚洲三级影院| 亚洲麻豆av| 欧美激情一区二区三区| 亚洲成人在线视频网站| 亚洲人成毛片在线播放女女| 伊人久久亚洲影院| 久久激情五月丁香伊人| 久久人人爽人人爽爽久久| 国产午夜精品视频免费不卡69堂| 一区二区三区你懂的| 亚洲一区在线观看视频| 欧美视频你懂的| 一区二区三区欧美亚洲| 亚洲女性裸体视频| 国产精品麻豆成人av电影艾秋| 一本久久青青| 欧美一区二区三区的| 国产美女精品| 欧美在线视频一区二区| 久久免费视频一区| 亚洲缚视频在线观看| 欧美连裤袜在线视频| 亚洲美女黄网| 欧美一级专区| 激情五月婷婷综合| 老司机成人网| 亚洲精品日日夜夜| 午夜精品久久久久久久99水蜜桃| 国产欧美欧美| 久久三级福利| 日韩视频免费看| 欧美一区二区三区免费看| 国产视频精品xxxx| 久久综合一区二区| 99视频在线观看一区三区| 欧美在线一级视频| 伊人久久亚洲美女图片| 欧美人与禽猛交乱配视频| 亚洲视频免费| 欧美sm视频| 亚洲永久免费av| 黄色成人av| 欧美日韩综合精品| 欧美在线视频免费播放| 亚洲国产日日夜夜| 欧美在线免费看| 亚洲乱码国产乱码精品精 | 国产一区二区高清不卡| 免费观看一区| 欧美一区二区视频观看视频| 欧美电影在线观看| 午夜欧美大尺度福利影院在线看| 一色屋精品视频在线观看网站| 欧美激情在线狂野欧美精品| 亚洲欧美久久久久一区二区三区| 欧美激情第一页xxx| 欧美一级久久久久久久大片| 亚洲区免费影片| 国产区亚洲区欧美区| 欧美日本一区二区视频在线观看 | 欧美在线啊v一区| 99精品久久| 亚洲国产天堂网精品网站| 欧美伊人精品成人久久综合97 | 亚洲免费精彩视频| 韩日精品视频| 国产精品久久久久久影视| 欧美aⅴ99久久黑人专区| 午夜视频在线观看一区二区三区| 亚洲精品在线免费观看视频| 久久影视精品| 久久精品二区亚洲w码| 亚洲四色影视在线观看| 亚洲人妖在线| 亚洲国产专区校园欧美| 国产日韩精品电影| 国产精品久久久久久久午夜片 | 国产精品久在线观看| 欧美日韩国产综合视频在线观看中文| 久久青青草原一区二区| 篠田优中文在线播放第一区| 一本到12不卡视频在线dvd| 亚洲丰满少妇videoshd| 麻豆成人av| 久久在线免费观看视频| 久久电影一区| 久久久www成人免费无遮挡大片| 亚洲在线观看免费| 亚洲一级特黄| 亚洲欧美国产三级| 午夜精品www| 欧美一区二区在线看| 亚洲欧美自拍偷拍| 欧美亚洲综合在线| 久久国产黑丝| 久久免费精品视频| 久久噜噜噜精品国产亚洲综合| 久久精品国产v日韩v亚洲 | 欧美日韩在线不卡一区| 欧美精品黄色| 欧美日本韩国一区二区三区| 欧美成人官网二区| 欧美日韩国产黄| 欧美午夜精品伦理| 国产精品视频xxxx| 国产一区二区毛片| 在线观看日韩精品| 日韩视频在线观看免费| 一本色道久久综合狠狠躁篇的优点 | 伊人精品在线| 亚洲精品乱码久久久久久蜜桃麻豆| 亚洲精品久久| 亚洲一区欧美| 久久视频精品在线| 亚洲第一视频网站| 99精品国产热久久91蜜凸| 一本久久青青| 久久久久久免费| 欧美国产日韩a欧美在线观看| 欧美日韩国产成人| 国产美女诱惑一区二区| 在线观看欧美视频| 这里只有精品在线播放| 欧美中文在线观看| 欧美大色视频| 亚洲午夜成aⅴ人片| 久久免费视频网站| 欧美视频国产精品| 狠狠色噜噜狠狠色综合久| 亚洲欧洲日本mm| 久久se精品一区精品二区| 欧美成人精品在线播放| 中国亚洲黄色| 久久视频在线视频| 欧美日韩亚洲在线| 亚洲成人在线视频播放| 中文日韩在线| 美女精品自拍一二三四| 一区二区av在线| 久久久中精品2020中文| 国产精品啊啊啊| 亚洲国产日韩欧美在线图片| 午夜精品国产更新| 亚洲国产老妈| 欧美影院视频| 欧美婷婷久久| 亚洲人成网站影音先锋播放| 欧美在线啊v| 亚洲每日更新| 鲁大师影院一区二区三区| 国产精品伊人日日| 99国产精品久久久久久久| 久久亚洲一区二区| 亚洲色图综合久久| 欧美精品亚洲一区二区在线播放| 国产午夜精品福利| 亚洲欧美日韩精品久久久久| 亚洲黄色性网站| 久久午夜精品一区二区| 国产日韩精品综合网站| 亚洲一二三级电影| 亚洲精品日韩在线观看| 免费观看日韩av| 亚洲国产高清视频| 毛片基地黄久久久久久天堂| 午夜精品久久久久影视| 国产精品扒开腿爽爽爽视频| 日韩视频国产视频| 亚洲国产精品www| 麻豆精品在线视频| 亚洲二区在线| 欧美va亚洲va日韩∨a综合色| 性色一区二区| 国产一区二区三区久久久| 欧美中文字幕在线| 亚洲综合丁香| 国产日韩欧美高清| 欧美中文日韩| 欧美一区二区三区另类| 国产欧美一区二区三区沐欲| 欧美一进一出视频| 欧美一区二区三区四区视频| 国产日产欧美a一级在线| 欧美一区免费视频| 香蕉成人啪国产精品视频综合网| 国产欧美精品xxxx另类|