當前位置:編程學習大全網 - 源碼下載 - 新版本 xcode8 怎麽查看對象裏的值

新版本 xcode8 怎麽查看對象裏的值

可以開啟Debuger,來追蹤到具體的內容。在代碼的斷點處使用快捷鍵command+shift+Y,調出Debuger窗口,在左側選擇妳的代碼文件,右側會列出該代碼段的變量列表,選擇妳所需要追蹤的數據,這裏我找到了要查看的變量parameters,這是壹個NSDictionary類型。點擊右鍵,選擇Print

Description to Console。

找到需要查看的變量名

然後打開Xcode的控制臺(command+shift+R),就能看到詳細的信息了。很簡單吧,高手可以無視了,對於我這個Xcode菜鳥來說,真的很方便了。

數據顯示在控制臺了

Xcode的調試器為用戶提供了壹個GDB的界面,GDB是GNU組織的開放源代碼調試器。您可以在Xcode的圖形界面裏做任何事情;但是,如果您需要您可以在命令行裏使用GDB的命令。 要在壹個調試的任務裏輸入GDB命令行命令:

在工具欄裏點擊Console Drawer (控制臺抽屜窗口)按鈕打開控制臺。 您可以在控制臺裏查看Xcode調試器發送給GDB的命令,或者您可以直接在控制臺裏輸入GDB命令。在控制臺窗口裏點擊然後在gdb提示符後面輸入命令。

Java代碼

命令 解釋

break NUM 在指定的行上設置斷點。

bt 顯示所有的調用棧幀。該命令可用來顯示函數的調用順序。

clear 刪除設置在特定源文件、特定行上的斷點。其用法為:clear FILENAME:NUM。

continue 繼續執行正在調試的程序。該命令用在程序由於處理信號或斷點而

導致停止運行時。

display EXPR 每次程序停止後顯示表達式的值。表達式由程序定義的變量組成。

file FILE 裝載指定的可執行文件進行調試。

help NAME 顯示指定命令的幫助信息。

info break 顯示當前斷點清單,包括到達斷點處的次數等。

info files 顯示被調試文件的詳細信息。

info func 顯示所有的函數名稱。

info local 顯示當函數中的局部變量信息。

info prog 顯示被調試程序的執行狀態。

info var 顯示所有的全局和靜態變量名稱。

kill 終止正被調試的程序。

list 顯示源代碼段。

make 在不退出 gdb 的情況下運行 make 工具。

next 在不單步執行進入其他函數的情況下,向前執行壹行源代碼。

print EXPR 顯示表達式 EXPR 的值。

print-object 打印壹個對象

print (int) name 打印壹個類型

print-object [artist description] 調用壹個函數

set artist = @"test" 設置變量值

whatis 查看變理的數據類型

在Xcode中,Debug時,不能像eclipse ,或VS那些集成開發那樣,能直接查看變量的值。那怎麽在調試的時候查看XCode的變量呢?有壹些方法的。

1、新建壹個Single View App

在viewDidLoad裏添加些代碼:

- (void)viewDidLoad

{

[super viewDidLoad];

NSDictionary*dic = [NSDictionary

dictionaryWithObjectsAndKeys:@"value1",@"key1", @"28",@"age",@"rongfzh",@"name",nil];

UILabel*label

=[[UILabel alloc] init];

label.frame=

CGRectMake(20,40,250,60);

label.text=

[dic objectForKey:@"name"];

[self.view addSubview:label];

}

在最後壹行打上斷點。

2、"po" : print object 命令 打印出對象

Command+R調試運行,在 Debug Console 上lldb上輸入

po dic

回車,就可以把字典內容打印出來,

再打印label試試。

(lldb)po label

(UILabel *) $3 = 0x06a8bdd0 <UILabel: 0x6a8bdd0; frame =

(20 40; 250 60); text = 'rongfzh'; clipsToBounds = YES;

userInteractionEnabled = NO; layer = <CALayer: 0x6a8be90>>

label的信息也打印出來了。

3、print命令

print (char*)[[dic description] cString]

(char *) $4 = 0x06d79760 "{\n age = 28;\n key1 = value1;\n name = rongfzh;\n}"

打印對象的retainCount,但對象被回收

(lldb) print (int)[label retainCount]

(int) $2 = 1

GDB可以很方便的幫我們查看變量的值。

當執行到某斷點時,在GDB窗口中使用po就可以查看變量.(po = print object)<wbr></wbr>

1)查看String 或其它變量。

po 變量名

2)查看某個Property。比如要查看item變量的name屬性。

po [item name] <wbr><wbr>註意,po item.name是不工作的。</wbr></wbr>

3)查看數組

po [myArray objectAtIndex:index]

如果需查看內存數據:可以在輸出窗口采用gdb命令:x /nfu <addr>

n表示要顯示的內存單元的個數

-----------------------------------------

f表示顯示方式, 可取如下值:

x 按十六進制格式顯示變量

d 按十進制格式顯示變量

u 按十進制格式顯示無符號整型

o 按八進制格式顯示變量

t 按二進制格式顯示變量

a 按十六進制格式顯示變量

i 指令地址格式

c 按字符格式顯示變量

f 按浮點數格式顯示變量

-----------------------------------------

u表示壹個地址單元的長度:

b表示單字節

h表示雙字節

w表示四字節

g表示八字節

  • 上一篇:shellcode怎麽解密
  • 下一篇:比較基本網絡和基於主機的入侵檢測系統的優缺點.
  • copyright 2024編程學習大全網