site_archiver@lists.apple.com Delivered-To: darwin-dev@lists.apple.com On May 25, 2005, at 7:57 PM, Steve Checkoway wrote: Something like bt () { void **fp = (void **) __builtin_frame_address (0); void *saved_pc = __builtin_return_address (0); void *saved_fp = __builtin_frame_address (1); int depth = 0; printf ("[%d] pc == %p fp == %p\n", depth++, saved_pc, saved_fp); fp = saved_fp; while (fp != NULL) { saved_fp = *fp; fp = saved_fp; if (*fp == NULL) break; saved_pc = *(fp + 2); printf ("[%d] pc == %p fp == %p\n", depth++, saved_pc, saved_fp); } } J _______________________________________________ Do not post admin requests to the list. They will be ignored. Darwin-dev mailing list (Darwin-dev@lists.apple.com) Help/Unsubscribe/Update your Subscription: http://lists.apple.com/mailman/options/darwin-dev/site_archiver%40lists.appl... Is __builtin_frame_address() broken? I have some backtracing code that walks the stack essentially using: seems to work OK for me. Maybe that can point you in the right direction. This email sent to site_archiver@lists.apple.com