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

羅朝輝(飄飄白云)

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

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

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

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

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

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

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

比如:

上圖中,我使用 po 命令顯示一個 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"”,則可以在控制臺輸出 dict 的詳細信息:

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 命令
:有點類似于格式化輸出,可以輸出對象的不同信息:
如:
(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è)置斷點

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


posted on 2012-01-31 16:19 羅朝輝 閱讀(3286) 評論(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综合天堂| 久久久精品2019中文字幕神马| 久久精品系列| 欧美不卡高清| 欧美午夜剧场| 狠狠干综合网| 亚洲精品美女免费| 亚洲在线免费视频| 久久久之久亚州精品露出| 欧美风情在线观看| 午夜宅男欧美| 久久人人超碰| 欧美jizz19性欧美| 亚洲大片免费看| 91久久线看在观草草青青| 一本久久综合| 鲁大师影院一区二区三区| 亚洲国产精品成人一区二区 | 夜夜爽99久久国产综合精品女不卡 | 欧美一区午夜精品| 免播放器亚洲一区| 99热免费精品在线观看| 欧美影院一区| 欧美特黄一级| 亚洲国产欧洲综合997久久| 亚洲性感激情| 欧美激情欧美狂野欧美精品| 亚洲综合三区| 欧美日韩一级片在线观看| 一区二区在线视频| 亚洲免费一在线| 亚洲国产精品久久久久秋霞不卡 | 欧美成年人网| 国产午夜精品全部视频播放| aa成人免费视频| 美女国内精品自产拍在线播放| 一本色道久久88综合日韩精品| 久久久久久香蕉网| 国产日韩精品视频一区| 亚洲午夜未删减在线观看| 免费视频一区| 欧美一区中文字幕| 国产精品视频免费一区| 在线亚洲观看| 亚洲精品网站在线播放gif| 美女91精品| 在线观看中文字幕亚洲| 欧美亚洲网站| 亚洲永久视频| 国产精品免费在线| 性欧美18~19sex高清播放| 日韩一级大片在线| 欧美日韩999| 一区二区毛片| 一本久道综合久久精品| 欧美日韩国产三区| 亚洲色图自拍| 亚洲视屏在线播放| 国产精品网站在线观看| 先锋影音一区二区三区| 日韩午夜激情av| 亚洲精品久久久久久久久久久久| 美女任你摸久久| 久久中文字幕一区| 亚洲国产精品一区在线观看不卡| 噜噜噜噜噜久久久久久91| 久久久xxx| 亚洲精品久久久久久久久| 亚洲福利国产| 欧美色大人视频| 欧美在线高清| 久久人人爽人人爽| 日韩一区二区高清| 亚洲欧美日韩成人| 在线观看视频免费一区二区三区| 欧美电影资源| 欧美三级中文字幕在线观看| 亚洲一区二区三区三| 亚洲欧美一级二级三级| 韩国三级电影一区二区| 亚洲盗摄视频| 欧美午夜一区二区| 久久久久久久一区| 欧美激情一区二区三区蜜桃视频 | 国产欧美一区二区三区在线老狼| 久久激情网站| 欧美jizzhd精品欧美巨大免费| 一本大道久久a久久综合婷婷| 亚洲午夜一二三区视频| 一区二区三区在线视频免费观看| 91久久国产自产拍夜夜嗨| 国产精品久久久久久久久免费桃花| 久久精品电影| 欧美日韩一区二区三区在线看 | 亚洲国产专区| 国产麻豆91精品| 亚洲国产精品久久精品怡红院| 欧美三级第一页| 免费高清在线视频一区·| 欧美日韩一区二区三区四区在线观看| 久久久免费观看视频| 欧美日韩精品国产| 免费视频一区二区三区在线观看| 国产精品每日更新| 亚洲激情视频网| 国语自产精品视频在线看| 一本色道88久久加勒比精品| 在线成人h网| 亚洲在线中文字幕| 一本大道久久a久久综合婷婷 | 亚洲无毛电影| 99成人精品| 久久人人97超碰国产公开结果| 亚洲男人第一网站| 欧美高清一区二区| 男女激情久久| 好看的亚洲午夜视频在线| 亚洲视频在线一区观看| 一二三四社区欧美黄| 亚洲国产一区二区三区高清| 久久久国产精品一区二区中文| 欧美片第一页| 亚洲国产精品久久91精品| 精品福利av| 久久精品女人| 久久影音先锋| 国产一区二区在线免费观看| 亚洲午夜国产一区99re久久 | 你懂的国产精品| 欧美gay视频激情| 在线观看av一区| 久久久蜜臀国产一区二区| 久久视频国产精品免费视频在线| 国产精品欧美一区喷水| 日韩视频亚洲视频| 亚洲午夜电影在线观看| 欧美视频中文字幕在线| 国产精品99久久久久久久久久久久 | 亚洲欧美久久久久一区二区三区| 欧美国产第二页| 亚洲日本中文字幕免费在线不卡| 亚洲精品久久久久久久久| 欧美激情成人在线| 亚洲精品在线观看免费| 亚洲一区在线播放| 国产精品影视天天线| 欧美一区1区三区3区公司| 久热精品视频| 亚洲美女91| 国产精品日本精品| 久久精品99无色码中文字幕| 欧美插天视频在线播放| 妖精成人www高清在线观看| 国产精品久久久久av| 欧美综合77777色婷婷| 欧美成人有码| 一区二区三区导航| 国产日本欧美一区二区| 久久夜色精品国产亚洲aⅴ| 91久久久亚洲精品| 午夜一区在线| 亚洲精品1区| 国产精品色网| 欧美+日本+国产+在线a∨观看| 日韩视频在线免费| 久久大逼视频| 99视频在线精品国自产拍免费观看| 国产精品国产三级国产aⅴ无密码| 亚洲主播在线观看| 亚洲国产精品久久久久秋霞影院 | 亚洲国产高清一区| 亚洲一区二区在线观看视频| 国产原创一区二区| 欧美日韩国产综合一区二区| 午夜精品久久久久久久男人的天堂| 老司机午夜精品| 亚洲调教视频在线观看| 极品日韩av| 国产美女诱惑一区二区| 欧美大片一区二区| 新狼窝色av性久久久久久| 亚洲三级视频| 蜜桃久久av一区| 亚洲国产日韩欧美在线动漫| 亚洲最黄网站| 欧美肥婆bbw| 欧美在线亚洲在线| 日韩一级视频免费观看在线| 国产色产综合色产在线视频| 欧美精品在线免费| 麻豆av一区二区三区| 欧美一区二区三区婷婷月色| 正在播放亚洲一区| 亚洲三级免费| 亚洲国产精品成人精品| 欧美jizz19hd性欧美| 久热精品视频在线观看一区|