// testbuiltin.cpp #include void sub() { register int a, b, c; // int a, b, c; printf("\nsub\n"); printf("frame address %016llx\n", __builtin_frame_address(0)); printf("return address %016llx\n", __builtin_return_address(0)); printf("frame address caller %016llx\n", __builtin_frame_address(1)); printf("return address caller %016llx\n", __builtin_return_address(1)); a = 1; b = 2; c = 3; printf("a %d, b %d, c %d\n", a, b, c); } int main() { int a, b, c; printf("frame address %016llx\n", __builtin_frame_address(0)); printf("return address %016llx\n", __builtin_return_address(0)); a = 1; b = 2; c = 3; printf("a %d, b %d, c %d\n", a, b, c); sub(); return 0; }