`
re_reference
  • 浏览: 236736 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

IOS获取函数调用堆栈信息

阅读更多
导入头文件
#include <libkern/OSAtomic.h>
#include <execinfo.h>


如下代码放到方法里即可知道该方法调用的堆栈信息
    void* callstack[128];
    int frames = backtrace(callstack, 128);
    char **strs = backtrace_symbols(callstack, frames);
    int i;
    NSMutableArray *backtrace = [NSMutableArray arrayWithCapacity:frames];
    for (i = 0;i < 4;i++){
	 	[backtrace addObject:[NSString stringWithUTF8String:strs[i]]];
    }
    free(strs);
    NSLog(@"====================堆栈\n %@ \n",backtrace);




分享到:
评论

相关推荐

    iOS crash log

    检查主线程的堆栈信息,可以帮助确定是否是因为不当的UI操作或阻塞UI线程导致的奔溃。 6. **复现问题**:根据描述,问题可能与用户“左右摇动”设备有关。尝试复现这个问题,观察在特定操作下是否能稳定触发奔溃,...

    关于堆栈的文档

    在Apple的平台上,无论是iOS、macOS还是watchOS等操作系统,堆栈都在内存管理、函数调用、任务切换等多个方面发挥着关键作用。 首先,堆栈在编程中的主要用途包括: 1. **函数调用**:每当一个函数被调用时,系统...

    iOS崩溃地址解析到具体的代码

    调用堆栈就是我们要关注的部分,它列出了崩溃前执行的一系列函数调用,每个调用都有一个内存地址。 解析崩溃地址主要包括以下几个步骤: 1. **符号化(Symbolication)**:这是将内存地址转换为可读的函数名和行号...

    iOS开发异常捕获上传至邮箱

    - `NSSetUncaughtExceptionHandler`: 这是iOS提供的一种全局异常处理方法,可以设置一个异常处理器函数,当未被捕获的异常出现时,该函数会被调用。 - `ThreadSanitizer`:虽然不是直接用于捕获异常,但它是Apple...

    ios 蓝牙类库 libBTstack.dylib

    在这个特定的案例中,"libBTstack.dylib"是一个动态链接库,它是libBTstack的核心组件,包含了所有必要的函数和数据结构,使得开发者可以在其应用程序中调用蓝牙相关功能。由于源码中没有包含这个文件,这可能意味着...

    iOS逆向之lldb常用操作指令.pdf

    7. frame(简写为fr): 显示当前线程调用堆栈。这对于理解程序的执行流程和定位bug非常有帮助。 ***(简写为i): 提供调试会话的详细信息。例如,“info breakpoints”可以列出所有设置的断点。 9. thread: 用于...

    程序员移动开发中的iOS安全攻防知识分享

    LLDB命令可以用来调试和分析iOS应用程序,例如,查看应用程序的堆栈信息、寄存器信息、内存信息等。 三、Mach-O文件 Mach-O文件是iOS平台上的一种可执行文件格式,包含了应用程序的代码、数据和其他信息。Mach-O...

    iOS , mac signal exception catch

    - `sigaction()`提供了更高级的功能,如SA_SIGINFO标志,可以让处理函数获取额外的信号信息。 4. **异常捕获的实践**: - 在Objective-C中,可以使用`@try`-`@catch`语句来捕获Objective-C运行时的异常,但不能...

    iOS 越狱逆向12.4-12.5.5 lldb动态调试包

    4. **控制程序执行**:你可以使用`c`(continue)、`s`(step into)、`n`(step over)等命令控制程序的执行流程,这对于跟踪函数调用和理解代码执行路径非常有用。 5. **内存操作**:通过`memory read`和`memory ...

    iOS 涂鸦板 (实现切换画笔颜色,画笔粗细,可清除保存涂鸦)

    在iOS开发中,创建一个具有涂鸦功能的板子是一项有趣且实用的任务,它涉及到图形绘制、用户交互和数据持久化等多个方面的技术。本项目名为“iOS 涂鸦板”,实现了基本的涂鸦功能,如改变画笔颜色、调整画笔粗细、...

    ios5之自动引用计数

    除了上述内容外,开发者还可以参考官方文档中的常见问题解答部分,以获取更多关于ARC的信息和解决方案。 #### 文档修订历史 最后,文档还包含了修订历史记录,这有助于跟踪文档的变化和更新。例如,该文档的最后一...

    IOS应用源码之树形结构的导航 .rar

    2. **导航控制器(UINavigationController)**:iOS SDK中的UINavigationController是实现应用程序导航的主要类,它可以管理一个堆栈式的视图控制器序列,用户通过“前进”和“后退”操作在这些视图之间进行导航。...

    关于堆栈下载

    在操作系统和编程语言环境中,堆栈常用于管理程序执行过程中的临时数据,如函数调用时的返回地址和局部变量。在苹果系统中,堆栈通常指特定功能集的组件,如Core Data、Core Animation等,这些组件会随着系统的更新...

    swift-iOS崩溃日志分析省的敲各种命令。

    4. **堆栈回溯**:这是分析日志的重点,显示了崩溃发生前调用函数的顺序,用于定位问题代码行。 5. **用户信息**:可能包含设备型号、操作系统版本等,有助于重现问题环境。 6. **错误消息**:如果有的话,会提供...

    千锋ios培训真机调试视频详解

    1. 使用断点:在代码的关键位置设置断点,可以暂停程序执行,检查变量值和调用堆栈。 2. 控制台输出:利用NSLog或Swift的print函数,打印关键信息,帮助追踪代码执行流程。 3. 性能分析:Xcode内置的Instruments工具...

    crash-for-ios

    当iOS应用发生崩溃时,系统会生成一个崩溃日志文件,其中包含了崩溃时刻的应用状态、堆栈信息等关键数据。同时,开发者通常需要提供对应版本的app二进制包(.ipa或.app)和dSYM文件。dSYM文件包含了应用的调试符号...

    IOS应用源码之【类库与框架】NSLogger.rar

    3. 强大的日志级别控制:NSLogger支持多种日志级别(如ERROR、WARN、INFO、DEBUG等),开发者可以根据需要调整日志的详细程度,方便在调试不同阶段获取合适的信息。 4. 结构化日志:除了文本日志,NSLogger还可以...

    iPhone Instruments工具使用

    为了解决内存泄露,你需要分析Extended Detail视图中的调用堆栈,找出导致内存泄漏的对象和函数。在Objective-C中,通常是因为忘记释放`alloc`、`copy`、`new`或`init`创建的对象。而在C++中,可能是忘记调用`delete...

    IOS面试题2018总结188题

    - **KVC**:允许对象通过键来获取和设置值,而不必了解对象内部的具体实现。 - **KVO**:用于观察对象属性的变化,并在属性变化时收到通知。 #### 3. 合成属性与动态属性 - **合成属性**:由编译器自动生成,用于...

    百度地图 Crash 跟踪体系及修复经验分享.pdf

    在iOS平台上,Crash的跟踪体系通常包括以下几个关键环节:首先是应用在崩溃时生成Crash Log,这个Log包含了应用崩溃时的关键信息,如崩溃时的堆栈信息、异常代码、线程状态等;接着开发者需要通过一系列的工具对这个...

Global site tag (gtag.js) - Google Analytics