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

羅朝輝(飄飄白云)

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

  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>
            欧美丰满少妇xxxbbb| 国产欧美日韩三区| 日韩午夜视频在线观看| 久久一二三四| 久久精品中文| 久久国产精品72免费观看| 欧美一区91| 亚洲一级特黄| 亚洲欧美成人一区二区在线电影 | 亚洲人在线视频| 亚洲国产欧美在线| 在线综合亚洲欧美在线视频| 亚洲男人的天堂在线观看| 久久精品国语| 欧美啪啪成人vr| 国产小视频国产精品| 亚洲电影第1页| 亚洲欧美日韩国产另类专区| 久久久精品国产免大香伊| 亚洲国产精品久久久久| 正在播放日韩| 久久人人爽国产| 欧美视频精品一区| 狠狠色狠狠色综合人人| 国产精品99久久99久久久二8 | 亚洲欧美一区二区原创| 久久久久久9| 一区二区三区|亚洲午夜| 中文av一区二区| 久久精品导航| 久久婷婷一区| 亚洲免费av观看| 一区二区免费在线观看| 亚洲一级在线观看| 欧美影视一区| 久久久综合精品| av成人免费| 欧美体内she精视频| 欧美午夜在线| 欧美成人午夜激情视频| 欧美日韩国产精品一卡| 国产精品国色综合久久| 国产日韩精品在线播放| 一区在线视频| 一区二区三区不卡视频在线观看 | 国内久久精品视频| 亚洲精品免费在线播放| 亚洲一区二区视频| 久久久精品一区| 欧美大片免费观看在线观看网站推荐| 亚洲激情影院| 亚洲午夜在线观看| 噜噜噜久久亚洲精品国产品小说| 欧美精品在线免费观看| 国产精品免费一区豆花| 亚洲国产精品一区二区www在线| 午夜伦理片一区| 亚洲视频在线观看免费| 欧美一级片一区| 蜜臀av在线播放一区二区三区| 亚洲美女毛片| 性做久久久久久免费观看欧美| 亚洲欧美在线一区| 久久精品国产一区二区三区| 国产精品高清在线观看| 亚洲片在线观看| 亚洲国产精品悠悠久久琪琪| 午夜精品短视频| 欧美视频一区二区三区在线观看| 国产自产2019最新不卡| 亚洲一区精品在线| 亚洲区一区二区三区| 久久久国产精品一区| 国产精品入口| 一本色道**综合亚洲精品蜜桃冫| 美女日韩欧美| 欧美一区二区三区精品| 欧美日韩精品在线视频| 亚洲人成亚洲人成在线观看 | 国产精品a久久久久| 亚洲免费黄色| 亚洲国产精品一区制服丝袜 | 日韩视频国产视频| 欧美福利视频网站| 久久成人综合网| 久久久综合网站| 午夜亚洲一区| 激情久久婷婷| 久久精品欧美| 性色一区二区| 久久久久久有精品国产| 国模私拍视频一区| 欧美中文在线免费| 亚洲自拍偷拍网址| 国产精品视频一| 欧美一级黄色网| 午夜久久tv| 欧美精品一区二区三区在线看午夜| 亚洲狼人综合| 亚洲精品女av网站| 久久久久国产精品一区| 激情欧美一区二区三区在线观看 | 国内视频精品| 久久蜜臀精品av| 久久精品国产亚洲一区二区| 一色屋精品亚洲香蕉网站| 免费观看日韩av| 欧美成人国产一区二区 | 在线播放视频一区| 久久精品亚洲精品| 欧美日韩国产综合一区二区| 亚洲网站在线播放| 亚洲欧美日韩国产另类专区| 国产美女精品视频免费观看| 久久久99爱| 久久久精品一区二区三区| 国内精品嫩模av私拍在线观看| 欧美xxx成人| 欧美韩国在线| 美女黄网久久| 欧美日韩在线亚洲一区蜜芽| 午夜久久tv| 久久一区二区三区av| 日韩一级在线观看| 亚洲国产成人av在线| 国产自产高清不卡| 亚洲黄色成人| 国产偷久久久精品专区| 欧美激情精品久久久久久大尺度 | 国产精品美腿一区在线看| 久久久无码精品亚洲日韩按摩| 久久久久久久久综合| 在线综合视频| 欧美在线一区二区| 欧美伦理影院| 久久精品在线观看| 欧美系列一区| 欧美国产精品日韩| 国产精品一区在线观看你懂的| 久久男女视频| 国产欧美高清| 伊人成年综合电影网| 欧美黑人一区二区三区| 欧美人与性动交cc0o| 久久久久久久久久久一区 | 一区二区三区www| 亚洲人成在线免费观看| 欧美在线网站| 久久夜色精品国产欧美乱极品 | 欧美韩日一区二区三区| 国产一区二区日韩精品| 亚洲一级在线| 亚洲一区二区三区在线| 欧美激情在线有限公司| 一本色道久久| 一区二区激情| 欧美国产一区二区在线观看 | 欧美日韩在线一区二区| 久久婷婷蜜乳一本欲蜜臀| 亚洲国产天堂久久国产91| 欧美亚洲免费在线| 午夜欧美视频| 国产精品久久久久一区二区三区共| 亚洲国产一区二区视频| 亚洲国产成人tv| 欧美一区二区成人| 久久在线91| 亚洲国产综合在线看不卡| 欧美不卡一区| 亚洲精品国产品国语在线app| 亚洲激情电影中文字幕| 免费人成精品欧美精品| 欧美电影免费观看高清完整版| 91久久精品一区二区别| 欧美日韩综合在线| 亚洲直播在线一区| 久久久久久**毛片大全| 亚洲日本激情| 西西裸体人体做爰大胆久久久| 久久精品99| 一区二区三区在线免费观看| 久久天堂成人| 91久久极品少妇xxxxⅹ软件| 国产在线不卡精品| 欧美日韩国产一区| 亚洲一区图片| 狼人天天伊人久久| 夜夜嗨av一区二区三区| 国产精品欧美在线| 欧美寡妇偷汉性猛交| 一区二区av| 免费成人av资源网| 99在线观看免费视频精品观看| 国产精品扒开腿爽爽爽视频 | 欧美黑人国产人伦爽爽爽| 性色一区二区三区| 91久久精品日日躁夜夜躁欧美| 欧美日韩一区二区免费在线观看 | 久久都是精品| 亚洲日本电影|