【问题标题】:Print callstack at runtime (XCode)在运行时打印调用堆栈(XCode)
【发布时间】:2012-01-17 08:04:13
【问题描述】:

有可能吗?

我找到了 Visual Studio Print n levels of callstack?的解决方案

【问题讨论】:

    标签: xcode runtime logging callstack


    【解决方案1】:

    要在运行时以编程方式打印回溯,您可以使用此函数:

    #import <execinfo.h>
    
    void PrintBacktrace ( void )
    {
        void *callstack[128];
        int frameCount = backtrace(callstack, 128);
        char **frameStrings = backtrace_symbols(callstack, frameCount);
    
        if ( frameStrings != NULL ) {
            // Start with frame 1 because frame 0 is PrintBacktrace()
            for ( int i = 1; i < frameCount; i++ ) {
                printf("%s\n", frameStrings[i]);
            }
            free(frameStrings);
        }
    }
    

    【讨论】:

      【解决方案2】:

      使用bt(或gdb 控制台中的backtrace 命令)。这里是more info 命令用法。

      要打印多个顶层调用堆栈,您可以使用bt n

      【讨论】:

        猜你喜欢
        • 2010-11-28
        • 2010-09-12
        • 2010-11-23
        • 2012-03-19
        • 1970-01-01
        • 2022-01-01
        • 2015-08-25
        • 1970-01-01
        • 2015-07-27
        相关资源
        最近更新 更多