Source-Changes-HG archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

[src/trunk]: src/external/gpl3/gdb/dist/gdb Returning in the middle of a TRY_...



details:   https://anonhg.NetBSD.org/src/rev/b5ff76ce8217
branches:  trunk
changeset: 328859:b5ff76ce8217
user:      christos <christos%NetBSD.org@localhost>
date:      Mon Apr 21 17:32:14 2014 +0000

description:
Returning in the middle of a TRY_CATCH macro gives heartburns since the
jump buffer is not being reset.

diffstat:

 external/gpl3/gdb/dist/gdb/amd64nbsd-tdep.c |  6 +++---
 1 files changed, 3 insertions(+), 3 deletions(-)

diffs (25 lines):

diff -r 491756212ed9 -r b5ff76ce8217 external/gpl3/gdb/dist/gdb/amd64nbsd-tdep.c
--- a/external/gpl3/gdb/dist/gdb/amd64nbsd-tdep.c       Mon Apr 21 16:35:38 2014 +0000
+++ b/external/gpl3/gdb/dist/gdb/amd64nbsd-tdep.c       Mon Apr 21 17:32:14 2014 +0000
@@ -228,18 +228,18 @@
                             struct frame_info *this_frame,
                             void **this_prologue_cache)
 {
-  ULONGEST cs;
+  ULONGEST cs = 0;
   const char *name;
   volatile struct gdb_exception ex;
 
   TRY_CATCH (ex, RETURN_MASK_ERROR)
     {
       cs = get_frame_register_unsigned (this_frame, AMD64_CS_REGNUM);
-      if ((cs & I386_SEL_RPL) == I386_SEL_UPL)
-       return 0;
     }
   if (ex.reason < 0 && ex.error != NOT_AVAILABLE_ERROR)
     throw_exception (ex);
+  if ((cs & I386_SEL_RPL) == I386_SEL_UPL)
+    return 0;
 
   find_pc_partial_function (get_frame_pc (this_frame), &name, NULL, NULL);
   return (name && ((strcmp (name, "alltraps") == 0)



Home | Main Index | Thread Index | Old Index