- Rebase to gdb 7.99.90 (prerelease of gdb 8)
- Updated libstdc++ pretty printers to gdb-libstdc++-v3-python-6.3.1-20170212.tar.bz2. - Added patches from fedora: gdb-release-werror.patch gdb-rhbz1398387-tab-crash-test.patch OBS-URL: https://build.opensuse.org/package/show/devel:gcc/gdb?expand=0&rev=159
This commit is contained in:
@@ -27,40 +27,43 @@ cannot reproduce it.
|
||||
Thanks,
|
||||
Jan
|
||||
|
||||
--- ./gdb/dwarf2loc.c 2016-08-29 04:01:25.000000000 +0200
|
||||
+++ ./gdb/dwarf2loc.c 2016-09-01 11:00:20.258909494 +0200
|
||||
@@ -2289,6 +2289,15 @@ const struct dwarf_expr_context_funcs dw
|
||||
dwarf_expr_get_obj_addr
|
||||
};
|
||||
Index: gdb-7.99.90.20170420/gdb/dwarf2loc.c
|
||||
===================================================================
|
||||
--- gdb-7.99.90.20170420.orig/gdb/dwarf2loc.c 2017-04-20 22:28:59.686490666 +0200
|
||||
+++ gdb-7.99.90.20170420/gdb/dwarf2loc.c 2017-04-20 22:29:13.104575404 +0200
|
||||
@@ -42,6 +42,7 @@
|
||||
#include <algorithm>
|
||||
#include <vector>
|
||||
#include <unordered_set>
|
||||
+#include <functional>
|
||||
#include "common/underlying.h"
|
||||
|
||||
+static void
|
||||
+select_frame_cleanup (void *arg)
|
||||
+{
|
||||
+ struct frame_info *frame = (struct frame_info *) arg;
|
||||
+
|
||||
+ if (frame != NULL)
|
||||
+ select_frame (frame);
|
||||
+}
|
||||
+
|
||||
/* Evaluate a location description, starting at DATA and with length
|
||||
SIZE, to find the current location of variable of TYPE in the
|
||||
context of FRAME. BYTE_OFFSET is applied after the contents are
|
||||
@@ -2318,6 +2327,11 @@ dwarf2_evaluate_loc_desc_full (struct ty
|
||||
extern int dwarf_always_disassemble;
|
||||
@@ -2366,6 +2367,20 @@
|
||||
ctx.per_cu = per_cu;
|
||||
ctx.obj_address = 0;
|
||||
|
||||
ctx = new_dwarf_expr_context ();
|
||||
old_chain = make_cleanup_free_dwarf_expr_context (ctx);
|
||||
+frame_id old_frame_id (get_frame_id (deprecated_safe_get_selected_frame ()));
|
||||
+class RestoreCall {
|
||||
+private:
|
||||
+ const std::function<void ()> func;
|
||||
+public:
|
||||
+ RestoreCall(std::function<void ()> func_):func(func_) {}
|
||||
+ ~RestoreCall() { func(); }
|
||||
+} restore_frame([=]() {
|
||||
+ frame_info *old_frame (frame_find_by_id (old_frame_id));
|
||||
+ if (old_frame != NULL)
|
||||
+ select_frame (old_frame);
|
||||
+});
|
||||
+if (frame != NULL) select_frame (frame);
|
||||
+
|
||||
+ make_cleanup (select_frame_cleanup, deprecated_safe_get_selected_frame ());
|
||||
+ if (frame != NULL)
|
||||
+ select_frame (frame);
|
||||
+
|
||||
value_chain = make_cleanup_value_free_to_mark (value_mark ());
|
||||
scoped_value_mark free_values;
|
||||
|
||||
ctx->gdbarch = get_objfile_arch (objfile);
|
||||
Index: gdb-7.9.50.20150520/gdb/testsuite/gdb.fortran/dynamic-other-frame-stub.f90
|
||||
ctx.gdbarch = get_objfile_arch (objfile);
|
||||
Index: gdb-7.99.90.20170420/gdb/testsuite/gdb.fortran/dynamic-other-frame-stub.f90
|
||||
===================================================================
|
||||
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
|
||||
+++ gdb-7.9.50.20150520/gdb/testsuite/gdb.fortran/dynamic-other-frame-stub.f90 2015-05-31 16:14:05.844545344 +0200
|
||||
+++ gdb-7.99.90.20170420/gdb/testsuite/gdb.fortran/dynamic-other-frame-stub.f90 2017-04-20 22:29:00.673496899 +0200
|
||||
@@ -0,0 +1,24 @@
|
||||
+! Copyright 2010 Free Software Foundation, Inc.
|
||||
+!
|
||||
@@ -86,10 +89,10 @@ Index: gdb-7.9.50.20150520/gdb/testsuite/gdb.fortran/dynamic-other-frame-stub.f9
|
||||
+ real :: dummy
|
||||
+ dummy = 1
|
||||
+end subroutine bar
|
||||
Index: gdb-7.9.50.20150520/gdb/testsuite/gdb.fortran/dynamic-other-frame.exp
|
||||
Index: gdb-7.99.90.20170420/gdb/testsuite/gdb.fortran/dynamic-other-frame.exp
|
||||
===================================================================
|
||||
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
|
||||
+++ gdb-7.9.50.20150520/gdb/testsuite/gdb.fortran/dynamic-other-frame.exp 2015-05-31 16:14:05.845545351 +0200
|
||||
+++ gdb-7.99.90.20170420/gdb/testsuite/gdb.fortran/dynamic-other-frame.exp 2017-04-20 22:29:00.673496899 +0200
|
||||
@@ -0,0 +1,39 @@
|
||||
+# Copyright 2010 Free Software Foundation, Inc.
|
||||
+
|
||||
@@ -130,10 +133,10 @@ Index: gdb-7.9.50.20150520/gdb/testsuite/gdb.fortran/dynamic-other-frame.exp
|
||||
+}
|
||||
+
|
||||
+gdb_test "bt" {foo \(string='hello'.*}
|
||||
Index: gdb-7.9.50.20150520/gdb/testsuite/gdb.fortran/dynamic-other-frame.f90
|
||||
Index: gdb-7.99.90.20170420/gdb/testsuite/gdb.fortran/dynamic-other-frame.f90
|
||||
===================================================================
|
||||
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
|
||||
+++ gdb-7.9.50.20150520/gdb/testsuite/gdb.fortran/dynamic-other-frame.f90 2015-05-31 16:14:05.845545351 +0200
|
||||
+++ gdb-7.99.90.20170420/gdb/testsuite/gdb.fortran/dynamic-other-frame.f90 2017-04-20 22:29:00.673496899 +0200
|
||||
@@ -0,0 +1,36 @@
|
||||
+! Copyright 2010 Free Software Foundation, Inc.
|
||||
+!
|
||||
|
Reference in New Issue
Block a user