diff options
Diffstat (limited to 'gdb/blockframe.c')
-rw-r--r-- | gdb/blockframe.c | 15 |
1 files changed, 11 insertions, 4 deletions
diff --git a/gdb/blockframe.c b/gdb/blockframe.c index 4a7a380..00d7d8f 100644 --- a/gdb/blockframe.c +++ b/gdb/blockframe.c @@ -156,11 +156,18 @@ inside_main_func (CORE_ADDR pc) && symfile_objfile->ei.main_func_highpc > pc); } -/* Test whether PC is inside the range of addresses that corresponds - to the process entry point function. */ +/* Test whether THIS_FRAME is inside the process entry point function. */ int -inside_entry_func (CORE_ADDR pc) +inside_entry_func (struct frame_info *this_frame) +{ + return (get_frame_func (this_frame) == entry_point_address ()); +} + +/* Similar to inside_entry_func, but accomodating legacy frame code. */ + +static int +legacy_inside_entry_func (CORE_ADDR pc) { if (symfile_objfile == 0) return 0; @@ -604,7 +611,7 @@ legacy_frame_chain_valid (CORE_ADDR fp, struct frame_info *fi) /* If we're already inside the entry function for the main objfile, then it isn't valid. */ - if (inside_entry_func (get_frame_pc (fi))) + if (legacy_inside_entry_func (get_frame_pc (fi))) return 0; /* If we're inside the entry file, it isn't valid. */ |