We now ignore pointers that are not null but still clearly wild.
We could check that there's really a valid PDE and PTE (I think Linux
does this) but it would take more code and be ugly.
printf ("Call stack:");
for (frame = __builtin_frame_address (0);
printf ("Call stack:");
for (frame = __builtin_frame_address (0);
- frame != NULL && frame[0] != NULL;
+ (uintptr_t) frame >= 0x1000 && frame[0] != NULL;
frame = frame[0])
printf (" %p", frame[1]);
printf (".\n");
frame = frame[0])
printf (" %p", frame[1]);
printf (".\n");