BSBacktraceLogger icon indicating copy to clipboard operation
BSBacktraceLogger copied to clipboard

循环一个子线程,第一次打印的堆栈有时候只有一条

Open ganvinalix opened this issue 8 years ago • 1 comments

dispatch_async(dispatch_get_global_queue(0, 0), ^{ // something for (NSInteger i = 0; i < 5000 ; i ++) { NSLog(@"index----- %@",@(i)); NSString * ddd = [KGPrintThreadSnapshoot bs_backtraceOfCurrentThread]; NSLog(@"bs_backtraceOfCurrentThread----- %@",ddd); } });

打印结果: index==1 bs_backtraceOfCurrentThread----- Backtrace of Thread 3587: libsystem_kernel.dylib 0x111127f72 mach_msg_trap + 10 index==2的时候 就准确了

ganvinalix avatar Oct 28 '16 07:10 ganvinalix

@bestswifter 在第一次打印时候 bs_mach_copyMem(frame.previous, &frame, sizeof(frame)) 为 1 循环break出去了。问下 vm_read_overwrite 是macOS (10.0 and later)的函数 在iOS上好使?

ganvinalix avatar Oct 28 '16 07:10 ganvinalix