Как NSLog стека вызовов при запуске программы? Есть ли способ получить стек вызовов? скажем, у меня есть функция, вызываемая многими другими функциями, но мне нужно знать, кто ее назвал. Спасибо Ответ 1 Конечно, есть. Если вы можете использовать фреймворк Cocoa: NSLog(@"%@", [NSThread callStackSymbols]); (Документация.) Если вы не можете его использовать: #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); (Документация.) Ответ 2 См. NSThread callStackSymbols.
Ответ 1 Конечно, есть. Если вы можете использовать фреймворк Cocoa: NSLog(@"%@", [NSThread callStackSymbols]); (Документация.) Если вы не можете его использовать: #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); (Документация.)