2012-11-10 33 views

Trả lời

46

Tất nhiên là có. Nếu bạn có thể sử dụng khuôn khổ Cocoa:

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

(Documentation.)

Nếu bạn không thể sử dụng nó:

#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.)

+0

Điều này rất hữu ích, cảm ơn bạn. – mskw

4

Xem NSThread callStackSymbols.

+0

Cảm ơn đã phản ứng nhanh chóng! – mskw

Các vấn đề liên quan