調試MobileSubstrate擴展的最佳方式是什麼,即放置斷點等?有沒有在Xcode中做到這一點? GNU調試器?如何調試MobileSubstrate調整?
3
A
回答
2
#define Debugger() { kill(getpid(), SIGINT) ; }
然後,只需調用Debugger(),無論您想要放置斷點。
,如果你想跟蹤的堆棧你也可以引發一個異常:
[NSException raise:@"Exception Message" format:formatString];
6
我用的系統日誌和尾巴。你需要Cydia的syslogd
和Erica Utilities
。然後在整個調整的地方NSLog(@"breakpoint 1 - %@", someObject);
並運行調整。
tail -f /var/log/syslog
+0
錯字:'埃裏卡公用事業'。 ,P – Matoe
1
Mobilesubstrate將您的dylib注入到目標進程中。使用GDB或LLDB調試目標進程也在調試您的擴展代碼。 我將向您展示如何使用GDB調試Mobilesubstrate擴展。 下面是簡單的MobileSubstrate有/標誌擴展:
%hook SBApplicationController
-(void)uninstallApplication:(id)application {
int i = 5;
i = i +7;
NSLog(@"Hey, we're hooking uninstallApplication: and number: %d", i);
%orig; // Call the original implementation of this method
return;
}
%end
我編譯和安裝代碼,然後在GDB連接到它:
yaron-shanis-iPhone:~ root# ps aux | grep -i springboard
mobile 396 1.6 4.3 423920 21988 ?? Ss 2:19AM 0:05.23 /System/Library/CoreServices/SpringBoard.app/SpringBoard
root 488 0.0 0.1 273024 364 s000 S+ 2:22AM 0:00.01 grep -i springboard
yaron-shanis-iPhone:~ root# gdb -p 488
你可以找到你的MobileSubstrate有擴展使用以下命令:
(gdb) info sharedlibrary
此命令打印已加載模塊的列表,找到您的擴展名:
test-debug-substrate.dylib - 0x172c000 dyld Y Y /Library/MobileSubstrate/DynamicLibraries/test-debug-substrate.dylib at 0x172c000 (offset 0x172c000)
您還可以找到標誌uninstallApplication掛鉤的地址:哪些輸出該
(gdb) info functions uninstallApplication
:
0x0172cef0 _logos_method$_ungrouped$SBApplicationController$uninstallApplication$(SBApplicationController*, objc_selector*, objc_object*)
可以調試與斷點和其他GDB的功能,您uninstallApplication鉤子函數:
(gdb) b *0x0172cef0+36
其中偏移量36是程序集opcod e在uninstallApplication鉤子函數中將7添加到i變量中。只要您願意,您可以繼續從這裏調試您的Mobilesubstrate擴展。
相關問題
- 1. 如何創建基本的MobileSubstrate調整
- 2. Mobilesubstrate:創建一個調整鉤入另一個調整或dylib
- 3. 在MobileSubstrate調整中顯示UIView?
- 4. Mobilesubstrate MobileSafari調整徽標編譯問題
- 5. 重新調整和調試
- 6. 如何調整
- 7. 調整後調整/調試當前FPS嗎?
- 8. 如何調試Rscript調用
- 9. 如何調試grpc調用?
- 10. 如何調試JS調用
- 11. 如何調試SOAP調用?
- 12. 如何調試
- 13. 如何調整iFrame
- 14. 如何調整infowindow?
- 15. 如何從調整
- 16. 如何調整GGPLOT2
- 17. 如何調整CSS
- 18. 如何調整AlertView
- 19. 如何調整imageButton?
- 20. 如何調整offset()?
- 21. 如何調整「spark.rpc.askTimeout」?
- 22. 如何調整imageview?
- 23. 如何調整divs?
- 24. 如何調整mapred.reduce.parallel.copies?
- 25. 如何調試自定義調試器?
- 26. 如何通過調試進行調試?
- 27. 當我創建MobileSubstrate有重複的接口聲明的錯誤調整
- 28. 我將如何返回? (MobileSubstrate)
- 29. 試圖調整的iframe
- 30. 如何調試TreeNodeCollection
當您放置斷點時,您會做什麼? – Tyilo