自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(7)
  • 资源 (1)
  • 收藏
  • 关注

转载 获取iOS任意线程调用堆栈(五)完整实现:BSBacktraceLogger

转载自:https://toutiao.io/posts/aveig6/preview BSBacktraceLogger 是一个轻量级的框架,可以获取任意线程的调用栈,开源在我的 GitHub,建议下载下来结合本文阅读。 我们知道 NSThread 有一个类方法 callstackSymbols 可以获取调用栈,但是它输出的是当前线程的调用栈。在利用 Runloop 检测

2017-05-31 16:29:18 8350

转载 获取iOS任意线程调用堆栈(四)符号化实战

1. 相关API和数据结构 由于我们在上面回溯线程调用栈拿到的是一组地址,所以这里进行符号化的输入输出应该分别是地址和符号,接口设计类似如下: - (NSString *)symbolicateAddress:(uintptr_t)addr; 不过在实际操作中,我们需要依赖于dyld相关方法和数据结构: /* * Structure filled in by dladdr()

2017-05-31 12:27:22 1782

转载 获取iOS任意线程调用堆栈(三)符号化理论:从Mach-o结构分析类名方法名

下面来讲讲如何从Mach-o文件中分析出类名和方法名,也让我们了解下class-dump的原理。 Mach-o结构有两个节:__objc_classname 和 __objc_methname 其中就是类名和方法名。  其中__objc_classname的偏移为:ox7961    __objc_methname的偏移为0x6F9E  这里分析的arch文件,不是fat bina

2017-05-31 12:25:40 1398 1

转载 获取iOS任意线程调用堆栈(二)符号化理论:Mach-o文件结构

我们知道Windows下的文件都是PE文件,同样在OS X和iOS中可执行文件是Mach-o格式的。 所以我们如果要进行逆向分析,首先要熟悉Mach-o文件结构。 Mach-o包含三个基本区域: 头部(header structure)。 加载命令(load command)。 段(segment)。可以拥有多个段(segment),每个段可以拥有零个或多个区域(sectio

2017-05-31 12:24:24 768

转载 获取iOS任意线程调用堆栈(一)获取任意线程的调用栈地址列表

转载自:http://blog.csdn.net/jasonblog/article/details/49909163如果要获取当前线程的调用栈,可以直接使用现有API:[NSThread callStackSymbols]。但是并没有相关API支持获取任意线程的调用栈,所以只能自己编码实现。1. 基础结构一个线程的调用栈是什么样的呢?我的理解是应该包含当前线程的执行地址,并且从这个地址可以一级一...

2017-05-31 12:22:24 4870

原创 统计iOS项目代码行数

打开终端,输入如下命令: find . -name "*.m" -or -name "*.h" -or -name "*.xib" -or -name "*.c" | xargs wc -l 此命令会迭代子目录,会统计每个源代码文件行数及总数,统计的行数包含空行。 如果不希望统计空行,则使用如下命令: find . -name "*.m" -or -name "*.h" -

2017-05-15 16:53:54 433

原创 iOS崩溃日志收集

一、概述 iOS-App崩溃分为两种,一种是异常:NSException,一种是信号:Signal。 二、异常崩溃 1.NSException对象 (1)reason:崩溃原因。 (2)callStackSymbols:调用堆栈。 (3)name:崩溃名称 (4)userInfo:崩溃对象。 2.崩溃拦截: (1)声明异常拦截方法 static void unc

2017-05-01 15:06:49 708

工作量证明链解决拜占庭将军问题之模拟程序

此程序用来模拟工作量证明链如何解决拜占庭将军问题,使用Objective-C语言,需要使用Xcode开发工具运行并执行演示,演示结果打印在Xcode控制台。 压缩包解压密码:liangjingcheng

2018-10-11

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除