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

羅朝輝(飄飄白云)

關注嵌入式操作系統,移動平臺,圖形開發。-->加微博 ^_^

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

XCode的一些調試技巧

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

CC 許可,轉載請注明出處

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

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

比如:

上圖中,我使用 po 命令顯示一個 NSDictionary 的內容。注意在左側我們可以看到 dict 的一些信息:3 key/value pairs,顯示該 dict 包含的數據量,而展開的信息顯示 isa 層次體系(即class 和 metaclass結構關系)。我們可以右擊左側的 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 命令:我們可以查看內存地址所在信息

比如 "info symbol 內存地址" 可以獲取內存地址所在的 symbol 相關信息:

(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 *內存地址" 可以獲取內存地址所在的代碼行相關信息:
(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 相關的信息。如: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) 


在系統拋出異常處設置斷點

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


posted on 2012-01-31 16:19 羅朝輝 閱讀(3286) 評論(0)  編輯 收藏 引用 所屬分類: Cocoa 開發
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <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>
            91久久精品国产| 亚洲日本欧美日韩高观看| 亚洲另类一区二区| 日韩亚洲综合在线| 伊人色综合久久天天五月婷| 国产精品国产福利国产秒拍| 麻豆精品在线观看| 羞羞漫画18久久大片| 最近中文字幕mv在线一区二区三区四区 | 亚洲欧美日韩成人高清在线一区| 韩日欧美一区二区| 国产伦精品一区二区三区视频黑人| 欧美午夜剧场| 在线欧美影院| 在线欧美日韩国产| 亚洲二区免费| 亚洲成色最大综合在线| 亚洲高清中文字幕| 永久555www成人免费| 亚洲在线观看| 久久久天天操| 免费观看亚洲视频大全| 老司机67194精品线观看| 欧美福利小视频| 猛干欧美女孩| 欧美chengren| 欧美亚洲一级片| 欧美一区二区三区免费在线看| 一区二区三区欧美| 亚洲欧美日韩一区| 亚洲激情国产精品| 亚洲国产精品一区制服丝袜| 亚洲激情在线播放| 久久久久久97三级| 国产伦精品一区二区三区视频孕妇| 国产精品五区| 亚洲精选久久| 欧美伊人久久大香线蕉综合69| 久久久亚洲精品一区二区三区 | 日韩午夜在线电影| 久久精品国产清自在天天线| 日韩小视频在线观看| 欧美成人精品在线观看| 精品成人在线| 久久婷婷丁香| 午夜精品久久久久久久99热浪潮| 欧美日韩一区二区三区在线 | 91久久在线观看| 久久久久天天天天| av成人免费在线| 久久久久久久精| 日韩一区二区精品在线观看| 久久久久久久激情视频| 欧美影院成年免费版| 国产精品天天看| 欧美日韩综合在线免费观看| 久久精品国产96久久久香蕉| 久久日韩粉嫩一区二区三区| 国产日韩1区| 久久频这里精品99香蕉| 香蕉av777xxx色综合一区| 国产精品高潮呻吟| 亚洲黄色在线观看| 国产精品xxxxx| 欧美国产精品一区| 欧美日韩国产色视频| 亚洲日本一区二区三区| 久久久国产精彩视频美女艺术照福利| 国内精品模特av私拍在线观看| 久久久99精品免费观看不卡| 欧美a一区二区| 亚洲精品少妇30p| 欧美日韩一区二区精品| 久久视频这里只有精品| 欧美三级视频| 欧美激情91| 国产精品一区二区黑丝| 亚洲欧美日韩综合aⅴ视频| 欧美激情女人20p| 免费av成人在线| 国产精品一区二区三区观看| 欧美福利视频一区| 国产一区二区欧美| 久久国产精品99国产精| 在线视频欧美精品| 久久激情五月丁香伊人| 欧美在线二区| 久久久久久亚洲精品中文字幕| 久久久久九九视频| 国产一区自拍视频| 亚洲一区在线播放| 嫩草国产精品入口| 欧美激情一区二区三区在线| 狠狠色狠狠色综合日日tαg| 亚洲免费在线观看| 欧美伊人久久大香线蕉综合69| 欧美视频一区二| 麻豆精品一区二区综合av| 亚洲电影免费观看高清完整版在线| 激情视频一区| 久久三级视频| 亚洲欧洲日本mm| 久久深夜福利| 亚洲精品国产精品国自产在线| 欧美精品网站| 在线一区视频| 亚洲国产成人精品视频| 亚洲欧美日韩久久精品| 揄拍成人国产精品视频| 欧美aa国产视频| 亚洲午夜精品17c| 中文精品视频| 99成人在线| 亚洲国产精品久久久久秋霞不卡| 香蕉成人啪国产精品视频综合网| 国产精品免费区二区三区观看| 欧美日韩国产综合一区二区| 久久成人免费电影| 亚洲国产欧美久久| 鲁鲁狠狠狠7777一区二区| 欧美与欧洲交xxxx免费观看 | 欧美在线视频一区| 亚洲图片欧美日产| 国产精品99久久久久久久久久久久 | 欧美激情精品久久久久| 久久久91精品国产一区二区精品| 亚洲一区二区视频| 久久久7777| 老司机精品视频网站| 欧美91大片| 国产精品a级| 国产在线精品二区| 亚洲六月丁香色婷婷综合久久| 亚洲美女精品成人在线视频| 亚洲欧美偷拍卡通变态| 久久综合99re88久久爱| 亚洲欧洲日韩在线| 欧美在线视频二区| 欧美日韩免费一区二区三区| 一区在线观看视频| 国产精品久久久久免费a∨大胸 | 欧美日韩一区成人| 久久精品欧美日韩| 99精品欧美一区| 亚洲精品美女在线观看| 亚洲免费在线| 久久精品官网| 久久国产手机看片| 久久中文字幕一区| 一区二区三区视频在线| 噜噜噜噜噜久久久久久91 | 在线精品亚洲| 亚洲一区二区三区国产| 欧美激情91| 亚洲欧美视频在线| 欧美成人中文字幕| 国产一区二区福利| 亚洲乱码国产乱码精品精可以看| 久久激情五月丁香伊人| 欧美在线影院| 欧美在线视频全部完| 香蕉国产精品偷在线观看不卡| 久久精品国产免费| 亚洲国产一成人久久精品| 欧美在线3区| 免费成人黄色| 欧美在线地址| 黄网动漫久久久| 欧美成人精品高清在线播放| 久久免费高清视频| 国外精品视频| 免费成人你懂的| 欧美视频精品一区| 91久久久亚洲精品| 每日更新成人在线视频| 亚洲精品一区二区三区婷婷月| 亚洲人体一区| 国产区在线观看成人精品| 亚洲永久在线观看| 欧美成人国产一区二区| 美国十次了思思久久精品导航| 久久久一二三| 久久久久国产免费免费| 欧美激情a∨在线视频播放| 这里只有精品电影| 久久精品人人做人人爽| 亚洲夜间福利| 欧美日韩一视频区二区| 久久婷婷麻豆| 韩国v欧美v日本v亚洲v| 亚洲欧美区自拍先锋| 99在线精品视频| 女同一区二区| 免费一级欧美在线大片| 欧美日本久久| 91久久精品网| 狠狠色噜噜狠狠色综合久| 99亚洲精品| 99精品99久久久久久宅男| 欧美国产三级|