2010-10-20 53 views
0

我試圖瞭解這些偏移是在iPhone堆棧跟蹤:理解記憶痕跡的偏移

11 FOO       0x0005684a +[TTURLRequest requestWithURL:delegate:] + 42 
12 FOO       0x00056840 +[TTURLRequest requestWithURL:delegate:] + 32 

什麼是十六進制數字0x0005684a和0x00056840?什麼是數字+42和+32?

我會期望十六進制數字匹配二進制中的偏移量。不幸的是,它似乎沒有任何對應關係:

$ nm build/AdHoc\ Release-iphoneos/FOO.app/FOO | grep 'requestWithURL' 
00056820 t +[TTURLRequest requestWithURL:delegate:] 
00056810 t +[TTURLRequest requestWithURL:delegate:] 

回答

1

內存位置。偏離/進入結構。

+0

代碼加載位置的內存位置?因此*應該*與二進制符號表中的符號有對應關係,對嗎? – smtlaissezfaire 2010-10-20 22:29:08

+0

@smtlaissezfaire:它呢,'0x0005684a - 42 == 0x00056820' – Hasturkun 2010-10-20 22:30:36

+0

啊。我看到 - 我不能在十六進制中減去。謝謝Hasturkun。 – smtlaissezfaire 2010-10-20 22:36:48