qhd / anymethodlog Goto Github PK
View Code? Open in Web Editor NEWLog any method call of object in Objective-C
License: MIT License
Log any method call of object in Objective-C
License: MIT License
如果被hook的类本身有对methodSignatureForSelector:、forwardInvocation:方法做处理。那么该类在遇到真实的消息转发时(区别于你框架中主动触发的消息转发),会变成qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_...无限循环,qhd_forwardInvocation死循环。而不能执行类本身的forwardInvocation:方法。
这篇文章的解决崩溃问题怎么实现呢?http://satanwoo.github.io/2017/09/24/mainthreadchecker1/
利用runtime应该会存在高并发性能的问题吧。
跟踪父类,无法打印子类的方法?
RT,现在的情况是好像只能打印某个类的所有方法,或者某个类的某个方法的调用日志,如果我想指定特定类特定方法,打印这个特定方法里面的所有方法调用,有可行性吗?
我看了之后觉得非常厉害,但是遗憾的是您提供的demo真机运行就闪退,我的手机是iphone7,系统是10.2.1,能否帮忙解决下问题,让我多膜拜学习,您可以加下留下QQ加个好友呢
我同事跟踪2个类,只有1个类的输出!
hook:WeChat “CMessageWrap”
sel:qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_qhd_m_uiPreDownloadPercent args:(null)
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.