gpt4 book ai didi

objective-c - 如何在程序运行时 NSLog 调用堆栈?

转载 作者:技术小花猫 更新时间:2023-10-29 10:11:48 26 4
gpt4 key购买 nike

有没有办法获取调用堆栈?假设我有一个被许多其他函数调用的函数,但我需要知道是谁调用了它。

谢谢

最佳答案

当然有。如果可以使用 Cocoa 框架:

NSLog(@"%@", [NSThread callStackSymbols]);

( Documentation. )

如果不能使用:

#include <execinfo.h>

int size = 256;
void *stack[size];
size = backtrace(stack, size);

char **syms = backtrace_symbols(stack, size);
for (int i = 0; i < size; i++) {
printf("Frame #%d: %s\n", i, syms[i]);
}
free(syms);

( Documentation. )

关于objective-c - 如何在程序运行时 NSLog 调用堆栈?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13319551/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com