1
我跟蹤到了OS X應用程序,我希望能找到像這樣在iOS上的方式:LLDB objc_msgSend跟蹤在OS X
lldb Xcode: error: 'printf' is not a valid command
有沒有辦法做到這樣嗎?我試過
expr -- (void)printf("[%s, %s]\n",(char *) object_getClassName(*(long*)($esp+4)), (char *) *(long *)($esp+8))
我覺得OS X是64位寄存器。所以這個命令不能工作(的確,它不起作用)。我應該如何編寫這個命令?或者有一個簡單的方法來做同樣的事情?只需追蹤名爲
看來,printf不打印lldb中的東西(如(char *)object_getClassName($ arg1),它的工作原理)。我如何獲得輸出打印? – 2013-05-03 00:28:41
你在調試什麼?在設備上運行的iOS項目? GUI Mac應用程序(大概是x86_64)?使用命令行lldb的命令行mac程序?附加到正在運行的進程?當你這樣做的時候,你在你的實際程序中運行'printf',這樣輸出就會去'stdout'打印的地方... – 2013-05-03 03:51:37
順便說一句,你不需要通過printf來打印。你可以在lldb中說'p(char *)object_getClassName($ arg1)'和'p $ arg2',避免程序輸出進行的麻煩。 – 2013-05-03 04:01:19