我有一个关于swift函数名称规则的问题.当我在IDA Pro中尝试分析用swift编写的iOS应用程序(也许OS X是相同的情况)时,比如swift-2048,我得到了这样的函数名:
EXPORT __TFC10swift_204811AppDelegate27applicationWillResignActivefS0_FCSo13UIApplicationT_
__text:00022FAC __TFC10swift_204811AppDelegate27applicationWillResignActivefS0_FCSo13UIApplicationT_
...
__text:00022FCC __TToFC10swift_204811AppDelegate27applicationWillResignActivefS0_FCSo13UIApplicationT_
Run Code Online (Sandbox Code Playgroud)
第一和第二个函数名称看起来非常相似.只有一个区别是"TFC"和"TToFC".有什么不同?我看到一些功能sub是不同的:
__text:00022FAC EXPORT __TFC10swift_204811AppDelegate27applicationWillResignActivefS0_FCSo13UIApplicationT_
__text:00022FAC __TFC10swift_204811AppDelegate27applicationWillResignActivefS0_FCSo13UIApplicationT_
__text:00022FAC ; DATA XREF: __objc_data:0004A51Co
__text:00022FAC STMFD SP!, {R4,R7,LR}
__text:00022FB0 MOV R4, R0
__text:00022FB4 MOV R0, R1
__text:00022FB8 ADD R7, SP, #4
__text:00022FBC BL _objc_release
__text:00022FC0 MOV R0, R4
__text:00022FC4 LDMFD SP!, {R4,R7,LR}
__text:00022FC8 B _objc_release
__text:00022FC8 ; End of function __TFC10swift_204811AppDelegate27applicationWillResignActivefS0_FCSo13UIApplicationT_
__text:00022FC8
__text:00022FCC
__text:00022FCC ; =============== S U B R O U T I N E =======================================
__text:00022FCC
__text:00022FCC
__text:00022FCC __TToFC10swift_204811AppDelegate27applicationWillResignActivefS0_FCSo13UIApplicationT_
__text:00022FCC ; …Run Code Online (Sandbox Code Playgroud) 我用 React-Native 构建了一个 Android 应用程序。但是当我运行时react-native run-android我收到了这个错误Watchman: failed to identify PDU: fill_buffer: EOF。
[3:42:00 PM] <END> Building Dependency Graph (2049ms)
[sane] Warning: Lost connection to watchman, reconnecting..
[sane] Warning: Lost connection to watchman, reconnecting..
2016-06-18T15:42:03,841: [cli] failed to identify PDU: fill_buffer: EOF
2016-06-18T15:42:03,842: [cli] unable to talk to your watchman on /usr/local/Cellar/watchman/4.5.0/var/run/watchman/kevin-state/sock! (Undefined error: 0)
2016-06-18T15:42:03,841: [cli] failed to identify PDU: fill_buffer: EOF
2016-06-18T15:42:03,842: [cli] unable to talk to your watchman on /usr/local/Cellar/watchman/4.5.0/var/run/watchman/kevin-state/sock! (Undefined error: 0)
Watchman: …Run Code Online (Sandbox Code Playgroud) 我正在追踪一个OS X应用程序,我希望可以在iOS上找到这样的方式:
有办法这样做吗?我试过了
expr -- (void)printf("[%s, %s]\n",(char *) object_getClassName(*(long*)($esp+4)), (char *) *(long *)($esp+8) )
Run Code Online (Sandbox Code Playgroud)
我认为OS X使用的是64位寄存器.所以这个命令不起作用(实际上,它不起作用).我该怎么写这个命令?或者有一个简单的方法来做同样的事情?只是跟踪调用的类和方法