So I think it is one of these tests going awall:
if (next_frame->level >= 0
&& !backtrace_below_main
&& inside_main_func (get_frame_pc (next_frame)))
/* Don't unwind past main(), bug always unwind the sentinel frame.
Note, this is done _before_ the frame has been marked as
previously unwound. That way if the user later decides to
allow unwinds past main(), that just happens. */
return NULL;
/* If we're inside the entry file, it isn't valid. */
/* NOTE: drow/2002-12-25: should there be a way to disable this
check? It assumes a single small entry file, and the way some
debug readers (e.g. dbxread) figure out which object is the
entry file is somewhat hokey. */
/* NOTE: cagney/2003-01-10: If there is a way of disabling this test
then it should probably be moved to before the ->prev_p test,
above. */
if (inside_entry_file (get_frame_pc (next_frame)))
return NULL;
The second looks worrying (the dummy frame breakpoint lives in the entry
file ...). Perhaphs something like:
if (dummy_frame_p (get_frame_pc (next_frame) != NULL
&& inside_entry_file (get_frame_pc (next_frame))
return NULL;