我正在調試Objective-C應用程序,並希望看到ObjC庫中的方法調用(用於教育目的!)。這樣做的最好方法是什麼?查看調用堆棧中的objc調用
回答
// print a stacktrace
NSLog(@"%@", [NSThread callStackSymbols]); // requires iOS 4
或
// print stacktrace using C functions
#import <execinfo.h>
#import <unistd.h>
void PrintStackTrace() {
void *stackAdresses[32];
int stackSize = backtrace(stackAdresses, 32);
backtrace_symbols_fd(stackAdresses, stackSize, STDOUT_FILENO);
}
或設置在XCode中斷點以暫停執行,然後鍵入GDB在控制檯命令或只是看在調試導航標籤堆棧。
試過這個 - 但問題是我沒有看到堆棧跟蹤中的任何ObjC調用 – 2011-04-26 10:27:11
如果您鍵入'call(void)instrumentObjcMessageSends(YES)',您會在'/ tmp/msgSends-
有沒有辦法從bg線程獲取主線程調用堆棧? – 2012-08-09 06:21:42
- 1. 查看調用堆棧
- 2. 調用堆棧
- 3. 如何查看ruby中調用堆棧的示例?
- 4. 通過Eclipse查看內置Android應用的調用堆棧?
- 5. JavaScript調用堆棧
- 6. erlang調用堆棧
- 7. jQuery調用堆棧?
- 8. 如何在Android Studio中查看調用堆棧?
- 9. 如何在xcode中打印或查看方法調用堆棧?
- 10. 有沒有辦法在javascript中動態查看調用堆棧?
- 11. 如何在SharePoint 2010中查看異常調用堆棧?
- 12. 在Pydev中調試時看到調用堆棧
- 13. 堆棧溢出調用堆棧#timememoryfunctionlocation 10.0000143728
- 14. 如何查看友好的.NET調用堆棧?
- 15. 查看特定方法的調用堆棧
- 16. 是否可以在delphi 7調試器中查看調用堆棧?
- 17. 調用setTimeout清除調用堆棧嗎?
- 18. DebugDiag調用堆棧不顯示調用堆棧中函數的行數
- 19. C++在堆棧上查看調用者信息
- 20. 非託管調用堆棧
- 21. 調用堆棧問題
- 22. 清除JavaScript調用堆棧
- 23. 調用堆棧大小?
- 24. 協程調用堆棧
- 25. PHP調用堆棧問題
- 26. 訪問Java調用堆棧
- 27. 循環和調用堆棧
- 28. 服務調用堆棧
- 29. 函數調用,堆棧
- 30. 調用堆棧錯誤 - C#
你的意思是你想看到方法的符號名稱? – JeremyP 2011-04-26 10:17:42
是的 - 這是正確的 - 最好使用GDB從命令行 – 2011-04-26 10:18:38
只需使用gdb中的'bt'命令。 – JeremyP 2011-04-26 10:22:22